-
Notifications
You must be signed in to change notification settings - Fork 716
集成 iconifly 方案
小小石 edited this page Apr 17, 2024
·
1 revision
在这里 issue 中讨论了下方案:关于项目中的 SVG 标签影响代码可读性问题
- Iconify for Tailwind CSS - 教你怎么在 tailwind 里面用 iconify
- Innei/Shiro - 内神的项目已经很全面了,也是 tailwind + iconify,参考 icon 方案
- Icon Sets - Iconify - iconify 官方的图标检索平台
- Icônes - 托尼写的图标检索平台,体验下来,比官方的好用多了
egoist/tailwindcss-icons 方案(选择)
- 优点:智能提示很舒服,写法上更偏向 unocss 的使用
-
缺点:带来的问题就是开销更大,因为它是直接把全部的
icon
生成在components
里, 然后再交给Tailwind CSS
从里面进行挑选再输出到我们的css
文件中的,不过问题不大
pnpm add -D @egoist/tailwindcss-icons
# 这里拿 Phosphor Icons 用于示例,正好项目中也有需要用到的
pnpm add -D @iconify-json/ph
const {
iconsPlugin,
getIconCollections,
} = require("@egoist/tailwindcss-icons");
export default {
plugins: [
iconsPlugin({
// 配置需要的 icon 包就行(需要安装)
collections: getIconCollections(["mdi", "lucide"]),
}),
],
}
<!-- pattern: i-{collection_name}-{icon_name} -->
<span class="i-mdi-home"></span>
在 IDE 中真实使用体验
iconify/tailwind 方案(舍弃)
-
优点:基于
JIT
动态加载生成,开发时开销更小 - 缺点:写法有点恶心 + 没有提示
pnpm add -D @iconify/tailwind
const { addDynamicIconSelectors } = require("@iconify/tailwind");
export default {
plugins: [addDynamicIconSelectors()],
}
<span class="icon-[mdi-light--home]"></span>