方法一:在线主题编辑器
element的在线主题编辑器:https://element.eleme.cn/#/zh-CN/theme/preview
修改定制 Element 所有全局和组件的 Design Tokens,并可以方便地实时预览样式改变后的视觉。同时它还可以基于新的定制样式生成完整的样式文件包,供直接下载使用(关于如何使用下载的主题包,请参考方法二中的「引入自定义主题」部分)。
方法二:项目中使用了scss
Element 的 theme-chalk 使用 SCSS 编写,如果你的项目也使用了 SCSS,那么可以直接在项目中改变 Element 的样式变量。新建一个样式文件,例如 element-variables.scss,写入以下内容:
/* 改变主题色变量 */
$--color-primary: teal;
/* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';
@import "~element-ui/packages/theme-chalk/src/index";
之后,在项目的入口文件中,直接引入以上样式文件即可(无需引入 Element 编译好的 CSS 文件):
import Vue from 'vue'
import Element from 'element-ui'
import './element-variables.scss'
Vue.use(Element)
需要注意的是,覆盖字体路径变量是必需的,将其赋值为 Element 中 icon 图标所在的相对路径即可。
方法三:命令行主题工具
一. 安装工具
- 安装主题工具
npm i element-theme -g
不要使用这个命令,否则运行 et -i 时可能会报错(primordials is not defined错误)cnpm i element-themex -g
建议使用这个命令,且不要使用npm安装,暂且不知道为什么要使用这个命令,如果有大佬知道,烦请指出
- 安装chalk主题,可以从 npm 安装或者从 GitHub 拉取最新代码
# 从 npm
npm i element-theme-chalk -D
# 从 GitHub
npm i https://github.com/ElementUI/theme-chalk -D
二. 修改配置
- 获取theme的sass文件并修改
et -i //[可以自定义变量文件,默认为element-variables.scss]
> ✔ Generator variables file //表示成功
- 这时根目录下会产生element-variables.scss(或自定义的文件),大致如下:
- 直接编辑 element-variables.scss 文件,例如修改主题色为自己所需要的颜色
$--color-primary: purple;
三. 编译主题
修改完变量后,要编译主题(如果编译后,再次修改了变量,需要重新编译)
et
> ✔ build theme font
> ✔ build element theme //表示从新编译成功
执行主题编译命令生成主题,根目录会生成一个theme的文件夹 。需要引入这个文件夹里的css、font等资源。theme文件夹里有font文件夹和大量的css文件,css文件只留下index.css,其他的css文件都可以删掉,因为index.css中的样式包含其他全部css文件的样式。
四. 引入自定义主题。
引入自定义主体。先把安装element时引入main.js中的主题样式去掉,在main.js中引入
五. 验证自定义主题是否成功
在项目中写些样式,看下主题色是否改变
<el-row>
<el-button>默认按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="success">成功按钮</el-button>
<el-button type="info">信息按钮</el-button>
<el-button type="warning">警告按钮</el-button>
<el-button type="danger">危险按钮</el-button>
</el-row>
参考链接:https://element.eleme.cn/#/zh-CN/component/custom-theme