vbenjs / vite-plugin-theme

Vite plugin for dynamically changing the theme color of the interface
MIT License
141 stars 34 forks source link

在集成vxe-table自定义主题时,主题颜色修改后,lighten函数将primary-color预处理计算的值不能跟随主题颜色改变 #15

Open vyks520 opened 2 years ago

vyks520 commented 2 years ago

问题描述:

在集成vxe-table自定义主题时,主题颜色修改后,lighten函数将primary-color预处理计算的值不能跟随主题颜色改变。

由于vite-plugin-theme是根据值进行匹配的,scss预处理后css颜色值与原来变量值不一样,导致不能替换为新的颜色。

请问大佬是否有解决方案? 尝试通过css变量也不能使用,例如:background-color: lighten(var(--primary-color), 6%);, 在scss预处理时var(--primary-color)还不存在,会报错。

问题代码段:

&:hover {
  background-color: lighten($btnBackground, 6%);
  border-color: lighten($btnBackground, 6%);
}

相关链接: https://xuliangzhan_admin.gitee.io/vxe-table/v4/table/start/theme

vyks520 commented 2 years ago

通过vite-plugin-theme-preprocessor解决了,不过同一个项目里面用多个主题插件,感觉不够优雅。

vite-plugin-theme-preprocessor地址: https://github.com/GitOfZGT/vite-plugin-theme-preprocessor

vue-vben-admin实现vxe-table主题切换示例: https://github.com/vyks520/vue-vben-admin/commits/main