Font Module

Bu API referansı, API'yi nasıl kullanacağınızı anlamanıza yardımcı olacaktır next/font/google ve next/font/local. Özellikler ve kullanım için lütfen Yazı Tiplerini Optimize Etme sayfasına bakın.

Font Function Arguments

Kullanım için Google Fonts ve Local Fonts'u inceleyin.

Keyfont/googlefont/localTypeRequired
srcString or Array of ObjectsYes
weightString or ArrayRequired/Optional
styleString or Array-
subsetsArray of Strings-
axesArray of Strings-
displayString-
preloadBoolean-
fallbackArray of Strings-
adjustFontFallbackBoolean or String-
variableString-
declarationsArray of Objects-

src

Font yükleyici işlevinin çağrıldığı dizine göre bir dize veya bir nesne dizisi ( Array<{path: string, weight?: string, style?: string}> türünde) olarak font dosyasının yolu.

İçinde kullanılır next/font/local

Örnekler:

weight

Yazı tipi weight aşağıdaki olasılıklarla:

next/font/google ve next/font/local

Örnekler:

style

Yazı tipi style aşağıdaki olasılıklarla:

next/font/google ve next/font/local

Örnekler:

subsets

Yazı tipi subsetsönceden yüklenmesini istediğiniz her bir alt kümenin adlarını içeren bir dizi dize değeri ile tanımlanır. subsets aracılığıyla belirtilen yazı tipleri, aşağıdaki durumlarda başlığa enjekte edilen bir bağlantı ön yükleme etiketine sahip olacaktır preload seçeneği varsayılan değer olan true'dur.

İçinde kullanılır next/font/google

Örnekler:

Yazı tipiniz için Google Fonts sayfasında tüm alt kümelerin bir listesini bulabilirsiniz.

axes

Bazı değişken yazı tiplerinde dahil edilebilecek ekstra axes vardır. Varsayılan olarak, dosya boyutunu düşük tutmak için yalnızca yazı tipi ağırlığı dahil edilir. Olası axes değerleri belirli yazı tipine bağlıdır.

İçinde kullanılır next/font/google

Örnekler:

display

Yazı tipi display olası dize değerleri ile 'auto', 'block', 'swap', 'fallback' veya 'optional' varsayılan değeri 'swap'.

next/font/google ve next/font/local

Örnekler:

preload

Yazı tipinin önceden yüklenip yüklenmeyeceğini belirten boolean değeri. Varsayılan değer true'dur.

next/font/google ve next/font/local

Örnekler:

fallback

Yazı tipi yüklenemezse kullanılacak yedek yazı tipi. Varsayılanı olmayan yedek yazı tiplerinin dizelerinden oluşan bir dizi.

next/font/google ve next/font/local

Örnekler:

adjustFontFallback

next/font/google ve next/font/local

Örnekler:

variable

Stil CSS değişkeni yöntemiyle uygulandığında kullanılacak CSS değişkeni adını tanımlamak için bir dize değeri.

next/font/google ve next/font/local

Örnekler:

declarations

Oluşturulan @font-face adresini daha fazla tanımlayan font yüzü tanımlayıcısı anahtar-değer çiftlerinden oluşan bir dizi.

İçinde kullanılır next/font/local

Örnekler:

Applying Styles

Yazı tipi stillerini üç şekilde uygulayabilirsiniz:

className

Bir HTML öğesine aktarılmak üzere yüklenen yazı tipi için salt okunur bir CSS className döndürür.

<p className={inter.className}>Hello, Next.js!</p>

style

Yazı tipi ailesi adına ve yedek yazı tiplerine erişmek için style.fontFamily dahil olmak üzere, bir HTML öğesine geçirilecek yüklenen yazı tipi için salt okunur bir CSS style nesnesi döndürür.

<p style={inter.style}>Hello World</p>

CSS Variables

Stillerinizi harici bir stil sayfasında ayarlamak ve ek seçenekleri burada belirtmek isterseniz CSS değişkeni yöntemini kullanın.

Yazı tipini içe aktarmanın yanı sıra, CSS değişkeninin tanımlandığı CSS dosyasını da içe aktarın ve yazı tipi yükleyici nesnesinin değişken seçeneğini aşağıdaki gibi ayarlayın:

app/page.tsx
import { Inter } from 'next/font/google'
import styles from '../styles/component.module.css'
 
const inter = Inter({
  variable: '--font-inter',
})

Yazı tipini kullanmak için, stil vermek istediğiniz metnin ana konteynerinin className adresini yazı tipi yükleyicisinin variable değerine ve metnin className adresini harici CSS dosyasındaki styles özelliğine ayarlayın.

app/page.tsx
<main className={inter.variable}>
  <p className={styles.text}>Hello World</p>
</main>

text seçici sınıfını component.module.css CSS dosyasında aşağıdaki gibi tanımlayın:

styles/component.module.css
.text {
  font-family: var(--font-inter);
  font-weight: 200;
  font-style: italic;
}

Yukarıdaki örnekte, Hello World metni Inter yazı tipi ve font-weight: 200 ve font-style: italic ile oluşturulan yazı tipi geri dönüşü kullanılarak şekillendirilmiştir.

Using a font definitions file

localFont veya Google font işlevini her çağırdığınızda, bu font uygulamanızda bir örnek olarak barındırılacaktır. Bu nedenle, aynı fontu birden fazla yerde kullanmanız gerekiyorsa, fontu tek bir yere yüklemeli ve ilgili font nesnesini ihtiyaç duyduğunuz yere içe aktarmalısınız. Bu, bir font tanımları dosyası kullanılarak yapılır.

Örneğin, uygulama dizininizin kök dizinindeki styles klasöründe bir fonts.ts dosyası oluşturun.

Ardından, yazı tipi tanımlarınızı aşağıdaki gibi belirleyin:

styles/fonts.ts
import { Inter, Lora, Source_Sans_3 } from 'next/font/google'
import localFont from 'next/font/local'
 
// define your variable fonts
const inter = Inter()
const lora = Lora()
// define 2 weights of a non-variable font
const sourceCodePro400 = Source_Sans_3({ weight: '400' })
const sourceCodePro700 = Source_Sans_3({ weight: '700' })
// define a custom local font where GreatVibes-Regular.ttf is stored in the styles folder
const greatVibes = localFont({ src: './GreatVibes-Regular.ttf' })
 
export { inter, lora, sourceCodePro400, sourceCodePro700, greatVibes }

Artık bu tanımları kodunuzda aşağıdaki gibi kullanabilirsiniz:

app/page.tsx
import { inter, lora, sourceCodePro700, greatVibes } from '../styles/fonts'
 
export default function Page() {
  return (
    <div>
      <p className={inter.className}>Hello world using Inter font</p>
      <p style={lora.style}>Hello world using Lora font</p>
      <p className={sourceCodePro700.className}>
        Hello world using Source_Sans_3 font with weight 700
      </p>
      <p className={greatVibes.className}>My title in Great Vibes font</p>
    </div>
  )
}

Kodunuzdaki yazı tipi tanımlarına erişimi kolaylaştırmak için tsconfig.json veya jsconfig.json dosyalarınızda aşağıdaki gibi bir yol takma adı tanımlayabilirsiniz:

tsconfig.json
{
  "compilerOptions": {
    "paths": {
      "@/fonts": ["./styles/fonts"]
    }
  }
}

Artık herhangi bir yazı tipi tanımını aşağıdaki gibi içe aktarabilirsiniz:

app/about/page.tsx
import { greatVibes, sourceCodePro400 } from '@/fonts'

Version Changes

VersionChanges
v13.2.0@next/font renamed to next/font. Installation no longer required.
v13.0.0@next/font was added.