<color-interpolation-method> CSS-Typ
Der <color-interpolation-method> CSS Datentyp repräsentiert den Farbraum, der zur Interpolation zwischen <color>-Werten verwendet wird. Er kann verwendet werden, um den Standard-Interpolationsfarbraum für farbbezogene funktionale Notationen wie color-mix() und linear-gradient() zu überschreiben.
Bei der Interpolation von <color>-Werten ist der Standard-Interpolationsfarbraum Oklab.
Syntax
Der <color-interpolation-method> gibt an, ob die Interpolation einen rechteckigen Farbraum oder einen polaren Farbraum mit einer optionalen Farbton-Interpolationsmethode verwenden soll:
in <rectangular-color-space> // or in <polar-color-space>[ <hue-interpolation method>]
Werte
<rectangular-color-space>-
Eines der Schlüsselwörter
srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,lab,oklab,xyz,xyz-d50oderxyz-d65. <polar-color-space>-
Eines der Schlüsselwörter
hsl,hwb,lchoderoklch. <hue-interpolation-method>Optional-
Der Algorithmus für die Farbton-Interpolation. Standardmäßig wird
shorter hueverwendet. <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 mithilfe von Verläufen
Das folgende Beispiel zeigt die Wirkung der Verwendung unterschiedlicher 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 Verläufen
Das folgende Beispiel zeigt, wie man einen Farbraum spezifiziert, wenn Farben in wiederholenden Verläufen interpoliert werden.
Drei Boxen zeigen verschiedene Arten von wiederholenden Verläufen mit den Funktionen repeating-conic-gradient(), repeating-linear-gradient() und repeating-radial-gradient().
Die erste Box verwendet den Lab-Farbraum, um zwischen zwei Farbwerten zu interpolieren.
Die zweite und dritte Box verwenden OkLCh und geben zusätzlich eine <hue-interpolation-method> an, um zu spezifizieren, wie zwischen den 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 in jedem Verlauf dieselben zwei Farben verwendet, um die unterschiedlichen Effekte von <hue-interpolation-method> und Farbraum auf die Farbinterpolation in Verläufen 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 der zweiten Box zeigt den Unterschied der Interpolation zwischen zwei Farben in verschiedenen Farbräumen.
Der Vergleich der zweiten und der dritten Box zeigt den Unterschied zwischen <hue-interpolation-method>s, wobei der lineare Verlauf die kürzere Methode (Standard) verwendet und der radiale Verlauf die längere Methode verwendet.
Spezifikationen
| Spezifikation |
|---|
| CSS Color Module Level 4 # interpolation-space |