首页 > 其他分享 >Vue3基于elementPlus定制样式覆盖

Vue3基于elementPlus定制样式覆盖

时间:2023-12-09 15:45:32浏览次数:53  
标签:scss elementPlus 样式 base Vue3 import 定制 vite

scss 变量替换方案

步骤:

  • 安装scss pnpm add sass -D
  • 准备定制样式文件 styles/element/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,
    ),
  )
)
  • 对ElementPlus样式进行覆盖 通知Element采用scss语言 -> 导入定制scss文件覆盖
    自动导入配置
    这里自动导入需要深入到elementPlus的组件中,按照官方的配置文档来
  1. 自动导入定制化样式文件进行样式覆盖
  2. 按需定制主题配置 (需要安装 unplugin-element-plus)

vite.config.js文件中:

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({
      resolvers: [ElementPlusResolver()],
    }),
    // 按需定制主题配置
    ElementPlus({
      useSource: true,
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }
})

标签:scss,elementPlus,样式,base,Vue3,import,定制,vite
From: https://www.cnblogs.com/zgf123/p/17891048.html

相关文章

  • C# + Vue3采用SM4
    引用 类库:usingOrg.BouncyCastle.Asn1;usingOrg.BouncyCastle.Asn1.GM;usingOrg.BouncyCastle.Asn1.X9;usingOrg.BouncyCastle.Crypto;usingOrg.BouncyCastle.Crypto.Digests;usingOrg.BouncyCastle.Crypto.Engines;usingOrg.BouncyCastle.Crypto.Generators;u......
  • 谈谈企业级 Web 应用的前端消息展示的定制化问题
    笔者在社区上已经发布了一些技术文章,记录了自己工作于企业级前端应用几年以来积累的一些项目经验和教训。之前的文章关于企业级Web应用搜索引擎优化SearchEngineOptimization的一些工作经验分享已经提到,所谓企业级前端应用,是指为大型企业或组织开发的前端应用,这些应用具有......
  • 三防平板|手持终端PDA|8寸/10寸工业三防平板电脑定制方案
    随着科技的不断发展,三防平板在各行各业的多种应用场景中扮演着重要角色。采用IP67三防设计,这些平板通过国际标准如国标和美标等的多项测试,实现了防水、防摔、防尘、防撞、防震、防跌落以及防盐雾等多重防护功能。它们广泛适用于国防、公共安全、交通运输、工业制造、汽车产业、......
  • app定制开发的关键优势有哪些?这些优势值得关注
    在移动应用行业竞争激烈的今天,越来越多的企业和个人选择app定制开发以满足特定需求。相较于使用通用应用的方式,app定制开发具有独特的优点,本文将深入探讨其中一些关键优势。1.高度定制化APP定制开发的最大优势之一是其高度定制化的能力。通用应用通常是为广泛用户群体设计的,功能和......
  • Vue3 diff算法详解
    Diff更新算法由于目前Vue3对于性能的优化做了很多的处理,所以其在更新时并不会对所有的节点都进行diff更新。目前会进行diff更新的有以下两种情况:v-for容器节点自写的render()函数还有一种特殊情况会进行无diff的按序更新,这种更新是全替换模式,非常耗时:无key值的v-for语句,......
  • 在vue3中使用openlayers3实现track轨迹动画
    网上太多资料代码,抄来抄去,而且版本也是OL2的,部分API已经弃用基础知识不多说,直接讲重点三个关键变量//记录开始动画的时间conststartTime=ref(0);//轨迹分割的颗粒度,数值越小分的越细constparticle=20;//轨迹动画的速度,数值越大位移越快constspeed=10;根......
  • vue2、vue3适配大屏。分辨率变化,样式不变
    一、vue3适配大屏的,创建一个叫useDraw.jsexportdefaultfunction(){constscale={width:'1',height:'1',}constbaseWidth=1920constbaseHeight=1080constbaseProportion=parseFloat((baseWidth/baseHeight).toFixed(5......
  • vue3组件通信
    子传父$emit在vue框架中事件分为两种:一种是原生的DOM事件,另外一种自定义事件。原生DOM事件可以让用户与网页进行交互,比如click、change、mouseenter、mouseleave...自定义事件可以实现子组件给父组件传递数据。vue2中的@click绑定的是自定义事件,可以通过.native修饰符变为原生DOM......
  • scrapy框架之自定制命令
    自定制命令1.在spiders同级创建任意目录,如:commands2.在其中创建crawlall.py文件(此处文件名就是自定义的命令)#crawlall.py文件1fromscrapy.commandsimportScrapyCommand2fromscrapy.utils.projectimportget_project_settings345classCommand(Scra......
  • CSDN转到博客园,定制博客园皮肤,主题美化
    1引言从CSDN转到博客园有段时间了,最近重新捣鼓一下博客的皮肤。如果借鉴我的代码,真改一下头像和签名,我无语了。2定制博客2.1创建博客主要步骤为,申请博客-申请js-寻找博客园主题美化。以下是我的博客定制化主要参考的文章。https://www.yuque.com/awescnb/userhttps......