CSS 颜色变量怎么用 - 主题与深色模式实践

539 字
3 分钟
CSS 颜色变量怎么用 - 主题与深色模式实践

🌟 为什么用颜色变量#

把颜色写死在每个样式里,改主题时要全局搜索替换,还容易漏。CSS 变量(自定义属性) 把颜色集中管理,一处修改、全局生效,深色模式切换也变得简单。星点设计辅助可导出变量。


🧱 基本用法#

:root {
--color-primary: #409eff;
--color-text: #1f2937;
--color-bg: #ffffff;
--color-border: #e5e7eb;
}
.button {
background: var(--color-primary);
color: var(--color-bg);
}
  • 在 :root 定义,全局可用;
  • 用 var(--name) 引用;
  • 可提供回退值:var(--color-primary, #409eff)。

🌙 深色模式#

用变量覆盖即可实现主题切换:

:root {
--color-bg: #ffffff;
--color-text: #1f2937;
}
html.dark {
--color-bg: #0f172a;
--color-text: #e2e8f0;
}

组件里只引用 var(--color-bg),切换 html.dark 类就整体换肤,无需改组件样式。

配合系统偏好:

@media (prefers-color-scheme: dark) {
:root { --color-bg: #0f172a; }
}

🏷 命名建议(Design Token)#

层级示例
原始色--blue-500
语义色--color-primary、--color-danger
组件色--button-bg、--card-border

推荐语义命名:组件引用语义变量,换品牌色时只改语义层。


🎨 深色模式配色要点#

  • 背景用深灰而非纯黑;
  • 文字用浅灰而非纯白;
  • 主色降低亮度/饱和度;
  • 保证对比度 ≥ 4.5:1(对比度检测)。

💡 从工具导出变量#

在设计辅助里选好主色与语义色,可直接导出 :root { --color-*: ... },复制进项目即可。


🔧 常见问题#

CSS 变量兼容性如何? 现代浏览器全部支持,无需前缀。
变量能参与计算吗? 可以,配合 `calc()` 使用;但颜色值本身不能直接做算术,需用 `color-mix()` 等。
和预处理器变量有什么区别? Sass 变量在编译期替换,CSS 变量在运行时生效,可动态切换(如深色模式)。

💬 总结#

CSS 颜色变量让主题管理从”散落各处”变成”集中可控”。定义语义变量、用 html.dark 覆盖、组件只引用变量,深色模式与换肤都很轻松。变量值可用设计辅助一键导出。

立即体验:访问 设计辅助

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

最后更新于 2026-09-13,距今已过 32 天

部分内容可能已过时

随机文章 随机推荐
公告
🎉 已升级 2.0 版本,欢迎使用。
分类
标签
站点统计
文章
197
分类
24
标签
747
总字数
334,099
运行时长
0 天
最后活动
0 天前

目录