Skip to content
文章目录

chroma-js进行颜色操作

安装

shell
pnpm add chroma-js
pnpm add @types/chroma-js -D

chroma-js 官网

重要说明

这个包还是比较大的,实际生产过程中,建议直接生成几套主题变量,在这几套主题变量中进行切换,从而达到主题切换的效果,而不是像现在这样完全的动态切换

颜色混入

在一种颜色中混入另一种颜色,并设置混入色的占比

ts
import chroma from 'chroma-js'
// 基础颜色
const baseColor = 'blue'
// 混入的颜色
const mixColor = 'white'
// 混入颜色占比
const mixColorPercent = 0.25
// 色彩模式(rgb:适用于显示器,如果不是用于显示器,请调整色彩模式)
const colorMode = 'rgb'
// 进行颜色混合
const mixColor = chroma.mix(baseColor, mixColor, mixColorPercent, colorMode)
// 获取颜色的16进制值
console.log(mixColor.hex())

示例

关于如何实际实现主题切换,请见这篇文章 《深色模式与多主题》

仿照 element-plus 方式生成亮色主题色

INFO

element-plus 的暗色主题,是写死在element-plus/theme-chalk/dark/css-vars.css文件中的,不知道对应的 sass 生成方式,因此无法仿照

参考文章

JavaScript 颜色处理库 Chroma.js 应用

Element Plus 所有主题变量

Ant Design Vue 所有主题变量

Ant Design Vue: colorPalette.less

Ant Design Vue: bezierEasing.less