通过 100+ 个技巧学习 Nuxt!

@coremyslo/nuxt-icon-font

从指定的包含 SVG 图标的文件夹自动生成字体和自定义属性(变量),并将其注入到页面中,同时进行实时监控。

@coremyslo/nuxt-icon-font

npm versionnpm downloadsLicenseNuxt

Nuxt 图标字体生成器


注意: 这仅是与 Nuxt 3 兼容的模块。


特性

  • 🕵️‍♂️ 监视指定的包含 SVG 图标的文件夹(和子文件夹),并在更改时生成字体
  • 💅 通过 SVGO 优化 SVG 文件
  • 🤯 手动或基于 browserslist 自动检测要生成的字体格式
  • 🏗️ 生成自定义属性(变量)并将图标代码注入到页面中,其中 SVG 文件名用作变量名
  • ❤️ 检测并生成最流行的字体格式作为 base64,以减少页面跳动效果

用法

<template>
  <p>I'm a text with icon!</p>
</template>
<style scoped lang="scss">
  p {
    &:before {
      content: var(--icon-font-house);
      font-family: "icon-font";
    }
  }
</style>

设置

  1. @coremyslo/nuxt-icon-font 依赖项添加到您的项目中
npx nuxi@latest module add icon-font
  1. my-module 添加到 nuxt.config.tsmodules 部分
export default defineNuxtConfig({
  modules: [
    "@coremyslo/nuxt-icon-font"
  ]
})
  1. 可选nuxt.config.ts 中根据您的需求进行配置。以下是默认配置。
export default defineNuxtConfig({
  // ...
  iconFont: {
    // Font name to be used in "font-family" and custom properties generated prefix "--icon-font-svgiconfilename"
    name: "icon-font",
    // folder with icons to watch
    sourceDirPath: "assets/icon-font",
    // target folder for generated fonts in "public" folder
    targetDirPath: "icon-font",
    // font formats to generate, fallback to ["woff2"] in case browserslist is not used, example for manual configuration: ["svg", "ttf", "woff", "woff2", "eot"] in any order
    formats: getFontFormatsList(browserslist()),
    // Generates font in memory as "woff" and injects it as base64 to reduce page jump effect, ignores "formats" option
    base64: true,
    // unicode symbol for first icon in iconfont (makes sense to change only if you're not going to use custom properties)
    unicode: "0xE900",
    // generated custom properties (variables) format. Other options are: "snake", "pascal", "camel", "header", "constant"
    case: "kebab"
  }
})