📜  在 nuxt vuetify 中更改字体 (1)

📅  最后修改于: 2023-12-03 14:51:03.231000             🧑  作者: Mango

在 Nuxt Vuetify 中更改字体

在 Nuxt.js 和 Vuetify 结合的项目中,我们可以通过简单的修改来更改字体。

步骤
  1. 打开项目的 nuxt.config.js 文件,找到该文件中的 vuetify 配置对象,添加 customVariablestheme 两个属性:
vuetify: {
  customVariables: ['~/assets/variables.scss'],
  theme: {
    dark: false,
    themes: {
      light: {
        primary: '#ee44aa',
        accent: '#3f51b5',
        secondary: '#b0bec5',
        info: '#8c9eff',
        warning: '#ffc107',
        error: '#f44336',
        success: '#4caf50'
      }
    }
  }
}

customVariables 中设置我们想要覆盖的 Vuetify 变量的路径,这里使用了一个 SASS 文件 variables.scss。在 theme 中设置我们自定义的主题,这里只设置了 light 主题。

  1. assets 目录下创建自定义的 SASS 文件 variables.scss,在该文件中添加我们需要覆盖的变量和自定义的字体:
$font-family: 'Custom Font', sans-serif;

$heading-font-family: $font-family;
$body-font-family: $font-family;

在这个示例中,我们使用 Custom Font 字体,这个字体必须在我们的项目中可用。

  1. 安装我们使用的字体。

可以使用像 Google Fonts 这样的在线字体库,选择我们需要的字体并获取它的链接。然后,将该链接添加到我们的 index.html 文件中,以使该字体库可用。

<head>
  ...
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Custom+Font">
</head>
  1. 在 Vuex 的 store 中添加一个 mutate 函数,以在需要时更改当前主题的字体:
export const mutations = {
  setFontFamily(state, fontFamily) {
    state.fontFamily = fontFamily;
    state.theme.themes.light.body.fontFamily = fontFamily;
    state.theme.themes.light.heading.fontFamily = fontFamily;
  }
};

在这个示例中,我们使用了 Vuex 的 store,将整个主题存储在其中。

  1. 在项目中的任何地方都可以使用 this.$store.commit('setFontFamily', 'Custom Font') 更改当前主题的字体。

以上就是在 Nuxt Vuetify 中更改字体的所有步骤。

结论

在 Nuxt.js 和 Vuetify 结合的项目中更改字体非常容易。我们只需要将我们想要覆盖的 Vuetify 变量和我们想要使用的自定义字体添加到项目中,并在 Vuex store 中更改当前主题的字体即可。