Jevon617 / unplugin-svg-component

generate a vue/react component through svg files, supporting svg file HMR, Tree-shaking, SSR and TS hint.
MIT License
58 stars 5 forks source link

有无处理多色svg的优雅方式 #1

Closed itmanyong closed 1 year ago

itmanyong commented 1 year ago

目前插件会替换fill与stroke主要属性为currentColor,在面对多色图标时显得不是那么完美,例如两个path的fill本身颜色不一样才能体现视觉效果,但是优化后将会根据currentColor使用相同颜色,就呈现不出预期的效果。是否能针对这个场景提供一些优化呢

如上所示:第三个path与前两个path的fill不一样才能达到预期效果,但是目前貌似不够友好

想法: 1.暴露处理currentColor的配置函数,全权交给开发者自定义 2.通过配置开启差异化css变量填充,如:第一个currentColor->var(--fill-1),第二个currentColor->car(--fill-2)

Jevon617 commented 1 year ago
  1. 目前有一个属性preserveColor, 它支持正则表达式, 根据你svg的路径匹配保留你原来的颜色, 有色图标你可以放在一个子文件夹, 配置这个正则达到保留颜色的目的;
  2. 第二点我会考虑增加.
Jevon617 commented 1 year ago

@itmanyong 增加配置函数这个想法觉得意义不大, preserveColor就可以解决多色图标的问题, 如果是要修改多色图标, 那直接去修改源文件即可.