vue3.2 vite typescript element-plus自定义主题颜色,全局修改组件样式

在Vue 3.2和Vite项目中使用Element Plus并自定义主题颜色,你需要按照以下步骤操作:

  1. 安装Element Plus:



npm install element-plus --save
  1. 在项目中创建或编辑vite.config.ts文件,配置Element Plus主题:



import { defineConfig } 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 { generateElementPlusTheme } from './element-plus/theme';
 
// 自定义主题色
const theme = generateElementPlusTheme({
  primary: '#你的主色',
  success: '#你的成功色',
  warning: '#你的警告色',
  danger: '#你的危险色',
  info: '#你的信息色',
});
 
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `${theme}`,
      },
    },
  },
  resolve: {
    alias: {
      '@': resolve(__dirname, './src'),
    },
  },
});
  1. 创建element-plus/theme文件夹和index.ts文件,用于生成Element Plus主题SCSS:



import { generateSCSS } from 'element-plus/theme-chalk/src/index';
 
export function generateElementPlusTheme(colors) {
  const scssVariables = Object.keys(colors)
    .map((key) => `${key}: ${colors[key]};`)
    .join('\n');
 
  return `$element-plus-prefix: "ep-";
$--colors: (
  ${scssVariables}
);
 
@import 'element-plus/theme-chalk/src/index.scss';
`;
}
  1. 在你的Vue组件中使用Element Plus组件,它们将采用你自定义的主题色。

请注意,你需要确保element-plus/theme/index.ts文件中的SCSS变量与Element Plus源SCSS变量兼容。如果Element Plus有新的颜色变量,你需要更新generateElementPlusTheme函数以包含它们。

以上步骤将允许你在Vue 3.2和Vite项目中使用自定义主题色的Element Plus组件。

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日