color
color bestimmt die Textfarbe eines Elements. Die Eigenschaft wird an alle Kindelemente vererbt und beeinflusst auch den Standardwert von border-color und text-decoration-color über das Schlüsselwort currentColor. CSS bietet zahlreiche Farbformate: von einfachen Named Colors über Hex- und RGB-Werte bis hin zu modernen Formaten wie oklch. Der richtige Einsatz von color ist auch für Barrierefreiheit entscheidend, weil ausreichender Kontrast zwischen Text und Hintergrund die Lesbarkeit sicherstellt.
- Syntax
- color: <color>
- Initialwert
- canvastext (browserabhängig, meist schwarz)
- Vererbt
- Ja
- Animierbar
- Ja
- Kategorie
- Farben & Hintergründe
- Werte
- 10
- Beispiele
- 7
- Browser
- 5 von 5
- 4 von 5
- Stand
- 15.02.2026
Grundlagen
color ist eine der am häufigsten verwendeten CSS-Eigenschaften. Sie wird vererbt, das heißt: Setzt du color auf <body>, erbt jedes Textelement im Dokument diese Farbe, solange es nicht explizit überschrieben wird.
Das Schlüsselwort currentColor verweist immer auf den aktuellen color-Wert des Elements. Das ist besonders praktisch für Borders, SVG-Icons und Pseudo-Elemente, weil sie sich automatisch an die Textfarbe anpassen. Änderst du die color, ändern sich alle currentColor-Referenzen mit.
transparent ist ein vollständig durchsichtiger Farbwert. Er entspricht rgba(0, 0, 0, 0) und wird oft für Hover-Übergänge oder unsichtbare Borders verwendet, die bei Bedarf Farbe bekommen.
Syntax & Werte
10 WerteBeispiele
7 BeispieleAlle diese Angaben erzeugen denselben blauen Farbton, nur in unterschiedlicher Notation.
.c-named { color: dodgerblue; }
.c-hex { color: #1e90ff; }
.c-rgb { color: rgb(30, 144, 255); }
.c-hsl { color: hsl(210, 100%, 56%); }
.c-oklch { color: oklch(0.65 0.19 253); }<div class="color-formats">
<div class="c-named">Named Color: dodgerblue</div>
<div class="c-hex">Hex: #1e90ff</div>
<div class="c-rgb">RGB: rgb(30, 144, 255)</div>
<div class="c-hsl">HSL: hsl(210, 100%, 56%)</div>
<div class="c-oklch">OKLCH: oklch(0.65 0.19 253)</div>
</div> currentColor lässt Borders, Box-Shadows und Pseudo-Elemente automatisch die Textfarbe übernehmen. Änderst du die color, passt sich alles an.
.box {
border: 2px solid currentColor;
/* Border-Farbe = Textfarbe */
}
.blue { color: #1a56db; } /* Blauer Text + blauer Border */
.green { color: #059669; } /* Grüner Text + grüner Border */
.red { color: #dc2626; } /* Roter Text + roter Border */<div class="current-demo">
<div class="current-box current-blue">Blau (Border passt sich an)</div>
<div class="current-box current-green">Grün (Border passt sich an)</div>
<div class="current-box current-red">Rot (Border passt sich an)</div>
</div> Mit dem Alpha-Kanal kannst du Textfarben halbtransparent machen. Der Wert geht von 0 (unsichtbar) bis 1 (voll sichtbar). Die moderne Syntax rgb(r g b / alpha) und die ältere rgba(r, g, b, alpha) sind gleichwertig.
/* Moderne Syntax (empfohlen) */
.full { color: rgb(255 255 255 / 1); }
.light { color: rgb(255 255 255 / 0.75); }
.half { color: rgb(255 255 255 / 0.5); }
.faint { color: rgb(255 255 255 / 0.25); }
/* Ältere Syntax (gleichwertig) */
.full { color: rgba(255, 255, 255, 1); }
.light { color: rgba(255, 255, 255, 0.75); }<div class="alpha-demo">
<div class="alpha-col">
<div class="alpha-col-title">Moderne Syntax: rgb()</div>
<div class="r-100">rgb(255 255 255 / 1)</div>
<div class="r-75">rgb(255 255 255 / 0.75)</div>
<div class="r-50">rgb(255 255 255 / 0.5)</div>
<div class="r-25">rgb(255 255 255 / 0.25)</div>
</div>
<div class="alpha-col">
<div class="alpha-col-title">Ältere Syntax: rgba()</div>
<div class="ra-100">rgba(255, 255, 255, 1)</div>
<div class="ra-75">rgba(255, 255, 255, 0.75)</div>
<div class="ra-50">rgba(255, 255, 255, 0.5)</div>
<div class="ra-25">rgba(255, 255, 255, 0.25)</div>
</div>
</div> hsl() beschreibt Farben über Farbton (0-360°), Sättigung und Helligkeit. Das macht es einfach, verwandte Farbtöne zu erzeugen: gleicher Hue, andere Sättigung oder Helligkeit. oklch() ist das modernste Format mit gleichmäßig wahrgenommener Helligkeit: gleiche Lightness-Werte sehen bei verschiedenen Farbtönen tatsächlich gleich hell aus.
/* HSL: Farbton (°), Sättigung (%), Helligkeit (%) */
.blue { color: hsl(220, 80%, 48%); }
.green { color: hsl(150, 80%, 35%); }
.red { color: hsl(0, 80%, 48%); }
/* OKLCH: Lightness (0-1), Chroma, Hue (°) */
/* Gleiche Lightness → gleich hell wahrgenommen */
.blue { color: oklch(0.55 0.2 260); }
.green { color: oklch(0.55 0.2 155); }
.red { color: oklch(0.55 0.2 25); }<div class="hsl-demo">
<div class="hsl-col">
<div class="hsl-col-title">hsl()</div>
<div class="h-blue">hsl(220, 80%, 48%)</div>
<div class="h-green">hsl(150, 80%, 35%)</div>
<div class="h-red">hsl(0, 80%, 48%)</div>
<div class="h-purple">hsl(280, 80%, 48%)</div>
</div>
<div class="hsl-col">
<div class="hsl-col-title">oklch()</div>
<div class="o-blue">oklch(0.55 0.2 260)</div>
<div class="o-green">oklch(0.55 0.2 155)</div>
<div class="o-red">oklch(0.55 0.2 25)</div>
<div class="o-purple">oklch(0.55 0.2 310)</div>
</div>
</div> color wird an alle Kindelemente vererbt. Einmal auf <body> gesetzt, gilt die Farbe überall, wo sie nicht explizit überschrieben wird.
body {
color: #334155; /* Gilt für alle Textelemente */
}
.highlight {
color: #dc2626; /* Überschreibt die geerbte Farbe */
}
a {
color: #1a56db; /* Links brauchen oft explizite Farbe */
}<div class="inherit-demo">
<h3>Überschrift erbt die Farbe</h3>
<p>Normaler Text erbt ebenfalls die Farbe #334155.</p>
<p class="highlight">Dieser Absatz überschreibt mit color: #dc2626.</p>
<p>Links haben ihre <a href="#">eigene Farbe</a>, weil Browser-Styles sie überschreiben.</p>
</div>