调色枢 设计指南 OKLCH 是什么?现代 CSS 颜色格式详解

CSS 与开发

OKLCH 是什么?现代 CSS 颜色格式详解

OKLCH 是现代设计系统正在迁移到的颜色格式。它看起来像 HSL,却修好了 HSL 最大的毛病:数值相等不代表看起来一样。下面讲它在实践中意味着什么。

⏱ 7 分钟阅读 · 设计指南
核心要点
  • OKLCH = 亮度、彩度、色相——像 HSL,但感知均匀
  • OKLCH 里相等的亮度步长看起来间距均匀;HSL 里则不然
  • 它能描述 HEX/RGB 表达不了的广色域(P3)颜色
  • 所有现代浏览器都支持,通过 CSS 的 oklch() 函数使用

OKLCH 代表什么

OKLCH 有三个分量:L(亮度,0–100%)、C(彩度——大致是饱和度/鲜艳度)、H(色相,0–360°)。听起来像把 HSL 重新排序,其实差不多——区别在底层数学。OKLCH 建立在 OKLab 色彩空间上,而 OKLab 是为匹配人眼视觉而设计的。

关键:感知均匀

在 HSL 里,亮度 50% 的黄看起来比亮度 50% 的蓝亮得多——数值相等,亮度却差很远。这会毁掉色阶:HSL 色阶的跳变不均匀。而 OKLCH 的亮度按"感知亮度"校准过,所以相等的步长看起来就相等。这正是设计系统用它来生成干净均匀的 50–950 色阶的原因。

L80
L65
L50
L35

更广色域(P3)

HEX 和 rgb() 局限于 sRGB 色域。OKLCH 能表达更广色域(如 Display P3)里的颜色——也就是现代手机和笔记本能显示的更鲜艳的颜色。在旧屏幕上浏览器会自动回退到最接近的 sRGB 颜色,所以放心用。

什么时候用

当你要生成色阶、构建设计系统色板,或在调整品牌色时想要可预测的亮度,就用 OKLCH。对于一次性的背景色,HEX 依然够用。语法:oklch(62% 0.19 256)——亮度、彩度、色相。

常见问题

CSS 里的 OKLCH 是什么?

OKLCH 是一个 CSS 颜色函数——oklch(亮度 彩度 色相)——建立在感知均匀的 OKLab 色彩空间上。它让你指定颜色时,相等的数值步长看起来间距也相等。

OKLCH 和 HSL 有什么区别?

两者都用亮度、类似饱和度的值和色相。但 HSL 的亮度不匹配感知亮度,所以色阶不均匀。OKLCH 感知均匀,还能表达更广的 P3 颜色。

浏览器支持 OKLCH 吗?

支持——所有当前主流浏览器都支持 oklch() 函数,且在旧屏幕上会优雅回退到最接近的 sRGB 颜色,可放心用于生产环境。

生成感知均匀的色阶

用 OKLCH 生成视觉上均匀过渡的色阶

打开 OKLCH 色阶 →