CSS调色板核心是结构化色彩系统:先定义3–5个基础色,再用HSL+calc()生成色阶,命名遵循语义前缀+色彩名+强度数字,分基础/语义/场景三层管理变量,并借助工具实现设计与开发一致。
用 CSS 生成调色板和变量体系,核心不是靠手写一堆 --color-primary,而是建立可维护、可扩展、语义清晰的色彩系统。关键在于结构化定义 + 工具辅助 + 与设计系统对齐。
别一上来就写 20 个变量。先确定 3–5 个基础色(如主蓝、成功绿、警告
橙、错误红、中性灰),再按明度/饱和度梯度生成色阶(如 blue-50 到 blue-900)。命名统一用语义前缀 + 色彩名 + 数字强度,例如:
--color-primary-50(最浅,用于背景)--color-primary-500(标准主色,按钮默认态)--color-primary-700(较深,悬停或强调文字)减少硬编码色值,利用 HSL 模式提升可维护性。例如定义基础 HSL 值,再通过 calc() 调整亮度(L)生成色阶:
:root {
--hue-primary: 210;
--sat-primary: 85%;
--lum-primary-base: 55%;
--color-primary-500: hsl(var(--hue-primary), var(--sat-primary), var(--lum-primary-base));
--color-primary-100: hsl(var(--hue-primary), var(--sat-primary), calc(var(--lum-primary-base) + 30%));
--color-primary-700: hsl(var(--hue-primary), var(--sat-primary), calc(var(--lum-primary-base) - 15%));
}
这样换主题色时,只需改 --hue-primary 和 --sat-primary,整套色阶自动更新。
推荐几个轻量实用工具:
theme.extend.colors 配置,也可手动提取为纯 CSS 变量不要直接定义 --color-button-primary 这类强耦合变量。应分三层管理:
--color-blue-500):只管色值本身--color-primary, --color-success):映射到具体基础色,供组件使用--color-bg-surface, --color-text-emphasis):定义 UI 角色,支持暗色模式切换这样换主题或适配深色模式时,只需重映射语义层和场景层,基础色层保持稳定。