<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 Transparenzwert beinhalten, der angibt, wie die Farbe mit ihrem Hintergrund komponiert werden soll.
Hinweis:
Obwohl <color>
-Werte präzise definiert sind, kann ihr tatsächliches Erscheinungsbild (manchmal erheblich) von Gerät zu Gerät variieren. Dies liegt daran, dass die meisten Geräte nicht kalibriert sind und einige Browser keine Farbprofile von Ausgabegeräten 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 folgenden 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 auf Basis einer bestehenden Farbe zu erstellen. Jede der oben genannten Farbfunktionsmöglichkeiten kann eine Ursprungsfarbe genutzt werden, der das Schlüsselwort
from
vorausgeht und gefolgt wird von Definitionen der Kanalwerte für die neue Ausgabefarbe. - Durch Mischen zweier Farben:
color-mix()
. - Durch Angabe von zwei Farben, bei der die erste für helle Farbschemata und die zweite für dunkle Farbschemata verwendet wird:
light-dark()
.
currentcolor
Schlüsselwort
Das currentcolor
Schlüsselwort repräsentiert den Wert der color
-Eigenschaft eines Elements. Dies ermöglicht es Ihnen, den color
-Wert bei Eigenschaften zu verwenden, die ihn standardmäßig nicht erhalten.
Wenn currentcolor
als Wert der color
-Eigenschaft verwendet wird, übernimmt es stattdessen seinen Wert vom geerbten Wert der color
-Eigenschaft.
<div class="container">
The color of this text is blue.
<div class="child"></div>
This block is surrounded by a blue border.
</div>
.container {
color: blue;
border: 1px dashed currentcolor;
}
.child {
background: currentcolor;
height: 9px;
}
Fehlende Farbkomponenten
Jede Komponente einer CSS-Farb-Funktion - außer jene, die die veraltete komma-separierte Syntax verwenden - kann als Schlüsselwort none
spezifiziert werden, um eine fehlende Komponente darzustellen.
Das explizite Angeben fehlender Komponenten bei Farbinterpolation ist nützlich für Fälle, in denen Sie einige Farbkomponenten interpolieren, aber andere nicht. Für alle anderen Verwendungszwecke hat eine fehlende Komponente effektiv den Wert null in einer angemessenen Einheit: 0
, 0%
oder 0deg
. Zum Beispiel sind die folgenden Farben äquivalent, 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 wird bei Verläufen, Übergängen und Animationen verwendet.
Wenn <color>
-Werte interpoliert werden, werden sie zuerst in einen bestimmten Farbraum umgewandelt, und dann werden jede Komponente der berechneten Werte linear interpoliert, wobei die Geschwindigkeit der Interpolation durch die Abschwächungsfunktion in Übergängen und Animationen bestimmt wird. Der Standard-Interpolationsfarbraum ist Oklab, kann jedoch durch <color-interpolation-method>
in einigen farbbezogenen funktionalen Notationen überschrieben werden.
Interpolation mit fehlenden Komponenten
Interpolieren von Farben im gleichen Raum
Wenn Farben interpoliert werden, die sich genau im Interpolationsfarbraum befinden, werden fehlende Komponenten einer Farbe durch bestehende Werte derselben Komponenten der anderen Farbe ersetzt. Zum Beispiel sind die folgenden zwei Ausdrücke äquivalent:
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 vorliegt, werden ihre fehlenden Komponenten basierend auf analogen Komponenten derselben Kategorie in die konvertierte Farbe übertragen, wie in der folgenden Tabelle beschrieben:
Kategorie | Analoge Komponenten |
---|---|
Rottöne | R , X |
Grüntöne | G , Y |
Blautöne | 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)
.
Unter Verwendung von Oklch als Interpolationsfarbenraum und den zwei folgenden Farben 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 Wert von null:
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 eine Komponente der konvertierten Farben analog zu einer fehlenden Komponente in der entsprechenden Originalfarbe ist, setzen Sie sie wieder 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 Menschen haben Schwierigkeiten, Farben zu unterscheiden. Die WCAG 2.2-Empfehlung rät dringend davon ab, Farbe als einziges Mittel zur Übermittlung einer bestimmten Nachricht, Handlung oder eines Ergebnisses zu verwenden. Siehe Farbe und Farbkontrast für weitere Informationen.
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()> |
<ictcp()> |
<jzazbz()> |
<jzczhz()> |
<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 ] ]? )
<ictcp()> =
ictcp( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<jzazbz()> =
jzazbz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<jzczhz()> =
jzczhz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )
<color()> =
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> =
<predefined-rgb-params> |
<xyz-params>
<predefined-rgb-params> =
<predefined-rgb> [ <number> | <percentage> | none ]{3}
<xyz-params> =
<xyz-space> [ <number> | <percentage> | none ]{3}
<predefined-rgb> =
srgb |
srgb-linear |
display-p3 |
a98-rgb |
prophoto-rgb |
rec2020 |
rec2100-pq |
rec2100-hlg |
rec2100-linear
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
Beispiele
Erforschen von Farbwerten
In diesem Beispiel bieten wir ein <div>
und eine Texteingabe. Durch Eingabe einer gültigen Farbe in das Eingabefeld nimmt <div>
diese Farbe an, 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 voll gesättigter sRGB-Farben
Dieses Beispiel zeigt voll 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
Erstellen verschiedener Abstufungen von Rot
Dieses Beispiel zeigt Rottöne verschiedener Abstufungen 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
Erstellen von Rottönen mit unterschiedlicher Sättigung
Dieses Beispiel zeigt Rottöne mit unterschiedlicher Sättigung 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
Siehe auch
opacity
: die Eigenschaft, die die Transparenz auf Elementebene definiert<hue>
: der Datentyp, der den Farbwinkel einer Farbe darstelltcolor
,background-color
,border-color
,box-shadow
,outline-color
,text-shadow
: häufige Eigenschaften, die<color>
verwenden- Farbe auf HTML-Elemente mit CSS anwenden
- Verwendung relativer Farben
- Neue Funktionen, Verläufe und Farbtöne in CSS-Farben (Level 4) auf dem MDN-Blog (2023)