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.
| Key | font/google | font/local | Type | Required |
|---|---|---|---|---|
src | String or Array of Objects | Yes | ||
weight | String or Array | Required/Optional | ||
style | String or Array | - | ||
subsets | Array of Strings | - | ||
axes | Array of Strings | - | ||
display | String | - | ||
preload | Boolean | - | ||
fallback | Array of Strings | - | ||
adjustFontFallback | Boolean or String | - | ||
variable | String | - | ||
declarations | Array 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
- Gerekli
Örnekler:
src:'./fonts/my-font.woff2'buradamy-font.woff2,appdizininin içindefontsadlı bir dizine yerleştirilirsrc:[{path: './inter/Inter-Thin.ttf', weight: '100',},{path: './inter/Inter-Regular.ttf',weight: '400',},{path: './inter/Inter-Bold-Italic.ttf', weight: '700',style: 'italic',},]- yazı tipi yükleyici işlevi
src:'../styles/fonts/my-font.ttf'kullanılarakapp/page.tsxiçinde çağrılırsa,my-font.ttfprojenin kökündestyles/fontsiçine yerleştirilir
weight
Yazı tipi weight aşağıdaki olasılıklarla:
- Belirli bir yazı tipi için mevcut ağırlıkların olası değerlerini içeren bir dize veya değişken bir yazı tipiyse bir değer aralığı
- Yazı tipi değişken bir google yazı tipi değilse ağırlık değerleri dizisi . Yalnızca
next/font/googleiçin geçerlidir.
next/font/google ve next/font/local
- Kullanılan yazı tipi değişken değilse gereklidir
Örnekler:
weight: '400': Tek bir ağırlık değeri için bir dize - yazı tipi içinInterolası değerler'100','200','300','400','500','600','700','800','900'veya'variable'olup'variable'varsayılandır)weight: '100 900': Değişken bir yazı tipi için100ile900arasındaki aralığı gösteren bir dizeweight: ['100','400','900']: Değişken olmayan bir yazı tipi için 3 olası değerden oluşan bir dizi
style
Yazı tipi style aşağıdaki olasılıklarla:
- Varsayılan değeri olan bir dize değeri
'normal' - Yazı tipi değişken bir google yazı tipi değilse bir stil değerleri dizisi . Yalnızca
next/font/googleiçin geçerlidir.
next/font/google ve next/font/local
- Opsiyonel
Örnekler:
style: 'italic': Bir dize -normalveyaitaliciçin olabilirnext/font/googlestyle: 'oblique': Bir dize -next/font/localiçin herhangi bir değer alabilir ancak standart yazı tipi stillerinden gelmesi beklenirstyle: ['italic','normal']:next/font/googleiçin 2 değerden oluşan bir dizi - değerlernormalveitalic
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
- Opsiyonel
Örnekler:
subsets: ['latin']: Alt kümesi olan bir dizilatin
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
- Opsiyonel
Örnekler:
axes: ['slnt']: Burada gösterildiği gibi ekaxesolarakslntolanInterdeğişken yazı tipi içinslntdeğerine sahip bir dizi . Yazı tipiniz için olasıaxesdeğerlerini, Google değişken yazı tipleri sayfasındaki filtresini kullanarak ve aşağıdakiler dışındaki eksenleri arayarak bulabilirsinizwght
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
- Opsiyonel
Örnekler:
display: 'optional':optionaldeğerine atanan bir dize
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
- Opsiyonel
Örnekler:
preload: false
fallback
Yazı tipi yüklenemezse kullanılacak yedek yazı tipi. Varsayılanı olmayan yedek yazı tiplerinin dizelerinden oluşan bir dizi.
- Opsiyonel
next/font/google ve next/font/local
Örnekler:
fallback: ['system-ui', 'arial']: Yedek yazı tiplerinisystem-uiveyaarial
adjustFontFallback
next/font/googleiçin: Kümülatif Düzen Kaymasını azaltmak için otomatik bir yedek yazı tipinin kullanılıp kullanılmayacağını belirleyen boolean değer . Varsayılan değertrue.next/font/localiçin: Kümülatif Düzen Kaymasını azaltmak için otomatik bir yedek yazı tipinin kullanılıp kullanılmayacağını belirleyen bir dize veya booleanfalsedeğeri. Olası değerler'Arial','Times New Roman'veyafalseşeklindedir. Varsayılan değer'Arial'şeklindedir.
next/font/google ve next/font/local
- Opsiyonel
Örnekler:
adjustFontFallback: false: içinnext/font/googleadjustFontFallback: 'Times New Roman': içinnext/font/local
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
- Opsiyonel
Örnekler:
variable: '--my-font': CSS değişkeni--my-fontbildirilir
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
- Opsiyonel
Örnekler:
declarations: [{ prop: 'ascent-override', value: '90%' }]
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:
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.
<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:
.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:
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:
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:
{
"compilerOptions": {
"paths": {
"@/fonts": ["./styles/fonts"]
}
}
}Artık herhangi bir yazı tipi tanımını aşağıdaki gibi içe aktarabilirsiniz:
import { greatVibes, sourceCodePro400 } from '@/fonts'Version Changes
| Version | Changes |
|---|---|
v13.2.0 | @next/font renamed to next/font. Installation no longer required. |
v13.0.0 | @next/font was added. |