Vue的elementUI實現自定義主題

2022-04-03 21:30:41 字數 3805 閱讀 6856

使用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 -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;

..

三、修改變數
$--color-primary: purple;

四、編譯主題

修改完變數後,要編譯主題(如果編譯後,再次修改了變數,需要重新編譯)

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)

在專案中寫些樣式,看下主題色是否改變:(主題色變為紫色)

預設按鈕

主要按鈕

成功按鈕

資訊按鈕

警告按鈕

危險按鈕

在專案中直接修改element的樣式變數,(前提是你的文件也是使用scss編寫)

一、首先用vue-cli安裝乙個新專案:

1,安裝vue:

npm i -g vue
2,在專案目錄下安裝vue-cli:

npm i -g vue-cli

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

2,安裝sass-loader,node-sass

npm i sass-loader node-sass -d

在這裡說一下,不需要配置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

預設按鈕

主要按鈕

成功按鈕

資訊按鈕

警告按鈕

危險按鈕

預設的顏色已經變為我們自定義的了,有其他的改變在element-variable.scss檔案中改變變數即可

vue 實現主題換膚 element ui

站在巨人的肩膀上開發之主題換膚 npm i webpack theme color replacer d2.1 vue.config.jsconst webpack require webpack const themecolorreplacer require webpack theme colo...

vue 實現主題換膚 element ui

npm i webpack theme color replacer dvue.config.jsconst webpack require webpack const themecolorreplacer require webpack theme color replacer const for...

Vue中elementUI的使用

官方文件 npm安裝 npm i element ui s在vue中進行引入 在main.js中 import vue from vue import router from router import elementui from element ui import element ui lib ...