<color>
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Der <color>
CSS Datentyp repräsentiert eine Farbe. Ein <color>
kann auch einen Alpha-Kanal und einen Transparenzwert enthalten, der angibt, wie die Farbe mit ihrem Hintergrund komponiert werden soll.
Hinweis:
Obwohl <color>
Werte präzise definiert sind, kann ihr tatsächliches Aussehen (manchmal erheblich) von Gerät zu Gerät variieren. Dies liegt daran, dass die meisten Geräte nicht kalibriert sind und einige Browser die Farbprofile der Ausgabegeräte nicht unterstützen.
Syntax
/* Named colors */
rebeccapurple
aliceblue
/* RGB Hexadecimal */
#f09
#ff0099
/* RGB (Red, Green, Blue) */
rgb(255 0 153)
rgb(255 0 153 / 80%)
/* HSL (Hue, Saturation, Lightness) */
hsl(150 30% 60%)
hsl(150 30% 60% / 80%)
/* HWB (Hue, Whiteness, Blackness) */
hwb(12 50% 0%)
hwb(194 0% 0% / 0.5)
/* LAB (Lightness, A-axis, B-axis) */
lab(50% 40 59.5)
lab(50% 40 59.5 / 0.5)
/* LCH (Lightness, Chroma, Hue) */
lch(52.2% 72.2 50)
lch(52.2% 72.2 50 / 0.5)
/* Oklab (Lightness, A-axis, B-axis) */
oklab(59% 0.1 0.1)
oklab(59% 0.1 0.1 / 0.5)
/* Oklch (Lightness, Chroma, Hue) */
oklch(60% 0.15 50)
oklch(60% 0.15 50 / 0.5)
/* Relative CSS colors */
/* HSL hue change */
hsl(from red 240deg s l)
/* HWB alpha channel change */
hwb(from green h w b / 0.5)
/* LCH lightness change */
lch(from blue calc(l + 20) c h)
/* light-dark */
light-dark(white, black)
light-dark(rgb(255 255 255), rgb(0 0 0))
Ein <color>
Wert kann auf eine der unten aufgeführten Methoden angegeben werden:
- Durch Schlüsselwörter:
<named-color>
(wieblue
oderpink
),<system-color>
undcurrentcolor
. - Durch hexadezimale Notationen:
<hex-color>
(wie#ff0000
). - Durch
<color-function>
, mit Parametern in einem Farbraum unter Verwendung funktionaler Notationen: - Durch Verwendung der relativen Farbsyntax, um eine neue Farbe basierend auf einer bestehenden Farbe auszugeben. Jede der oben genannten Farb-Funktionen kann eine Ursprungsfarbe enthalten, die vom Schlüsselwort
from
gefolgt und anschließend durch Kanalwertdefinitionen für die neue Ausgabefarbe ergänzt wird. - Durch Mischen von zwei Farben:
color-mix()
. - Durch Angabe von zwei Farben, wobei die erste für helle Farbschemata und die zweite für dunkle Farbschemata verwendet wird:
light-dark()
.
currentcolor
Schlüsselwort
Das Schlüsselwort currentcolor
repräsentiert den Wert der color
Eigenschaft eines Elements. Dies ermöglicht es Ihnen, den color
Wert auf Eigenschaften zu verwenden, die ihn standardmäßig nicht erhalten.
Wenn currentcolor
als Wert der color
Eigenschaft verwendet wird, nimmt es stattdessen seinen Wert von dem geerbten Wert der color
Eigenschaft.
<div style="color: blue; border: 1px dashed currentcolor;">
The color of this text is blue.
<div style="background: currentcolor; height:9px;"></div>
This block is surrounded by a blue border.
</div>
Fehlende Farbkomponenten
Jede Komponente einer beliebigen CSS-Farbfunktions - mit Ausnahme von solchen, die die veraltete komma-separierte Syntax verwenden - kann als das Schlüsselwort none
angegeben werden, um eine fehlende Komponente zu sein.
Das explizite Angeben fehlender Komponenten bei der Farbinterpolation ist nützlich für Fälle, bei denen Sie einige Farbkomponenten, aber nicht andere interpolieren möchten. Für alle anderen Zwecke hat eine fehlende Komponente effektiv einen Nullwert in einer geeigneten Einheit: 0
, 0%
oder 0deg
. Beispielsweise sind die folgenden Farben gleichwertig, wenn sie außerhalb der Interpolation verwendet werden:
/* These are equivalent */
color: oklab(50% none -0.25);
color: oklab(50% 0 -0.25);
/* These are equivalent */
background-color: hsl(none 100% 50%);
background-color: hsl(0deg 100% 50%);
Interpolation
Farbinterpolation findet bei Verläufen, Übergängen und Animationen statt.
Beim Interpolieren von <color>
Werten werden diese zuerst in einen gegebenen Farbraum konvertiert, und dann wird jede Komponente der berechneten Werte linear interpoliert, wobei die Geschwindigkeit der Interpolation durch die Easing-Funktion in Übergängen und Animationen bestimmt wird. Der Standardinterpolationsfarbraum ist Oklab, kann jedoch in einigen farbbezogenen funktionalen Notationen durch <color-interpolation-method>
überschrieben werden.
Interpolation mit fehlenden Komponenten
Interpolieren von Farben im selben Raum
Beim Interpolieren von Farben, die sich genau im Interpolationsfarbraum befinden, werden fehlende Komponenten einer Farbe durch vorhandene Werte derselben Komponenten der anderen Farbe ersetzt. Beispielsweise sind die folgenden zwei Ausdrücke gleichwertig:
color-mix(in oklch, oklch(none 0.2 10), oklch(60% none 30))
color-mix(in oklch, oklch(60% 0.2 10), oklch(60% 0.2 30))
Hinweis: Wenn eine Komponente in beiden Farben fehlt, wird diese Komponente nach der Interpolation fehlen.
Interpolieren von Farben aus verschiedenen Räumen: analoge Komponenten
Wenn eine zu interpolierende Farbe nicht im Interpolationsfarbraum ist, werden ihre fehlenden Komponenten basierend auf den analogen Komponenten derselben Kategorie, wie in der folgenden Tabelle beschrieben, in die konvertierte Farbe übertragen:
Kategorie | Analoge Komponenten |
---|---|
Rot | R , X |
Grün | G , Y |
Blau | B , Z |
Helligkeit | L |
Farbigkeit | C , S |
Farbton | H |
a | a |
b | b |
Zum Beispiel:
X
(0.2
) incolor(xyz 0.2 0.1 0.6)
ist analog zuR
(50%
) inrgb(50% 70% 30%)
.H
(0deg
) inhsl(0deg 100% 80%)
ist analog zuH
(140
) inoklch(80% 0.1 140)
.
Verwenden des Oklch als Interpolationsfarbraum und die beiden Farben unten als Beispiel:
lch(80% 30 none)
color(display-p3 0.7 0.5 none)
Das Vorverarbeitungsverfahren ist:
-
Ersetzen Sie die fehlenden Komponenten in beiden Farben durch einen Nullwert:
csslch(80% 30 0) color(display-p3 0.7 0.5 0)
-
Konvertieren Sie beide Farben in den Interpolationsfarbraum:
cssoklch(83.915% 0.0902 0.28) oklch(63.612% 0.1522 78.748)
-
Wenn irgendeine Komponente der konvertierten Farben analog zu einer fehlenden Komponente in der entsprechenden Originalfarbe ist, setzen Sie sie als eine fehlende Komponente:
cssoklch(83.915% 0.0902 none) oklch(63.612% 0.1522 78.748)
-
Ersetzen Sie jede fehlende Komponente durch dieselbe Komponente der anderen konvertierten Farbe:
cssoklch(83.915% 0.0902 78.748) oklch(63.612% 0.1522 78.748)
Barrierefreiheit
Einige Personen haben Schwierigkeiten, Farben zu unterscheiden. Die WCAG 2.2 Empfehlung empfiehlt dringend, Farbe nicht als einziges Mittel zur Übermittlung einer bestimmten Nachricht, Aktion oder eines Ergebnisses zu verwenden. Weitere Informationen finden Sie unter Farbe und Farbkontrast.
Formale Syntax
<color> =
<color-base> |
currentColor |
<system-color>
<color-base> =
<hex-color> |
<color-function> |
<named-color> |
transparent
<color-function> =
<rgb()> |
<rgba()> |
<hsl()> |
<hsla()> |
<hwb()> |
<lab()> |
<lch()> |
<oklab()> |
<oklch()> |
<color()>
<rgb()> =
<legacy-rgb-syntax> |
<modern-rgb-syntax>
<rgba()> =
<legacy-rgba-syntax> |
<modern-rgba-syntax>
<hsl()> =
<legacy-hsl-syntax> |
<modern-hsl-syntax>
<hsla()> =
<legacy-hsla-syntax> |
<modern-hsla-syntax>
<hwb()> =
hwb( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<lab()> =
lab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<lch()> =
lch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )
<oklab()> =
oklab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<oklch()> =
oklch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )
<color()> =
color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )
<legacy-rgb-syntax> =
rgb( <percentage>#{3} , <alpha-value>? ) |
rgb( <number>#{3} , <alpha-value>? )
<modern-rgb-syntax> =
rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )
<legacy-rgba-syntax> =
rgba( <percentage>#{3} , <alpha-value>? ) |
rgba( <number>#{3} , <alpha-value>? )
<modern-rgba-syntax> =
rgba( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )
<legacy-hsl-syntax> =
hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )
<modern-hsl-syntax> =
hsl( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<legacy-hsla-syntax> =
hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )
<modern-hsla-syntax> =
hsla( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<hue> =
<number> |
<angle>
<alpha-value> =
<number> |
<percentage>
<colorspace-params> =
<custom-params> |
<predefined-rgb-params> |
<predefined-polar-params> |
<predefined-rectangular-params> |
<xyz-params>
<custom-params> =
<dashed-ident> [ <number> | <percentage> | none ]+
<predefined-rgb-params> =
<predefined-rgb> [ <number> | <percentage> | none ]{3}
<predefined-polar-params> =
jzczhz [ <number> | <percentage> | none ]{2} [ <hue> | none ]
<predefined-rectangular-params> =
<predefined-rectangular> [ <number> | <percentage> | none ]{3}
<xyz-params> =
<xyz> [ <number> | <percentage> | none ]{3}
<predefined-rgb> =
srgb |
srgb-linear |
display-p3 |
a98-rgb |
prophoto-rgb |
rec2020 |
rec2100-pq |
rec2100-hlg |
rec2100-linear
<predefined-rectangular> =
jzazbz |
ictcp
<xyz> =
xyz |
xyz-d50 |
xyz-d65
Beispiele
Erkundung von Farbwerten
In diesem Beispiel stellen wir ein <div>
und ein Texteingabefeld bereit. Die Eingabe einer gültigen Farbe in das Eingabefeld führt dazu, dass das <div>
diese Farbe annimmt, sodass Sie unsere Farbwerte testen können.
HTML
<div></div>
<hr />
<label for="color">Enter a valid color value:</label>
<input type="text" id="color" />
Ergebnis
Erzeugen vollständig gesättigter sRGB-Farben
Dieses Beispiel zeigt vollständig gesättigte sRGB-Farben im sRGB-Farbraum.
HTML
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
CSS
div:nth-child(1) {
background-color: hsl(0 100% 50%);
}
div:nth-child(2) {
background-color: hsl(30 100% 50%);
}
div:nth-child(3) {
background-color: hsl(60 100% 50%);
}
div:nth-child(4) {
background-color: hsl(90 100% 50%);
}
div:nth-child(5) {
background-color: hsl(120 100% 50%);
}
div:nth-child(6) {
background-color: hsl(150 100% 50%);
}
div:nth-child(7) {
background-color: hsl(180 100% 50%);
}
div:nth-child(8) {
background-color: hsl(210 100% 50%);
}
div:nth-child(9) {
background-color: hsl(240 100% 50%);
}
div:nth-child(10) {
background-color: hsl(270 100% 50%);
}
div:nth-child(11) {
background-color: hsl(300 100% 50%);
}
div:nth-child(12) {
background-color: hsl(330 100% 50%);
}
Ergebnis
Verschiedene Schattierungen von Rot erstellen
Dieses Beispiel zeigt Rottöne in verschiedenen Schattierungen im sRGB-Farbraum.
HTML
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
CSS
div:nth-child(1) {
background-color: hsl(0 100% 0%);
}
div:nth-child(2) {
background-color: hsl(0 100% 20%);
}
div:nth-child(3) {
background-color: hsl(0 100% 40%);
}
div:nth-child(4) {
background-color: hsl(0 100% 60%);
}
div:nth-child(5) {
background-color: hsl(0 100% 80%);
}
div:nth-child(6) {
background-color: hsl(0 100% 100%);
border: solid;
}
Ergebnis
Rottöne mit unterschiedlicher Sättigung erstellen
Dieses Beispiel zeigt Rottöne mit unterschiedlichen Sättigungen im sRGB-Farbraum.
HTML
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
CSS
div:nth-child(1) {
background-color: hsl(0 0% 50%);
}
div:nth-child(2) {
background-color: hsl(0 20% 50%);
}
div:nth-child(3) {
background-color: hsl(0 40% 50%);
}
div:nth-child(4) {
background-color: hsl(0 60% 50%);
}
div:nth-child(5) {
background-color: hsl(0 80% 50%);
}
div:nth-child(6) {
background-color: hsl(0 100% 50%);
}
Ergebnis
Spezifikationen
Specification |
---|
CSS Color Module Level 4 # color-syntax |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
opacity
: die Eigenschaft, die die Transparenz auf Elementebene definiert<hue>
: der Datentyp, der den Farbtonwinkel einer Farbe darstelltcolor
,background-color
,border-color
,box-shadow
,outline-color
,text-shadow
: häufige Eigenschaften, die<color>
verwenden- Anwenden von Farbe auf HTML-Elemente mit CSS
- Verwendung von relativen Farben
- Neue Funktionen, Verläufe und Farbtöne in CSS-Farben (Level 4) auf dem MDN-Blog (2023)