Vue的elementUI实现自定义主题

使用vue开发项目,用到elementUI,根据官网的写法,我们可以自定义主题来适应我们的项目要求,下面来介绍一下两种方法实现的具体步骤,(可以参考官方文档自定义主题官方文档),先说项目中没有使用scss编写,用主题工具的方法(使用的较多)

第一种方法:使用命令行主题工具
使用vue-cli安装完项目并引入element-ui(具体可参考第二种方法中的介绍)

一、安装工具
1,安装主题工具

npm i element-theme -g

2,安装chalk主题,可以从 npm 安装或者从 GitHub 拉取最新代码

# 从 npm
npm i element-theme-chalk -D

# 从 GitHub
npm i https://github.com/ElementUI/theme-chalk -D

二、初始化变量文件
et -i [可以自定义变量文件,默认为element-variables.scss]

> ? Generator variables file

这时根目录下会产生element-variables.scss(或自定义的文件),大致如下:

$--color-primary: #409EFF !default;
$--color-primary-light-1: mix($--color-white, $--color-primary, 10%) !default; /* 53a8ff */
$--color-primary-light-2: mix($--color-white, $--color-primary, 20%) !default; /* 66b1ff */
$--color-primary-light-3: mix($--color-white, $--color-primary, 30%) !default; /* 79bbff */
$--color-primary-light-4: mix($--color-white, $--color-primary, 40%) !default; /* 8cc5ff */
$--color-primary-light-5: mix($--color-white, $--color-primary, 50%) !default; /* a0cfff */
$--color-primary-light-6: mix($--color-white, $--color-primary, 60%) !default; /* b3d8ff */
$--color-primary-light-7: mix($--color-white, $--color-primary, 70%) !default; /* c6e2ff */
$--color-primary-light-8: mix($--color-white, $--color-primary, 80%) !default; /* d9ecff */
$--color-primary-light-9: mix($--color-white, $--color-primary, 90%) !default; /* ecf5ff */

$--color-success: #67c23a !default;
$--color-warning: #eb9e05 !default;
$--color-danger: #fa5555 !default;
$--color-info: #878d99 !default;

三、修改变量
直接编辑 element-variables.scss 文件,例如修改主题色为自己所需要的颜色(如: 紫色(purple))

$--color-primary: purple;
1
四、编译主题
修改完变量后,要编译主题(如果编译后,再次修改了变量,需要重新编译)

et

> ? build theme font
> ? build element theme

五、引入自定义主题
最后一步,将编译好的主题文件引入项目(编译的文件默认在根目录下的theme文件下,也可以通过 -o 参数指定打包目录),在入口文件main.js中引入

import ‘../theme/index.css‘
import ElementUI from ‘element-ui‘
import Vue from ‘vue‘

Vue.use(ElementUI)

在项目中写些样式,看下主题色是否改变:(主题色变为紫色)

<div>
<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>
</div>

第二种方法: 直接修改element样式变量
在项目中直接修改element的样式变量,(前提是你的文档也是使用scss编写)

一、首先用vue-cli安装一个新项目:
1,安装vue:

npm i -g vue
1
2,在项目目录下安装vue-cli:

npm i -g vue-cli
1
3,基于webpack建立新项目( vue-project)

vue init webpack vue-project
4,依次输入以下命令行,运行vue-project

cd vue-project
npm i
npm run dev

二、安装elementUI以及sass-loader,node-sass(项目中使用scss编写需要依赖的插件)
1,安装element-ui

npm i element-ui -S
1
2,安装sass-loader,node-sass

npm i sass-loader node-sass -D
1
在这里说一下,不需要配置webpack.base.conf.js文件,vue-loader会根据不同类型文件来配置相应loader来打包我们的样式文件(感兴趣的可看下vue-loader的核心代码)

三、改变element样式变量
1.在src下建立element-variables.scss文件(名字可以自定义),写入如下代码:

/* 改变主题色变量 */
$--color-primary: teal;

/* 改变 icon 字体路径变量,必需 */
$--font-path: ‘../node_modules/element-ui/lib/theme-chalk/fonts‘;

@import "../node_modules/element-ui/packages/theme-chalk/src/index";

2.在入口文件main.js中引入上面的文件即可

import Vue from ‘vue‘
import Element from ‘element-ui‘
import ‘./element-variables.scss‘

Vue.use(Element)

看下效果吧,在文件里引入些样式看看,如button

<div>
<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>
</div>

默认的颜色已经变为我们自定义的了,有其他的改变在element-variable.scss文件中改变变量即可
————————————————
版权声明:本文为CSDN博主「wangcuiling_123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangcuiling_123/article/details/78513245

原文地址:https://www.cnblogs.com/ygunoil/p/12420114.html

时间: 2024-11-10 10:47:20

Vue的elementUI实现自定义主题的相关文章

element 如何自定义主题

自定义主题 在我学习element的时候,就直接忽略了.现在返回来学习一下 ,原来 通过自定义主题可以改变elemnt中默认的一些样式.这样,对于一些不想用elment自带但是用到比较多的样式,可以进行修改. 看了很多关于自定义主题的文章,其实都是 差不多的, 我想自己写一遍,加深一下印象,也希望能给别人带来帮助. 这篇博客的思路,总结性比较强,指的大家j借鉴:https://blog.csdn.net/young_emily/article/details/78591261 改变原有的elem

vue2.0-基于elementui换肤[自定义主题]

0. 直接上 预览链接 vue2.0-基于elementui换肤[自定义主题] 1. 项目增加主题组件 在项目的src/components下添加skin文件夹 skin文件获取地址 2. 项目增加自定义主题 自定义添加主题下载地址 https://elementui.github.io/theme-chalk-preview/#/zh-CN 3. 项目引入和使用 选择你想要随主题改变的element元素在src/global/themeArray里面,不希望随主题改变的可以注释掉 选择皮肤之后

五:Vue之ElementUI 表格Table与分页Pagination组件化

(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所以对ElementUI的表格和分页组件进行了二次封装. 首先在工程下的components目录下创建common文件夹并新建commonTable.vue文件,添加如下代码: <template> <div id="commonTable"> <el-tabl

vue使用element-ui的el-input监听不了键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="name" placeholder="账号" @keyup.enter="doLogin"></el-input> 在执行的时候事件是定义在input外面的div上的,所有没有响应. 解决方法需要在事

Extjs自定义主题

每一个ExtJS程序都是从一个Application类的实例开始的.它包含了你程序的全局设置. 自定义主题的例子:新建一个工作空间:windows控制台窗口下进入有sdk所在的目录输入命令:sencha –sdk  ~/ generateworkspace my-workspace,而后会发现在sdk所在的目录下会出现myworkspace文件夹.其中有连个目录分别为:ext,packages (1)建立一个应用程序测试项目: 在myworkspace目录下输入命令:sencha –sdk ex

百度echarts自定义主题使用

1.百度echarts官网主题构建,自定义主题 主题在线构建  http://echarts.baidu.com/theme-builder/ 构建完成后下载并保存js文件 2.html导入保存的js文件 <!-- 引入 ECharts 文件 --> <script src="echarts.js"></script> <!-- 引入 自定义主题customed --> <script src="customed.js&q

Vue之彻底理解自定义组件的v-model

最近在学习vue,今天看到自定义事件的表单输入组件,纠结了一会会然后恍然大悟...官方教程写得不是很详细,所以我决定总结一下. v-model语法糖 v-model实现了表单输入的双向绑定,我们一般是这么写的: 1 <div id="app"> 2 <input v-model="price"> 3 </div> 1 new Vue({ 2 el: '#app', 3 data: { 4 price: '' 5 } 6 }); 通

Material使用05 自定义主题、黑夜模式\白天模式切换

需求: 1 不使用materil依赖内建的主题,使用自己创建的主题 2 利用自己创建的主题实现白天模式和黑夜模式 1 自定义主题 1.1 创建自定义主题文件 them.scss // 引入material自定义主题支持 @import '[email protected]/material/theming'; // 引入material公用的主题风格 @include mat-core(); // 自定义颜色 $my-app-primary: mat-palette($mat-blue); $m

VUE基于ElementUI搭建的简易单页后台

一.项目链接 GitHub 地址: https://github.com/imxiaoer/ElementUIAdmin 项目演示地址:https://imxiaoer.github.io/ElementUIAdmin/dist/index 二.项目依赖 1. 数据请求      "axios": "^0.18.0", 2. 图表控件    "echarts": "^4.2.0-rc.2", 3. 富文本编辑器   "