currentColor 的作用
currentColor 是一个 CSS 关键字,它会解析为元素计算后的 color 值。当 SVG 使用 fill="currentColor" 时,图标会使用父元素的颜色来绘制,无论这个颜色来自 Tailwind 类、链接的悬停状态还是深色模式媒体查询。
设计工具导出的图标通常带有固定的十六进制颜色,例如 fill="#111827"。这会把图标锁定为一种颜色,迫使你为每个主题维护不同的文件。转换为 currentColor 后,一个文件就能适用于任何场景。
转换器会改动哪些内容
开启 currentColor 选项后:
- 带颜色值的 fill 和 stroke 属性会变为 currentColor。
- 内联 style 属性中的 fill 和 stroke 也会被替换。
- none、transparent、inherit 以及 url(#gradient) 引用会被保留,因此描边轮廓和渐变仍然正常。
- 渐变中的 stop-color 等其他颜色保持不变。
什么时候不该用 currentColor
多色插画、品牌 Logo 和旗帜依赖多种特定颜色,把它们全部替换成同一种颜色会让作品变得扁平。对于这类文件,请保留原始颜色,或者只对需要随主题变化的少数颜色使用 CSS 自定义属性。