フォントモジュール
この API リファレンスは、next/font/google
と next/font/local
の使用方法を理解するのに役立ちます。機能と使用方法については、フォントの最適化ページを参照してください。
フォント関数の引数
使用方法については、Google フォントとローカルフォントを確認してください。
キー | font/google | font/local | タイプ | 必須 |
---|---|---|---|---|
src | 文字列または複数オブジェクト配列 | はい | ||
weight | 文字列または配列 | 必須/オプション | ||
style | 文字列または配列 | - | ||
subsets | 文字列配列 | - | ||
axes | 文字列配列 | - | ||
display | 文字列 | - | ||
preload | ブール値 | - | ||
fallback | 文字列配列 | - | ||
adjustFontFallback | ブール値または文字列 | - | ||
variable | 文字列 | - | ||
declarations | オブジェクト配列 | - |
src
フォントローダー関数が呼び出されるディレクトリを基準とした、フォントファイルのパスを文字列または複数のオブジェクト配列(Array<{path: string, weight?: string, style?: string}>
)で指定します。
next/font/local
で使用
- 必須
例:
src:'./fonts/my-font.woff2'
。my-font.woff2
はapp
ディレクトリ内のfonts
という名前のディレクトリに配置src:[{path: './inter/Inter-Thin.ttf', weight: '100',},{path: './inter/Inter-Regular.ttf',weight: '400',},{path: './inter/Inter-Bold-Italic.ttf', weight: '700',style: 'italic',},]
- フォントローダー関数が
app/page.tsx
で呼び出され、src:'../styles/fonts/my-font.ttf'
の場合、my-font.ttf
はプロジェクトのルートにあるstyles/fonts
に配置
weight
以下の可能性のあるフォントの weight
:
- 特定のフォントで利用可能なウェイトの値、または可変フォントの場合は値の範囲を示す文字列
- フォントが可変 Google フォントでない場合のウェイト値の配列。
next/font/google
にのみ適用
next/font/google
と next/font/local
で使用
- フォントが可変でない場合、必須
例:
weight: '400'
:単一のウェイト値の文字列 -Inter
フォントの場合、可能な値は'100'
、'200'
、'300'
、'400'
、'500'
、'600'
、'700'
、'800'
、'900'
または'variable'
('variable'
がデフォルト)weight: '100 900'
:可変フォントの100
から900
までの範囲を示す文字列weight: ['100','400','900']
:可変でないフォントの3つの可能な値の配列
style
以下の可能性のあるフォントの style
:
- デフォルト値
'normal'
の文字列の値 - フォントが可変 Google フォントでない場合のスタイル値の配列。
next/font/google
にのみ適用
next/font/google
と next/font/local
で使用
- オプション
例:
style: 'italic'
:文字列 -next/font/google
の場合normal
またはitalic
style: 'oblique'
:文字列 -next/font/local
の場合任意の値を取れますが、標準フォントスタイルから来ることが期待されますstyle: ['italic','normal']
:next/font/google
の2つの値の配列 - 値はnormal
とitalic
から
subsets
preload
オプションが true(デフォルト)の場合、先行読み込みするサブセットの名前を文字列配列で定義したフォントの subsets
。subsets
で指定されたフォントには、ヘッダーにプリロードリンクタグが挿入されます。
next/font/google
で使用
- オプション
例:
subsets: ['latin']
:latin
サブセットを含む配列
お使いのフォントの Google Fonts ページで、すべてのサブセットのリストを見つけることができます。
axes
一部の可変フォントには、追加の axes
を含めることができます。デフォルトでは、ファイルサイズを抑えるためにフォントウェイトのみが含まれます。axes
の可能な値は、特定のフォントによって異なります。
next/font/google
で使用
- オプション
例:
axes: ['slnt']
:こちらに示されているInter
可変フォントの追加のaxes
であるslnt
を含む配列。お使いのフォントの可能なaxes
値は、Google 可変フォントページのフィルターを使用し、wght
以外の軸を探すことで見つけられます
display
デフォルト値 'swap'
で、文字列の値が 'auto'
、'block'
、'swap'
、'fallback'
、'optional'
のいずれかのフォントの display
。
next/font/google
と next/font/local
で使用
- オプション
例:
display: 'optional'
:optional
値に割り当てられた文字列
preload
フォントを先行読み込みするかどうかを指定するブール値。デフォルトは true
。
next/font/google
と next/font/local
で使用
- オプション
例:
preload: false
fallback
フォントを読み込めない場合に使用するフォールバックフォント。デフォルトのない文字列のフォールバックフォント配列。
- オプション
next/font/google
と next/font/local
で使用
例:
fallback: ['system-ui', 'arial']
:フォールバックフォントをsystem-ui
またはarial
に設定する配列
adjustFontFallback
next/font/google
の場合:Cumulative Layout Shiftを削減するための、自動フォールバックフォントを使用するかどうかを設定するブール値。デフォルトはtrue
です。next/font/local
の場合:Cumulative Layout Shiftを削減するための、自動フォールバックフォントを使用するかどうかを設定する文字列またはfalse
値。指定可能な値は'Arial'
、'Times New Roman'
、またはfalse
です。デフォルトは'Arial'
です。
next/font/google
とnext/font/local
で使用
- オプション
例:
adjustFontFallback: false
:next/font/google
の場合adjustFontFallback: 'Times New Roman'
:next/font/local
の場合
variable
スタイルがCSSの変数メソッドで適用される場合に使用するCSS変数名を定義する文字列値。
next/font/google
とnext/font/local
で使用
- オプション
例:
variable: '--my-font'
:CSS変数--my-font
が宣言されます
declarations
生成される@font-face
をさらに定義するフォントフェースのディスクリプタのキーと値のペアの配列。
next/font/local
で使用
- オプション
例:
declarations: [{ prop: 'ascent-override', value: '90%' }]
スタイルの適用
フォントスタイルは3つの方法で適用できます:
className
読み込まれたフォントのHTML要素に渡すための、読み取り専用のCSS className
を返します。
style
読み込まれたフォントのHTML要素に渡すための、読み取り専用のCSS style
オブジェクトを返します。フォントファミリー名とフォールバックフォントにアクセスするための style.fontFamily
を含みます。
CSS変数
外部スタイルシートでスタイルを設定し、追加のオプションを指定する場合は、CSS変数メソッドを使用します。
フォントをインポートする際に、CSS変数が定義されているCSSファイルもインポートし、フォントローダーオブジェクトの変数オプションを以下のように設定します:
フォントを使用するには、スタイルを適用するテキストの親コンテナのclassName
をフォントローダーのvariable
値に、テキストのclassName
を外部CSSファイルのstyles
プロパティに設定します。
component.module.css
CSSファイルでtext
セレクタクラスを以下のように定義します:
上記の例では、Hello World
のテキストが、生成されたフォントフォールバックを使用したInter
フォントで、font-weight: 200
とfont-style: italic
のスタイルが適用されています。
フォント定義ファイルの使用
localFont
またはGoogleフォント関数を呼び出すたびに、そのフォントはアプリケーション内で1つのインスタンスとしてホストされます。そのため、同じフォントを複数の場所で使用する必要がある場合は、1つの場所で読み込み、必要な場所でそれに関連するフォントオブジェクトをインポートする必要があります。これは、フォント定義ファイルを使用して行います。
例えば、アプリディレクトリのルートにあるstyles
フォルダにfonts.ts
ファイルを作成します。
次に、以下のようにフォント定義を指定します:
これらの定義を以下のようにコードで使用できます:
コード内でフォント定義にアクセスしやすくするために、tsconfig.json
またはjsconfig.json
ファイルにパスエイリアスを定義できます:
これで、次のようにフォント定義をインポートできます:
バージョンの変更
バージョン | 変更点 |
---|---|
v13.2.0 | @next/font がnext/font に名称変更。インストールが不要になりました。 |
v13.0.0 | @next/font が追加されました。 |