Vue3项目中Element Plus主题色定制(通过scss变量替换方案)

Element Plus官方解释:
https://element-plus.org/zh-CN/guide/theming.html#%E9%80%9A%E8%BF%87-scss-%E5%8F%98%E9%87%8F

如果通过scss变量替换方案来定制Element Plus主题色,按照如下步骤:

  • 安装sass:使用命令npm install sass -D
  • 准备定制样式文件:在项目下面新增文件styles/element/index.scss
  • 对Element Plus样式进行覆盖:通知Element Plus采用scss语言,再导入定制的scss文件覆盖

安装sass

执行npm i sass -D
在这里插入图片描述

准备定制化的样式文件

在项目styles目录下面创建一个目录element,然后在element目录下面新建一个index.scss文件:
在这里插入图片描述

index.scss文件的内容:

/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with ($colors: ('primary': ( // 主色
            'base': #27ba9b,
        ),
        'success': ( // 成功色
            'base': #1dc779,
        ),
        'warning': ( // 警告色
            'base': #ffb302,
        ),
        'danger': ( // 危险色
            'base': #e26237,
        ),
        'error': ( // 错误色
            'base': #cf4444,
        ),
    ))

自动导入配置

配置Element Plus采用saas配色系统

将vite.config.js文件中的Components修改为如下形式:

   Components({
      resolvers: [
        // 配置Element Plus采用saas样式配色系统
        ElementPlusResolver({ importStyle: 'sass' }),
      ],
    })

自动导入定制化样式文件进行样式覆盖

将下面这段代码放入vite.config.js文件中:

  css: {
    preprocessorOptions: {
      scss: {
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }

修改后的vite.config.js文件为:

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// Element Plus按需导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [
        // 配置Element Plus采用saas样式配色系统
        ElementPlusResolver({ importStyle: 'sass' }),
      ],
    }),
  ],
  resolve: {
    // 实际的路径转换 将@ 转换为./src
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }
})

修改配置后,执行npm run dev重启,primary按钮的主题色修改为绿色了:
在这里插入图片描述

替换ElementUI Plus中的颜,首先需要了解Vue3ElementUI Plus的使用方法。 Vue3是一种流行的JavaScript框架,用于构建用户界面。它采用组件驱动的开发方式,允许开发者将应用程序分解为多个可复用的组件。ElementUI PlusElementUI的扩展版本,提供了更多的组件和功能,方便我们快速构建界面。 要替换ElementUI Plus中的颜,有几个步骤可以按照以下方式进行: 1. 安装ElementUI Plus:通过npm或yarn安装ElementUI Plus。运行命令`npm install element-plus`或`yarn add element-plus`来安装。 2. 创建自定义主题文件:在Vue3的入口文件中,创建一个名为theme.scss的自定义主题文件,并将其导入到入口组件中。可以使用Sass或者Less等预处理器语言编写主题文件。 3. 修改颜变量:在theme.scss中,可以找到ElementUI Plus的颜变量。这些变量负责控制组件的颜,如主题、边框等。修改这些变量的值来改变组件的颜。 4. 使用自定义主题:在入口组件中,使用Vue3的全局样式API,将theme.scss导入并应用于整个应用程序。可以使用`import './theme.scss'`来导入。 5.重新编译应用:当修改了自定义主题文件后,需要重新编译应用程序,使得修改生效。运行`npm run build`,将应用程序打包发布到生产环境。 通过上述步骤,就可以替换ElementUI Plus中的颜。注意,在替换时,要保持一致性,确保所有的元素和组件都使用统一的颜主题。这样,就能够更好地满足项目的需求,让界面更加个性化和美观。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值