[vue3]定制elementPlus主题

elementUI默认提供了一套主题色,并且css明明采用BEM风格,可以方便的覆盖样式。

但是如果整个项目主题色都不同,那么一个个去覆盖工作量太大了。

我们可以通过一些方法来批量改变样式变量。详细见elementUI官方文档

elementPlus主题更换-官方文档

这里我们使用sass来实现

首先我们要安装sass

npm i sass -D

而后准备定制化的样式文件,在styles目录下创建element/index.scss

这个文件通常是由UI设计师提供

/* 只需要重写你需要的即可 */
@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,
    ),
  )
)

安装官方的配置文档来导入配置,这里我将修改的部分又注释包起来,方便观看

import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// 导入对应包
// 此处为需要修改的地方
import ElementPlus from 'unplugin-element-plus/vite'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      // 这里一定要应用sass,不然无法成功!!
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
    }),
    // 按需定制主题配置
    // 此处为需要修改的地方
    ElementPlus({
      useSource: true,
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
// 此处为需要修改的地方
  css: {
    preprocessorOptions: {
      scss: {
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }
})

配置完成

如果你的配置没有成功,请检查这三个部分:

1.是否安装了scss、ElementUI

2.index.scss配置是否正确

3.  Components({
      // 这里一定要应用sass,不然无法成功!!
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
    }),

这里是否配置了scss

### 创建 Vue 3 和 Element Plus 项目 #### 使用 Vite 创建项目 为了更高效地构建现代 Web 应用程序,推荐使用 Vite 来初始化项目。Vite 是一种新型的前端构建工具,具有极快的冷启动速度和热更新特性。 通过命令行执行以下操作来创建基于 Vite 的 Vue 3 项目: ```bash npm create vite@latest my-vue-app --template vue cd my-vue-app npm install ``` 接着,在新项目的根目录下安装 Element Plus 组件库: ```bash npm install element-plus ``` 完成上述步骤之后,可以在 `main.js` 文件中引入并注册 Element Plus: ```javascript import { createApp } from 'vue' import App from './App.vue' // 导入整个 ElementPlus 或按需加载特定组件 import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; const app = createApp(App); app.use(ElementPlus); app.mount('#app'); ``` 对于不依赖于 Vite 的传统方式,则可以采用 Vue CLI 工具链来进行环境搭建[^2]。 #### 配置 TypeScript 支持 (可选) 如果计划在项目里加入TypeScript支持, 可以按照如下方式进行设置: ```bash npm install -D typescript @types/node eslint-plugin-unused-imports npx tsc --init ``` 编辑 `tsconfig.json`, 设置合适的编译选项,并调整 ESLint 规则以便更好地兼容 TypeScript 编写习惯. #### 安装其他常用插件和服务 考虑到实际应用场景的需求,还可以考虑集成路由管理器(`vue-router`)以及状态管理模式(`pinia`)等功能模块,进一步增强应用程序的功能性和灵活性[^3]. #### 初始化页面布局与样式定制化 根据具体业务逻辑设计首页结构,利用Element Plus 提供的各种UI组件快速搭建响应式的用户界面;同时也可以自定义主题颜色等全局属性,使产品外观更加贴近品牌调性或者满足特殊视觉需求.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林总肿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值