在 TailwindCSS 中使用 Iconify 图标

想要在 TailwindCSS 使用 Iconify,首先得安装一个 TailwindCSS 的插件,目前实现的比较好的插件有两个:

第一个是 Iconify 官方实现的插件,但两个插件仅内部实现不一致,用法和效果没有明显区别,根据你的喜好选择就好。

搭配 @iconify/tailwind 使用

首先,需要安装 20 万图标(@iconify/json)和 @iconify/tailwind 插件:

npm i @iconify/json @iconify/tailwind -D

然后,在 tailwind.config.js 中声明插件:

const { addDynamicIconSelectors } = require('@iconify/tailwind')
export default {
  plugins: [addDynamicIconSelectors()]
}

是的,这样就可以了。只要是你能使用 TailwindCSS 样式的地方,你都可以通过一个类名就引入一个图标。比如要使用一个左箭头图标,我们就可以这样写:

<i class="icon-[material-symbols--arrow-back-ios-new]" />

其中,中括号的内容是 {图标库名}--{图标名},你肯定记不住这么多图标库和图标的名称,这就是 Yesicon 存在的意义,你只需搜索到自己心仪的图标,点击复制代码,然后粘贴到你的代码中即可。

搭配 @egoist/tailwindcss-icons 使用

和上面一样,先安装 20 万图标(@iconify/json)和 @egoist/tailwindcss-icons 插件:

npm i @iconify/json @egoist/tailwindcss-icons -D

然后,在 tailwind.config.js 中声明插件:

const { iconsPlugin, dynamicIconsPlugin } = require('@egoist/tailwindcss-icons')
export default {
  plugins: [iconsPlugin(), dynamicIconsPlugin()]
}

现在就可以在任意文件中使用类名了,注意两个插件写法不一致:

<i class="icon-material-symbols-arrow-back-ios-new" />

性能:以上的用法是为了用简单的方式引入最多的图标,但由于 @egoist/tailwindcss-icons 实现了编辑器的自动完成功能,这样引入全部图标会导致编辑器变慢,所以作者更推荐按需使用图标库,具体用法请参考插件的 文档

图标颜色和大小

要定义图标颜色和大小,只需定义图标元素或父级元素的文字颜色(color)和大小(font-size)即可:

<i class="icon-[material-symbols--arrow-back-ios-new] text-rose-500 text-2xl" />

比如这个示例中,将这个左箭头图标设置成了玫瑰色,并将图标大小设置为了 24px。