<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.
Der <color-interpolation-method> CSS Datentyp repräsentiert den verwendeten Farbraum zur Interpolation zwischen <color>-Werten. Er kann verwendet werden, um den Standard-Interpolationsfarbraum für farbbezogene funktionale Notationen wie color-mix() und linear-gradient() zu überschreiben.
Wenn <color>-Werte interpoliert werden, ist der Standard-Interpolationsfarbraum Oklab.
Syntax
Das <color-interpolation-method> gibt an, ob die Interpolation einen rechteckigen Farbraum oder einen Polfarbraum mit einer optionalen Farbton-Interpolationsmethode verwenden soll:
in <rectangular-color-space> // or in <polar-color-space>[ <hue-interpolation method>]
Werte
<rectangular-color-space>-
Eins der Schlüsselwörter
srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,lab,oklab,xyz,xyz-d50oderxyz-d65. <polar-color-space>-
Eins der Schlüsselwörter
hsl,hwb,lchoderoklch. <hue-interpolation-method>Optional-
Der Algorithmus zur Farbton-Interpolation. Standardmäßig
shorter hue. <custom-color-space>-
Ein
<dashed-ident>, der auf ein benutzerdefiniertes @color profile verweist.
Formale Syntax
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
Beispiele
>Vergleich von Interpolationsfarbräumen mit Gradienten
Das folgende Beispiel zeigt die Wirkung der Verwendung verschiedener Interpolationsfarbräume für linear-gradient().
HTML
<div>sRGB:</div>
<div class="gradient srgb"></div>
<div>Oklab:</div>
<div class="gradient oklab"></div>
<div>Oklch (with <code>longer hue</code>):</div>
<div class="gradient oklch-longer"></div>
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);
}
Ergebnis
Farbinterpolation in wiederholenden Gradienten
Das folgende Beispiel zeigt, wie ein Farbraum bei der Interpolation von Farben in wiederholenden Gradienten spezifiziert wird. Drei Boxen zeigen unterschiedliche Arten von wiederholenden Gradienten mit den Funktionen repeating-conic-gradient(), repeating-linear-gradient() und repeating-radial-gradient(). Die erste Box verwendet den Lab-Farbraum zur Interpolation zwischen zwei Farbwerten. Die zweite und dritte Box verwenden OkLCh und geben zusätzlich eine <hue-interpolation-method> an, um festzulegen, wie zwischen Farbtonwerten interpoliert werden soll.
HTML
<div class="gradient conic">conic</div>
<div class="gradient linear">linear</div>
<div class="gradient radial">radial</div>
CSS
Wir haben die gleichen zwei Farben in jedem Gradienten verwendet, um die unterschiedlichen Effekte von <hue-interpolation-method> und Farbraum auf die Farbinterpolation in Gradienten zu demonstrieren.
.conic {
background-image: repeating-conic-gradient(
in lab,
burlywood,
blueviolet 120deg
);
}
.linear {
background-image: repeating-linear-gradient(
in oklch,
burlywood,
blueviolet 75px
);
}
.radial {
background-image: repeating-radial-gradient(
in oklch longer hue,
blueviolet 50px,
burlywood 100px
);
}
Ergebnis
Der Vergleich der ersten und zweiten Box zeigt den Unterschied der Interpolation zwischen zwei Farben in verschiedenen Farbräumen. Der Vergleich der zweiten und dritten Box zeigt den Unterschied zwischen <hue-interpolation-method>s, wobei der lineare Gradient die kürzere Methode (Standard) und der radiale Gradient die längere Methode verwendet.
Spezifikationen
| Specification |
|---|
| CSS Color Module Level 4> # interpolation-space> |
Browser-Kompatibilität
Loading…