开始

配置

Nuxt 字体开箱即用,无需任何配置,但您始终可以添加一些配置以进行更细粒度的控制。

您不需要配置 Nuxt 字体,但您可以这样做以实现更精细的控制,方法是在您的 nuxt.config 中使用 fonts 属性。

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    // Options
  }
})

字体选项

这些选项定义了如何下载字体,包括权重、样式、子集等。这些选项可以用作默认行为,使用 defaults,或者针对特定字体使用单独的行为,使用 families

defaults

这定义了所有字体的默认字体选项。

defaults 示例

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    defaults: {
      weights: [400],
      styles: ['normal', 'italic'],
      subsets: [
        'cyrillic-ext',
        'cyrillic',
        'greek-ext',
        'greek',
        'vietnamese',
        'latin-ext',
        'latin',
      ]
    },
  }
})

styles

默认值:['normal', 'italic']

定义应为字体下载的样式。

subsets

默认值:['cyrillic-ext', 'cyrillic', 'greek-ext', 'greek', 'vietnamese', 'latin-ext', 'latin']

定义应为字体下载的子集。

fallbacks

默认值

{
  'serif': ['Times New Roman'],
  'sans-serif': ['Arial'],
  'monospace': ['Courier New'],
  'cursive': [],
  'fantasy': [],
  'system-ui': [
    'BlinkMacSystemFont',
    'Segoe UI',
    'Roboto',
    'Helvetica Neue',
    'Arial',
  ],
  'ui-serif': ['Times New Roman'],
  'ui-sans-serif': ['Arial'],
  'ui-monospace': ['Courier New'],
  'ui-rounded': [],
  'emoji': [],
  'math': [],
  'fangsong': [],
}

如果您使用通用的字体系列,如 Roboto, sans-serif,我们会在生成回退指标时将该通用系列名称“翻译”成一个或多个字体系列。您可以自定义我们使用的系列。(一个或两个效果最好。)

families

这是一个数组,它定义了特定字体的字体选项。您可以使用来自 defaults 的任何属性,同时还有一些额外的属性。

families 示例

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    families: [
      // do not resolve this font with any provider from `@nuxt/fonts`
      { name: 'Custom Font', provider: 'none' },
      // only resolve this font with the `google` provider
      { name: 'My Font Family', provider: 'google' },
      // specify specific font data - this will bypass any providers
      { name: 'Other Font', src: 'https://example.com/font.woff2', weight: 'bold' },
    ]
  }
})

name

默认值:

定义应给出选项的字体的名称。这是 families 数组中每个项目的必填项。

global

默认值:false

定义是否注入 @font-face,无论项目中是否使用。

provider

默认值:

定义用于给定字体的提供商。您可以从 nonegooglebunnyfontsharefontsourceadobelocal 中选择任何提供商。

src

默认值:

定义应用于给定字体的 src。如果定义了此选项,则不会对给定字体系列使用任何其他提供商。

提供商选项

提供商可以有自己的选项。这些选项会直接传递给不同的字体提供商。有关更多信息,请参阅 提供商文档

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    google: {},
    local: {},
    adobe: {
      id: ['fontkitId1', 'fontkitId2'],
    }
  }
})

providers

这定义了使用提供商的行为。

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    providers: {
      // You can pass a new custom provider - see more in the providers documentation
      // for what this file should look like
      custom: '~/providers/custom',
      // Or you can disable a built-in provider
      google: false,
    }
  }
})

assets

这定义了使用资源的行为。

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    assets: {
      // The baseURL where font files are served.
      prefix: '/_fonts/'
    }
  }
})

priority

您可以自定义检查提供商的顺序。

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    priority: ['bunny', 'google'],
  }
})

provider

在某些情况下,您可能希望只使用一个字体提供商。这等同于禁用所有其他字体提供商。

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    provider: 'google'
  }
})

devtools

定义是否为 Nuxt 字体启用开发工具,默认值为 true

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    // Disable the Nuxt Devtools integration
    devtools: false
  }
})

experimental

定义是否启用实验性功能。默认情况下,它们都是 false

nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/fonts'],
  fonts: {
    experimental: {
      // Required for TailwindCSS v4. You can enable support for processing CSS variables for font family names. This may have a performance impact.
      processCSSVariables: true
      // Defines whether to enable adding local fallbacks. Default is `false`.
      disableLocalFallbacks: true
    }
  }
})