ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue+element自定义主题的几种方法

2021-01-25 19:03:53  阅读:554  来源: 互联网

标签:scss 文件 vue 自定义 主题 element theme import


本文实现了三种(也就是官方所讲的前三种,最后一种不想试了):

方法一:在项目中改变 SCSS 变量

项目使用scss时,创建自定义的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 './[自定义的scss文件名].scss'

Vue.use(Element)

需要注意的是,覆盖字体路径变量是必需的,将其赋值为 Element 中 icon 图标所在的相对路径即可。

注意::不知道主题哪里使用了什么变量,可以从主题自动生成的scss文件中查找,主题文件的生成按照第二种方法即可;

方法二:命令行主题工具

如果你的项目没有使用 SCSS,那么可以使用命令行主题工具进行深层次的主题定制:

//安装主题工具
npm i element-theme -g

//安装白垩主题,可以从 npm 安装或者从 GitHub 拉取最新代码。
# 从 npm
npm i element-theme-chalk -D

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

主题生成工具安装成功后,如果全局安装可以在命令行里通过 et 调用工具,如果安装在当前目录下,需要通过 node_modules/.bin/et 访问到命令。执行 -i 初始化变量文件。默认输出到 element-variables.scss,当然你可以传参数指定文件输出目录。

et -i [可以自定义变量文件]

> ✔ Generator variables file

执行成功如上图,但是因为版本原因可能报错,是因为主题工具问题,可以执行下面的命令;

cnpm i element-themex -g

运行成功后,重新在命令行执行et -i,即可生成element-variables.scss文件

在文件中修改主题变量的颜色后,执行et,即可生成them文件夹

et

> ✔ build theme font
> ✔ build element theme

在入口文件引用即可

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

Vue.use(ElementUI)

方法三:引入自定义主题

和引入默认主题一样,在代码里直接引用「在线主题编辑器」或「命令行工具」生成的主题的 theme/index.css 文件即可。

官方在线编辑主题链接如下(选取色彩后可以下载,放入自己项目):

https://elementui.github.io/theme-chalk-preview/#/zh-CN

方法四:借助 babel-plugin-component

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

首先,安装 babel-plugin-component:

npm install babel-plugin-component -D

然后,将 .babelrc 修改为:

{
  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

注意::如果是搭配 babel-plugin-component 一起使用,只需要修改 .babelrc 的配置,指定 styleLibraryName 路径为自定义主题相对于 .babelrc 的路径,注意要加 ~

 

标签:scss,文件,vue,自定义,主题,element,theme,import
来源: https://www.cnblogs.com/EssMin/p/14326851.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有