最直接的解决方式是调整HSL中的明度(L)和饱和度(S),而非更换色号;需先用工具验证对比度是否低于WCAG 2.1标准(普通文本≥4.5:1),再通过调亮文字L值或降低背景S/L值提升可读性,避免大幅改动H值以保品牌一致性。
文字颜色与背景对比度不足,最直接的解决方式不是换色号,而是调整 HSL 中的 明度(L) 和 饱和度(S),让颜色在保持原有色相(H)的基础上更易读、更合规。
WCAG 2.1 要求普通文本最小对比度为 4.5:1(大号字可放宽至 3:1)。别凭感觉判断,用工具验证:
HSL 比 HEX 或 RGB 更直观控制明暗。例如原文字是 hsl(200, 60%, 40%)(偏暗蓝),背景是 hsl(200, 10%, 95%)(浅灰蓝):
高饱和颜色在浅底上会“发虚”或产生视觉震颤(如亮粉字配白底),反而降低可读性:
适合需要响应式适配或主题切换的场景:
:root {
--text-h: 210;
--text-s: 12%;
--text-l-base: 32%;
--text-l-dark: 22%;
--text-l-light: 42%;
}
.text {
color: hsl(
var(--text-h),
var(--text-s),
clamp(var(--text-l-dark), (100vh - 600
px) / 10 + var(--text-l-base), var(--text-l-light))
);
}
这样文字明度能随视口高度或主题变量平滑变化,兼顾可访问性与设计一致性。