色导网中文配色工作台与色彩资料馆

色导网渐变生成器:两种插值方式的实测对照

浏览器默认的线性渐变在 sRGB 里走直线,于是跨色相的渐变常常在中段发灰。把同一对端点换成 OKLCH 插值,中间色会明显不同。

默认端点的 sRGB 插值取样

两端颜色

sRGB 中间色
#848142
OKLCH 中间色
#00947B
两者色差 ΔE*ab
43.7

并排对照

sRGB 直线插值:浏览器默认的做法

OKLCH 插值:亮度与色相分开过渡

为什么中段会发灰

sRGB 的三个通道各自线性过渡时,彩度会在中途掉下去。从深蓝到亮黄就是典型:两端都很饱和,中间经过一片低彩度的灰绿。OKLCH 把亮度、彩度、色相拆开插值,彩度不会被顺带压掉,色相沿着色相角走最短路径。

同一对端点颜色在 sRGB 与 OKLCH 两种插值下的渐变条sRGB 直线插值OKLCH 插值端点:#1F3A5F → #E8C725
上下两条是同一对端点。下面那条在中段保住了彩度,过渡也更均匀。

CSS 本身已经支持 linear-gradient(in oklch, …),但要兼容旧浏览器时,最稳的办法是像上面输出的 CSS 那样把若干中间色算好写死——这也是本工具默认给出的形式。

什么时候不该用 OKLCH 插值