1 Star 0 Fork 0

纪轻昀 / react-change-skin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

一键换肤

业务背景:只需要支持chrome,所以可以考虑的方案就多了。

网站换肤,一般有几种方案:

  1. 打包时生成多套css代码,切换皮肤时动态加载对应的css。缺点是只能用有限几种颜色,不可能为每种颜色都生成文件。
  2. 在根组件上加上主题类名,切换主题时改变类名,再通过CSS类来覆盖已有样式。缺点是代码结构复杂,工作量大,维护困难。
  3. 使用less时,可用lessmodifyVars方法在线生成新的样式。缺点是需要加载less.js,且在线解析会造成性能损耗。
  4. css3提供了变量,可满足我们的需求。

用法如下:

body {
  --themeColor: red;
}

div {
    color: var(--themeColor);
}

js中修改颜色即可:

document.body.style.setProperty('--themeColor', color);

假如项目中使用了less,这种方案依然生效:

@primary-color: var(--themeColor);
div {
    color: @primary-color;
}

会被解析为:

div {
    color: var(--themeColor);
}

空文件

简介

一键换肤 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/JiQingYun/react-change-skin.git
git@gitee.com:JiQingYun/react-change-skin.git
JiQingYun
react-change-skin
react-change-skin
master

搜索帮助