Font-Modul
Diese API-Referenz hilft dir zu verstehen, wie du next/font/google
und next/font/local
verwendest. Für Funktionen und Anwendung siehe die Seite Schriftarten optimieren.
Font-Funktionsargumente
Zur Verwendung siehe Google Fonts und Lokale Schriftarten.
Parameter | font/google | font/local | Typ | Erforderlich |
---|---|---|---|---|
src | String oder Array von Objekten | Ja | ||
weight | String oder Array | Erforderlich/Optional | ||
style | String oder Array | - | ||
subsets | Array von Strings | - | ||
axes | Array von Strings | - | ||
display | String | - | ||
preload | Boolean | - | ||
fallback | Array von Strings | - | ||
adjustFontFallback | Boolean oder String | - | ||
variable | String | - | ||
declarations | Array von Objekten | - |
src
Der Pfad zur Schriftartdatei als String oder Array von Objekten (mit Typ Array<{path: string, weight?: string, style?: string}>
) relativ zum Verzeichnis, in dem die Font-Loader-Funktion aufgerufen wird.
Verwendet in next/font/local
- Erforderlich
Beispiele:
src:'./fonts/my-font.woff2'
wobeimy-font.woff2
in einem Verzeichnis namensfonts
innerhalb desapp
-Verzeichnisses liegtsrc:[{path: './inter/Inter-Thin.ttf', weight: '100',},{path: './inter/Inter-Regular.ttf',weight: '400',},{path: './inter/Inter-Bold-Italic.ttf', weight: '700',style: 'italic',},]
- wenn die Font-Loader-Funktion in
app/page.tsx
mitsrc:'../styles/fonts/my-font.ttf'
aufgerufen wird, liegtmy-font.ttf
instyles/fonts
im Projektstamm
weight
Das Schriftgewicht (weight
) mit folgenden Möglichkeiten:
- Ein String mit möglichen Werten der verfügbaren Gewichte für die spezifische Schriftart oder ein Wertebereich, wenn es sich um eine variable Schriftart handelt
- Ein Array von Gewichtswerten, wenn die Schriftart keine variable Google-Schriftart ist. Dies gilt nur für
next/font/google
.
Verwendet in next/font/google
und next/font/local
- Erforderlich, wenn die verwendete Schriftart keine variable Schriftart ist
Beispiele:
weight: '400'
: Ein String für einen einzelnen Gewichtswert - für die SchriftartInter
sind die möglichen Werte'100'
,'200'
,'300'
,'400'
,'500'
,'600'
,'700'
,'800'
,'900'
oder'variable'
(wobei'variable'
der Standardwert ist)weight: '100 900'
: Ein String für den Bereich zwischen100
und900
für eine variable Schriftartweight: ['100','400','900']
: Ein Array von 3 möglichen Werten für eine nicht-variable Schriftart
style
Der Schriftstil (style
) mit folgenden Möglichkeiten:
- Ein String-Wert mit Standardwert
'normal'
- Ein Array von Stilwerten, wenn die Schriftart keine variable Google-Schriftart ist. Dies gilt nur für
next/font/google
.
Verwendet in next/font/google
und next/font/local
- Optional
Beispiele:
style: 'italic'
: Ein String - kannnormal
oderitalic
fürnext/font/google
seinstyle: 'oblique'
: Ein String - kann fürnext/font/local
jeden Wert annehmen, sollte aber aus den Standard-Schriftstilen stammenstyle: ['italic','normal']
: Ein Array von 2 Werten fürnext/font/google
- die Werte sind ausnormal
unditalic
subsets
Die Schriftuntergruppen (subsets
) definiert durch ein Array von String-Werten mit den Namen jeder Untergruppe, die vorgeladen werden soll. Schriftarten, die über subsets
angegeben werden, erhalten ein Link-Preload-Tag im Head-Bereich, wenn die Option preload
true ist (Standardeinstellung).
Verwendet in next/font/google
- Optional
Beispiele:
subsets: ['latin']
: Ein Array mit der Untergruppelatin
Eine Liste aller Untergruppen findest du auf der Google-Fonts-Seite deiner Schriftart.
axes
Einige variable Schriftarten haben zusätzliche axes
, die einbezogen werden können. Standardmäßig wird nur das Schriftgewicht einbezogen, um die Dateigröße gering zu halten. Die möglichen Werte für axes
hängen von der spezifischen Schriftart ab.
Verwendet in next/font/google
- Optional
Beispiele:
axes: ['slnt']
: Ein Array mit dem Wertslnt
für die variable SchriftartInter
, dieslnt
als zusätzlicheaxes
hat, wie hier gezeigt. Die möglichenaxes
-Werte für deine Schriftart findest du, indem du den Filter auf der Google variable fonts-Seite verwendest und nach Achsen außerwght
suchst
display
Das Font-Display (display
) mit möglichen String-Werten von 'auto'
, 'block'
, 'swap'
, 'fallback'
oder 'optional'
mit Standardwert 'swap'
.
Verwendet in next/font/google
und next/font/local
- Optional
Beispiele:
display: 'optional'
: Ein String mit dem Wertoptional
preload
Ein Boolean-Wert, der angibt, ob die Schriftart vorgeladen werden soll oder nicht. Der Standardwert ist true
.
Verwendet in next/font/google
und next/font/local
- Optional
Beispiele:
preload: false
fallback
Die Ersatzschriftart, die verwendet wird, wenn die Schriftart nicht geladen werden kann. Ein Array von Strings mit Ersatzschriftarten ohne Standardwert.
- Optional
Verwendet in next/font/google
und next/font/local
Beispiele:
fallback: ['system-ui', 'arial']
: Ein Array, das die Ersatzschriftarten aufsystem-ui
oderarial
setzt
adjustFontFallback
- Für
next/font/google
: Ein Boolean-Wert, der bestimmt, ob eine automatische Ersatzschriftart verwendet werden soll, um Cumulative Layout Shift zu reduzieren. Der Standardwert isttrue
. - Für
next/font/local
: Ein String- oder Boolean-false
-Wert, der bestimmt, ob eine automatische Ersatzschriftart verwendet werden soll, um Cumulative Layout Shift zu reduzieren. Die möglichen Werte sind'Arial'
,'Times New Roman'
oderfalse
. Der Standardwert ist'Arial'
.
Verwendet in next/font/google
und next/font/local
- Optional
Beispiele:
adjustFontFallback: false
: fürnext/font/google
adjustFontFallback: 'Times New Roman'
: fürnext/font/local
variable
Ein String-Wert zur Definition des CSS-Variablennamens, der verwendet werden soll, wenn der Stil mit der CSS-Variablenmethode angewendet wird.
Verwendet in next/font/google
und next/font/local
- Optional
Beispiele:
variable: '--my-font'
: Die CSS-Variable--my-font
wird deklariert
declarations
Ein Array von Font-Face-Deskriptor-Schlüssel-Wert-Paaren, die das generierte @font-face
weiter definieren.
Verwendet in next/font/local
- Optional
Beispiele:
declarations: [{ prop: 'ascent-override', value: '90%' }]
Stile anwenden
Du kannst die Schriftstile auf drei Arten anwenden:
className
Gibt einen schreibgeschützten CSS-className
für die geladene Schriftart zurück, der einem HTML-Element übergeben werden kann.
style
Gibt ein schreibgeschütztes CSS-style
-Objekt für die geladene Schriftart zurück, das einem HTML-Element übergeben werden kann, einschließlich style.fontFamily
für den Zugriff auf den Schriftfamiliennamen und die Ersatzschriftarten.
CSS-Variablen
Wenn du deine Stile in einem externen Stylesheet festlegen und dort zusätzliche Optionen angeben möchtest, verwende die CSS-Variablenmethode.
Importiere neben der Schriftart auch die CSS-Datei, in der die CSS-Variable definiert ist, und setze die Variable-Option des Font-Loader-Objekts wie folgt:
Um die Schriftart zu verwenden, setze die className
des übergeordneten Containers des zu stylenden Texts auf den variable
-Wert des Font-Loaders und die className
des Texts auf die styles
-Eigenschaft aus der externen CSS-Datei.
Definiere die Selektor-Klasse text
in der CSS-Datei component.module.css
wie folgt:
Im obigen Beispiel wird der Text Hello World
mit der Schriftart Inter
und der generierten Ersatzschriftart mit font-weight: 200
und font-style: italic
gestylt.
Verwendung einer Schriftarten-Definitionsdatei
Jedes Mal, wenn du die localFont
- oder Google-Font-Funktion aufrufst, wird diese Schriftart als eine Instanz in deiner Anwendung gehostet. Wenn du also dieselbe Schriftart an mehreren Stellen verwenden musst, solltest du sie an einer Stelle laden und das zugehörige Schriftart-Objekt importieren, wo du es benötigst. Dies geschieht über eine Schriftarten-Definitionsdatei.
Erstelle zum Beispiel eine fonts.ts
-Datei in einem styles
-Ordner im Stammverzeichnis deines App-Verzeichnisses.
Definiere dann deine Schriftarten wie folgt:
Du kannst diese Definitionen nun wie folgt in deinem Code verwenden:
Um den Zugriff auf die Schriftdefinitionen in deinem Code zu erleichtern, kannst du in deiner tsconfig.json
oder jsconfig.json
einen Pfad-Alias wie folgt definieren:
Du kannst nun jede Schriftdefinition wie folgt importieren:
Versionsänderungen
Version | Änderungen |
---|---|
v13.2.0 | @next/font wurde in next/font umbenannt. Installation nicht mehr erforderlich. |
v13.0.0 | @next/font wurde hinzugefügt. |