Menu

CSS Farben: Namen, Hex, RGB, RGBA, HSL und Transparenz

Alle Wege, eine Farbe in CSS zu schreiben: Farbnamen, Hex-Codes, rgb() und rgba(), hsl(), Transparenz mit Alphakanal, currentColor und die neueren oklch() und color-mix(). Jeweils mit Live-Beispiel und einem Farbumrechner.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Wege, eine Farbe in CSS zu schreiben

Jede Eigenschaft, die eine Farbe annimmt (color, background-color, border-color, Schatten, SVG-fill), akzeptiert dieselben Formate. Die ersten vier Farbfelder sind dasselbe Blau, auf vier Arten geschrieben, und das fünfte ist ein Farbname, der nahe herankommt:

FormatBeispielAm besten für
Nametomato, rebeccapurpleSchnelle Tests und Prototypen
Hex#2563eb, #25eÜbernahme aus Design-Tools
rgb()rgb(37 99 235)Transparenz einmischen, Arbeit mit RGB-Werten
hsl()hsl(221 83% 53%)Hellere und dunklere Abstufungen einer Farbe
oklch()oklch(55% 0.2 262)Paletten mit gleichmäßig wahrgenommener Helligkeit
Schlüsselwörtertransparent, currentColorSiehe die Abschnitte unten

Hex-Farben

Eine Hex-Farbe ist #, gefolgt von Rot, Grün und Blau als je zwei hexadezimale Ziffern, von 00 bis ff. Drei Formen sind Abkürzungen oder Erweiterungen:

  • #rgb: Jede Ziffer wird verdoppelt, also ist #25e gleich #2255ee.
  • #rrggbbaa: Das letzte Paar ist Alpha, also ist #2563eb80 etwa zu 50% deckend.
  • #rgba: die Kurzform mit Alpha.

Bei Hex spielt Groß- und Kleinschreibung keine Rolle: #2563EB und #2563eb sind dieselbe Farbe.

rgb() und rgba()

rgb() nimmt Rot, Grün und Blau von 0 bis 255 (oder 0% bis 100%). Ein optionaler vierter Wert nach einem Schrägstrich ist Alpha, von 0 (unsichtbar) bis 1 oder von 0% bis 100%.

color: rgb(37 99 235);          /* modern space syntax */
color: rgb(37 99 235 / 50%);    /* half transparent */
color: rgba(37, 99, 235, 0.5);  /* older comma syntax, same result */

rgba() und rgb() sind inzwischen dieselbe Funktion: Beide akzeptieren beide Schreibweisen und ein optionales Alpha. Alter Code nutzt rgba(), wenn er Transparenz braucht, und das funktioniert weiterhin.

hsl(): das am leichtesten anpassbare Format

hsl() beschreibt eine Farbe so, wie Menschen über Farbe denken: ein Farbton vom Farbkreis, eine Sättigung und eine Helligkeit. Behalte den Farbton und ändere die Helligkeit, und du bekommst eine ganze Skala:

Die erste Reihe behält Farbton 221 und Sättigung 83% und ändert nur die Helligkeit. Die zweite Reihe wandert mit gleicher Sättigung und Helligkeit einmal um den Farbkreis.

Transparenz: Alpha vs. opacity

Ein Alphakanal macht eine einzelne Farbe durchsichtig. opacity macht das ganze Element durchsichtig, Text und Kinder inklusive:

transparent ist ein Schlüsselwort für vollständig transparentes Schwarz, rgb(0 0 0 / 0). Es ist der Standardhintergrund der meisten Elemente.

currentColor

currentColor entspricht der eigenen color des Elements. Ein Button, dessen Rahmen, Icon und Text alle darauf zugreifen, ändert alles mit einer einzigen Deklaration:

.button {
  color: #16a34a;
  border: 2px solid currentColor;
}
.button svg { fill: currentColor; }

Rahmen haben bereits standardmäßig currentColor, deshalb passt border: 2px solid ohne Farbe zum Text.

Probier eine beliebige Farbe aus

Tipp eine Farbe in einem beliebigen Format ein. Der Browser parst sie und zeigt, was er berechnet hat; eine ungültige Farbe lässt das Farbfeld unverändert.

Probier tomato, #0f0, #2563eb80, rgb(0 0 0 / 25%), oklch(70% 0.15 150) und color-mix(in srgb, #2563eb, white 50%).

Neuere Farbfunktionen

  • oklch(L C H): Helligkeit, Chroma und Farbton in einem Farbraum, der so gebaut ist, dass gleiche Helligkeit auch gleich hell aussieht. Paletten darin haben weniger trübe Zwischenstufen als HSL-Paletten.
  • color-mix(in srgb, A, B 30%): mischt zwei Farben. Mit white oder black erzeugt es hellere und dunklere Abstufungen aus einer einzigen Markenfarbe, und es funktioniert mit CSS-Variablen: color-mix(in srgb, var(--brand), white 80%).

Beide funktionieren in aktuellen Versionen von Chrome, Firefox und Safari. Halte Markenfarben in CSS Variablen, damit die gewählten Formate an einer Stelle stehen.

Häufige Fehler

  • Fehlendes # bei einer Hex-Farbe. color: 2563eb ist ungültig und wird ignoriert.
  • opacity nutzen, um einen Hintergrund transparent zu machen. Das blendet auch den Text aus. Nimm eine Farbe mit Alpha.
  • Trennzeichen in der modernen Syntax mischen. rgb(37 99, 235) ist ungültig: entweder nur Leerzeichen oder nur Kommas.
  • Annehmen, dass ein Farbname zu deinem Design passt. royalblue ist nicht #2563eb. Kopier den exakten Code.
  • Kontrast nach Augenmaß beurteilen. Prüf Textfarben gegen ihren Hintergrund mit einem Kontrast-Checker; 4,5:1 ist das Minimum für Fließtext.

Häufig gestellte Fragen

Welche Farbformate unterstützt CSS?

Farbnamen (red), Hex (#ff0000), rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() und color(), dazu die Schlüsselwörter transparent und currentColor. Hex, rgb und hsl decken fast die ganze Alltagsarbeit ab.

Was ist der Unterschied zwischen rgb und rgba?

Keiner mehr. rgba() ist ein älterer Alias: Aktuelles CSS erlaubt rgb() einen Alphawert (rgb(37 99 235 / 50%)), und beide Funktionen akzeptieren in allen aktuellen Browsern dieselben Argumente.

Wie mache ich eine Farbe in CSS transparent?

Füge einen Alphakanal hinzu: rgb(0 0 0 / 50%), hsl(221 83% 53% / 0.5) oder ein achtstelliges Hex wie #2563eb80. Anders als opacity blendet das nur diese eine Farbe aus, nicht das ganze Element.

Was ist HSL in CSS?

Hue, Saturation, Lightness: Farbton, Sättigung, Helligkeit. Der Farbton ist ein Winkel auf dem Farbkreis (0 Rot, 120 Grün, 240 Blau), die Sättigung gibt an, wie kräftig die Farbe ist, und die Helligkeit reicht von 0% Schwarz bis 100% Weiß. Hellere und dunklere Abstufungen sind damit einfach: Du änderst nur die letzte Zahl.

Was bedeutet currentColor?

Es ist der Wert der Eigenschaft color des Elements. Nutzt du es für einen Rahmen oder eine SVG-Füllung, folgen sie automatisch der Textfarbe.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S