lch()是目前最可靠只调亮度不偏色的方法,其l值范围0–100(非百分比),c和h保持不变即可确保色调稳定;需注意语法规范、背景l值测算及color-mix(in lch)动态适配。

用 lch() 直接调 L 值最稳,色相 H 和色度 C 不动就行
想只调亮度不偏色,lch() 是目前最可靠的选择。它把颜色拆成三个独立轴:L(亮度,0–100)、C(色度,饱和度感)、H(色相,角度值)。只要不动 C 和 H,只改 L,颜色就不会“跑色调”。比如 lch(60 40 210) 提亮到 lch(75 40 210),蓝调还在,只是更亮了。
lch() 的 L 值不是百分比,别写成 lch(75% 40 210)
这是高频出错点:lch() 的 L 是 0–100 的数值,不是百分比单位。写成 lch(75% 40 210) 浏览器直接忽略,回退到继承色或初始值。正确写法是 lch(75 40 210)。Safari 17.4 对空格和单位更敏感,必须严格匹配语法——参数间仅一个空格,无逗号,无多余空白。
深色背景上文字提亮,按 “背景 L + 55” 定目标 L
盲目设 L: 90 或 L: 95 容易泛灰、OLED 辉光。真实有效做法是先测背景的 L 值(用 ColorMe 或 DevTools 颜色面板),再加 55 得出文字最低安全 L:
- 背景
#2d2d2d→ 实测L ≈ 20→ 文字L ≥ 75 - 背景
#1e1e1e→L ≈ 15→ 文字L ≥ 70 - 目标
L确定后,保持原C和H,只替换L即可
要动态适配不同背景?用 color-mix(in lch),别用 in srgb
多个深色主题(如 #0f0f0f、#2d2d2d)下硬写多套 lch() 易漏配。此时用 color-mix(in lch, white 85%, var(--bg) 15%) 更可靠:
- 必须写
in lch:在暗区混合时,in srgb会突然偏粉或泛青,in lch保持中性灰阶 - 混入背景比例控制在 5%–15%:太高削弱文字主体,太低起不到抑制 OLED 辉光作用
- 务必加降级:
color: #e0e0e0; color: color-mix(in lch, white 85%, var(--bg) 15%)
真正难的是 LCH 值的初始获取和跨浏览器空格校验——多数人卡在这两步,而不是函数本身。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











