深色背景下文字安全色应优先调高HSL亮度L至88%~92%,推荐起始值HSL(0,0%,90%);避免L=100%纯白及高饱和色,依背景主色微调色相H避开补色冲突,并用工具验证对比度≥4.5:1。

深色背景上用安全文字颜色,关键不是“随便挑个亮色”,而是让文字在各种深色背景下都清晰可读。HSL 是比 HEX 或 RGB 更直观的工具——它让你直接控制色相(H)、饱和度(S)和亮度(L),而亮度(L)正是影响对比度的核心变量。
优先调高 L(亮度)值,但别超 92%
文字要够亮才能从深色背景中跳出来,但纯白(L=100%)在 OLED 屏或暗环境里容易刺眼、发虚,也削弱层次感。实测下来,L 在 88%~92% 区间最稳妥:既满足 WCAG AA/AAA 对比度要求(深灰背景如 #121212 上,白字对比度约 16:1;#2D2D2D 上仍超 9:1),又保留视觉舒适度。
- 推荐起始值:HSL(0, 0%, 90%) —— 即柔和的浅灰白,不冷不暖
- 想加一点温度?微调 H:HSL(30, 8%, 90%) 是带暖意的米白,比纯白更耐看
- 避免 L=100% 的 #FFFFFF,尤其配深蓝/深紫背景时易产生光晕感
慎用高 S(饱和度),除非你明确需要强调色
高饱和颜色(S > 30%)在深背景上虽抢眼,但小字号文字或长段落会引发视觉疲劳,还可能因屏幕色准偏差导致可读性下降。普通正文文字建议保持低饱和甚至无彩(S=0%)。
- 标题或按钮可用适度饱和色:HSL(200, 25%, 88%) —— 一个沉稳的浅天蓝,对比足、不扎眼
- 链接文字若用蓝色,别选 HSL(240, 100%, 50%) 这类高艳蓝,换成 HSL(220, 40%, 85%) 更安全
- 红色警告文字?避开 HSL(0, 100%, 50%),改用 HSL(7, 60%, 82%) —— 暖橙红,亮度高、饱和克制、辨识度强
根据背景主色微调 H(色相),避免补色冲突
深色背景本身有倾向性:偏蓝的 #1E1E2E、偏紫的 #240039、偏绿的 #1A2B22……如果文字色相刚好是背景的补色(如蓝背配橙字),可能因同时对比效应导致边缘颤动或模糊。简单做法:让文字 H 偏离背景主 H 约 60°~120°,而非正对补色(±180°)。
立即学习“前端免费学习笔记(深入)”;
- 背景是 #1E1E2E(近似 HSL(250, 10%, 15%))→ 文字选 HSL(180, 0%, 90%)(青灰白),比 HSL(70, 0%, 90%)(黄灰白)更稳
- 背景偏棕(HSL(30, 20%, 12%))→ 避开 H≈210 的蓝,选 HSL(120, 0%, 90%)(绿灰白)或直接 HSL(0, 0%, 90%)
- 不确定背景 H?用浏览器开发者工具取色 → 右键「检查」→ 计算器图标 → 输入 HEX 自动转 HSL
必须验证对比度,别只信眼睛
人眼对亮度敏感,但对色相/饱和度差异判断常有误,尤其在不同设备上。每次定稿前,用工具实测文字与背景的对比度比值:
- 推荐在线工具:WebAIM Contrast Checker 或 Chrome 插件 “Color Contrast Analyzer”
- 目标值:正文 ≥ 4.5:1(AA),理想 ≥ 7:1(AAA);大号文字(24px+ 或 19px 加粗)可放宽至 3:1
- 记得测试最暗场景:比如背景是 #121212(Material You 深色默认),文字 HSL(0, 0%, 90%) 实测对比度为 15.8:1,完全过关
基本上就这些。用 HSL 控制亮度为主轴,饱和度做减法,色相作微调,再加一步机器验证——深色模式下的文字安全色,不复杂但容易忽略。










