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

ElementPlus自定义更换主题色

通过 CSS 变量设置主题色,几乎所有浏览器都支持CSS变量。可以动态地改变组件内的个别变量,以便更好地自定义组件样式,而不需要修改 SCSS 文件重新编译一次。

1.首先增加工具类 theme.js

// 处理主题样式
export function handleThemeStyle(theme) {document.documentElement.style.setProperty('--el-color-primary', theme)for (let i = 1; i <= 9; i++) {document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, `${getLightColor(theme, i / 10)}`)}for (let i = 1; i <= 9; i++) {document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, `${getDarkColor(theme, i / 10)}`)}
}// hex颜色转rgb颜色
export function hexToRgb(str) {str = str.replace('#', '')let hexs = str.match(/../g)for (let i = 0; i < 3; i++) {hexs[i] = parseInt(hexs[i], 16)}return hexs
}// rgb颜色转Hex颜色
export function rgbToHex(r, g, b) {let hexs = [r.toString(16), g.toString(16), b.toString(16)]for (let i = 0; i < 3; i++) {if (hexs[i].length == 1) {hexs[i] = `0${hexs[i]}`}}return `#${hexs.join('')}`
}// 变浅颜色值
export function getLightColor(color, level) {let rgb = hexToRgb(color)for (let i = 0; i < 3; i++) {rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i])}return rgbToHex(rgb[0], rgb[1], rgb[2])
}// 变深颜色值
export function getDarkColor(color, level) {let rgb = hexToRgb(color)for (let i = 0; i < 3; i++) {rgb[i] = Math.floor(rgb[i] * (1 - level))}return rgbToHex(rgb[0], rgb[1], rgb[2])
}

2.在App.vue中初始化加载主题样式

<script setup>
import {onMounted, nextTick} from 'vue'
import { handleThemeStyle } from '@/utils/theme'onMounted(() => {nextTick(() => {// 初始化主题样式handleThemeStyle('#409EFF')})
})
</script>


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

相关文章:

  • Excel图片批量插入单元格排版处理插件【图片大师】
  • 出海公司如何快速搭建海外团队指南
  • MongoDB与Pymongo深度实践:从基础概念到无限级评论应用示例
  • 项目实战应用Redis分布式锁
  • 828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署CodeX Docs文档工具
  • python 实现euler modified变形欧拉法算法
  • 学懂C++(六十):C++ 11、C++ 14、C++ 17、C++ 20新特性大总结(万字详解大全)
  • ArcGIS Pro SDK (十四)地图探索 3 弹出窗口
  • 基于Spark 的零售交易数据挖掘分析与可视化
  • 亚马逊测评自建团队与工作室的五大优势亮点,打造高权重评价系统
  • 腾讯发布大模型安全与伦理报告:以负责任AI引领大模型创新
  • 从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片
  • YOLOv5改进:CA注意力机制【注意力系列篇】(附详细的修改步骤,以及代码)
  • 解决Linux服务器上下载pytorch速度过慢的问题
  • UE5 性能分析 UnrealInsights
  • 【C++ 高频面试题】new、delete 与 malloc、free的区别
  • 【上行传输流程】
  • 中国科技巨头在AI领域的竞争态势分析
  • 区块链先驱孙宇晨:引领价值传播,激发行业创新活力
  • SpringSecurity原理解析(六):SecurityConfigurer 解析