ElementPlus自定义主题

Vite按需引入ElementPlus

按照官网操作没什么问题

  1. 安装 element-plus unplugin-vue-components unplugin-auto-import
  2. 配置
// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})

Vite自定义ElementPlus主题

直接用scss变量覆盖,好处在于可以制定一个主要色,他会自动生成如-light-3 等其他衍生色

  1. 新建自定义主题文件

// styles/element/index.scss
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      'base': #0906ff,
    ),
    // 其他同理
  )
);
// styles/element/dark.scss
@forward 'element-plus/theme-chalk/src/dark/var.scss' with (
  $colors: (
    'primary': (
      'base': #5b96ff,
    ),
  )
);
// 注意这里要引入dark的样式表
@use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;
  1. 修改vite配置

这里官网的例子中只在components中加了{ importStyle: 'sass' }AutoImport 没加,导致我之前配置一直没生效

// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
    }),
    Components({
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
    }),
  ],
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "@/styles/element/index.scss" as *;@use "@/styles/element/dark.scss" as dark;`,
      },
    },
  },
})

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Element Plus提供了一键换肤的功能,可以通过自定义主题色来改变项目的外观。在Vue3中使用Element Plus进行换肤的过程可以通过修改代码文件来实现。 首先,在layout/index.vue文件中,可以看到通过监听主题的变化来加载对应的主题样式。通过设置document.documentElement的style属性和body元素的class属性来改变页面的主题样式。 其次,在layout/header.vue文件中,可以看到通过el-dropdown和el-dropdown-menu实现了一个下拉菜单,用于选择不同的主题。每个主题都对应着一个颜色和一个标签,在点击菜单项时可以触发handleCommandTheme方法来切换主题。 通过修改这些代码文件中的相关部分,你可以自定义Element Plus的主题色,并实现一键换肤的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3+element-plus自定义主题色,一键换肤](https://blog.csdn.net/wuufeii/article/details/120038295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue3 + element-plus 实现一键换肤](https://blog.csdn.net/maoeye283301717/article/details/128149978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值