当前位置: 首页 > news >正文

自定义Element Plus主题

前言

相比于 Antd 直接全局添加 theme 配置而言,ELement 自定义组件样式相对复杂。注册 ELement Plus 时,全量导入和按需导入的配置并不相同,本文一一介绍配置方式。

全量导入ElementPlus的处理方式

如果是如下这种全量导入 Element Plus

import App from "./App.vue"
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)

创建 scss 文件,并在入口文件中导入即可

// styles/element/index.scss
/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with ($colors: ('primary': ('base': green,),),
);// 导入所有样式:
@use "element-plus/theme-chalk/src/index.scss" as *;
import App from "./App.vue"
import ElementPlus from 'element-plus'
// import 'element-plus/dist/index.css'  
// 引入自定义主题样式
import "./styles/element/index.scss"const app = createApp(App)
app.use(ElementPlus)

按需导入ElementPlus的处理方式

在这里插入图片描述

主要代码如下

import { defineConfig, loadEnv } from "vite"
import type { UserConfig, ConfigEnv } from "vite"
import vue from "@vitejs/plugin-vue"
import { resolve } from "path"
// 自动导入配置相关
import AutoImport from "unplugin-auto-import/vite"
import Components from "unplugin-vue-components/vite"
import { ElementPlusResolver } from "unplugin-vue-components/resolvers"
import Icons from "unplugin-icons/vite"
import IconsResolver from "unplugin-icons/resolver"export default defineConfig(({ mode }: ConfigEnv): UserConfig => {const config = loadEnv(mode, "./")return {plugins: [vue(),AutoImport({resolvers: [ElementPlusResolver(), IconsResolver()],imports: ["vue", "vue-router"],dts: "./src/types/auto-imports.d.ts",}),// 自动注册组件Components({resolvers: [ElementPlusResolver({ importStyle: "sass" }),IconsResolver({ enabledCollections: ["ep"] }),],dts: "./src/types/components.d.ts",}),// 自动安装图标Icons({compiler: "vue3", // 编译方式autoInstall: true,}),],css: {preprocessorOptions: {scss: {additionalData: `@use "./src/styles/variables.scss" as *; @use "./src/styles/element/common.scss" as *;`, // 全局变量 以及 Ele自定义主题 样式},},},}
})

http://www.mrgr.cn/news/75324.html

相关文章:

  • 蓝桥杯竞赛单片机组备赛【经验帖】
  • SCUI Admin + Laravel 整合
  • 微信小程序——实现二维码扫描功能(含代码)
  • 七大经典基于比较排序算法【Java实现】
  • 国标GB28181视频平台EasyCVR私有化部署视频平台对接监控录像机NVR时,录像机“资源不足”是什么原因?
  • C# 实现对指定句柄的窗口进行键盘输入的实现
  • 2.什么是项目集管理
  • `node-gyp` 无法找到版本为 `10.0.19041.0` 的 Windows SDK
  • MudBlazor:基于Material Design风格开源且强大的Blazor组件库
  • SQL LEFT JOIN 简介
  • 掌握.Net桌面开发的精髓之一:句柄,一种特殊的数据类型
  • ArkUI---使用弹窗---@ohos.promptAction (弹窗)
  • 探索黑窗口的魅力:CMD命令实战技巧
  • 前端快速上手(一):HTML
  • Java篇String类的常见方法
  • Android 中的 Zygote 和 Copy-on-Write 机制详解
  • React Hooks 深度解析与实战
  • HashMap扩容的时候为什么是2的n次幂?
  • Git 搭建远程仓库、在 IDEA 工具中的配置和使用
  • 【Node.js]
  • 【Hadoop】【hdfs】【大数据技术基础】课程 作业四 可视化工具的使用 大数据基础编程、实验和案例教程(第2版)
  • 后端:Spring AOP原理--动态代理
  • windows C#-查询表达式基础(三)
  • datawhale2411组队学习之模型压缩技术1:模型剪枝(上)
  • 科研绘图系列:R语言极坐标柱状图(barplot)
  • pgAdmin简单介绍