<color-interpolation-method>

Baseline 2023

Newly available

Since May 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

CSS 数据类型 <color-interpolation-method> 表示用于在 <color> 值之间插值的颜色空间。此数据类型可用于覆盖例如 color-mix()linear-gradient() 等与颜色相关的函数记号所用的默认插值颜色空间。

在对 <color> 值插值时,插值颜色空间默认为 Oklab。

语法

<color-interpolation-method> 指定了插值应使用直角坐标颜色空间还是带可选色相插值方法的极坐标颜色空间:

in <rectangular-color-space>
// 或者
in <polar-color-space>[ <hue-interpolation method>]

取值

<rectangular-color-space>

关键字 srgbsrgb-linearlaboklabxyzxyz-d50xyz-d65 之一。

<polar-color-space>

关键字 hslhwblchoklch

<hue-interpolation-method> 可选

用于色相插值的算法。默认为 shorter hue

形式语法

<color-interpolation-method> = 
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]

<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
xyz |
xyz-d50 |
xyz-d65

<polar-color-space> =
hsl |
hwb |
lch |
oklch

<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue

示例

用渐变比较各种插值颜色空间

下列示例展示了为 linear-gradient() 使用不同的插值颜色空间的效果。

HTML

html
<div>sRGB:</div>
<div class="gradient srgb"></div>
<div>Oklab:</div>
<div class="gradient oklab"></div>
<div>Oklch(带 <code>longer hue</code>):</div>
<div class="gradient oklch-longer"></div>

CSS

css
.gradient {
  height: 50px;
  width: 100%;
}
.srgb {
  background-image: linear-gradient(in srgb to right, blue, red);
}
.oklab {
  background-image: linear-gradient(in oklab to right, blue, red);
}
.oklch-longer {
  background-image: linear-gradient(in oklch longer hue to right, blue, red);
}

结果

规范

Specification
CSS Color Module Level 4
# interpolation-space

浏览器兼容性

BCD tables only load in the browser

参见