HEX vs. RGB vs. HSL: Welches Farbformat sollten Sie verwenden?
HEX vs. RGB vs. HSL: Welches Farbformat sollten Sie verwenden?
CSS bietet mehrere Möglichkeiten, Farben zu definieren, aber die drei gebrĂ€uchlichsten Formate sind HEX, RGB und HSL. Jedes Format hat klare StĂ€rken, und zu wissen, wann man welches verwendet, kann die Wartbarkeit Ihres Stylesheets und Ihre FĂ€higkeit, dynamische Farbsysteme zu erstellen, erheblich verbessern. Dieser Leitfaden zerlegt jedes Format, damit Sie fĂŒr jede Situation das richtige wĂ€hlen können.
HEX-Farbformat: Der Industriestandard
HEX-Farben (hexadezimal) sind das am weitesten verbreitete Format im Webdesign. Eine Hex-Farbe wird als # gefolgt von sechs hexadezimalen Ziffern geschrieben, die die Rot-, GrĂŒn- und Blauwerte in dieser Reihenfolge darstellen.
#FF5733
- #FF â Rot (255 in dezimal)
- #57 â GrĂŒn (87 in dezimal)
- #33 â Blau (51 in dezimal)
HEX-Varianten
HEX unterstĂŒtzt mehrere Notationen fĂŒr verschiedene BedĂŒrfnisse:
/* Standard-Sechs-Ziffern-Hex */
color: #FF5733;
/* Kurzform â identische Paare werden auf drei Ziffern reduziert */
color: #F53; /* Wird zu #FF5533 erweitert */
/* Acht-Ziffern-Hex mit Alpha-Kanal */
color: #FF573380; /* 50 % Deckkraft */
Kurzform-HEX funktioniert, wenn jedes Paar ĂŒbereinstimmende Zeichen verwendet: #AABBCC wird zu #ABC. Dies ist eine rein platzsparende Konvention, die von allen Browsern unterstĂŒtzt wird.
Acht-Ziffern-HEX (#RRGGBBAA) fĂŒgte Alpha-Transparenz hinzu. Der Alpha-Wert reicht von 00 (vollstĂ€ndig transparent) bis FF (vollstĂ€ndig deckend). Die BrowserunterstĂŒtzung fĂŒr 8-stelliges Hex ist in allen modernen Browsern ausgezeichnet.
Vier-Ziffern-Kurzform (#RGBA) existiert ebenfalls: #F538 wird zu #FF553388 erweitert.
Wann HEX verwenden
- Kopieren aus Designtools â Figma, Sketch und Adobe XD geben standardmĂ€Ăig Hex aus
- Fest codierte Markenfarben â Hex ist fĂŒr Werte, die sich nie Ă€ndern, eindeutig und kompakt
- Dokumentation und Mockups â Hex ist das am ehesten erkennbare Format unter Designern und Entwicklern
- CSS-Custom-Properties â Das Speichern von Marken-Tokens in Hex ist gĂ€ngige Praxis
Wann HEX vermeiden
- Programmatische Farbmanipulation â Das Anpassen einzelner KanĂ€le erfordert String-Parsing
- Erstellen von Farbsystemen â Das Erzeugen hellerer oder dunklerer Varianten erfordert nicht-triviale Mathematik
- Vermittlung von Farbabsicht â Hex gibt keine semantischen Informationen ĂŒber die Farbe
RGB-Farbformat: Kanalsteuerung
RGB steht fĂŒr Rot, GrĂŒn, Blau. In CSS wird es als Funktion mit Werten von 0 bis 255 oder ProzentsĂ€tzen (0 % bis 100 %) geschrieben.
/* Ăltere, durch Kommas getrennte Syntax */
color: rgb(255, 87, 51);
color: rgba(255, 87, 51, 0.5);
/* Moderne, durch Leerzeichen getrennte Syntax */
color: rgb(255 87 51);
color: rgb(255 87 51 / 0.5);
/* Prozentwerte */
color: rgb(100% 34% 20%);
Verbesserungen der modernen RGB-Syntax
Die CSS-Color-Level-4-Spezifikation modernisierte die Funktion rgb() auf zwei wichtige Arten:
- Durch Leerzeichen getrennte Werte â Kommas sind nicht mehr erforderlich, was die Syntax sauberer macht
- Alpha durch SchrĂ€gstrich getrennt â Das Alias
rgba()ist nicht mehr nötig;rgb()akzeptiert nun einen optionalen Alpha-Kanal
Sowohl die Ă€ltere als auch die moderne Syntax werden vollstĂ€ndig unterstĂŒtzt, aber fĂŒr neuen Code wird die moderne Syntax empfohlen.
Wann RGB verwenden
- Canvas und WebGL â Bilddaten-APIs geben Pixelwerte in RGB zurĂŒck
- Numerische Farbanpassungen â Wenn Sie Rot-, GrĂŒn- und Blauwerte als separate Variablen gespeichert haben
- Ăbertragung aus Design-Spezifikationen â Einige Designsysteme geben Farben als RGB-Tripel an
- Arbeiten mit FarbwĂ€hlern â Viele FarbwĂ€hler-OberflĂ€chen verwenden 0â255-Schieberegler
Wann RGB vermeiden
- Erstellen kohĂ€renter Farbpaletten â Das unabhĂ€ngige VerĂ€ndern aller drei KanĂ€le macht konsistente Anpassungen schwierig
- Menschliche Lesbarkeit â
rgb(123, 45, 67)vermittelt kein unmittelbares GefĂŒhl dafĂŒr, welche Farbe es darstellt
HSL-Farbformat: Menschenfreundliche Farben
HSL steht fĂŒr Farbton (Hue), SĂ€ttigung (Saturation) und Helligkeit (Lightness). Dieses Format ist fĂŒr Menschen intuitiver, weil es die Farbe selbst (Farbton) von ihrer IntensitĂ€t (SĂ€ttigung) und Helligkeit (Lightness) trennt.
/* Ăltere Syntax */
color: hsl(12, 100%, 60%);
color: hsla(12, 100%, 60%, 0.5);
/* Moderne Syntax */
color: hsl(12 100% 60%);
color: hsl(12 100% 60% / 0.5);
HSL-KanÀle verstehen
Farbton (0â360) â Der Farbwinkel im Farbkreis. Dies ist die Komponente âwelche Farbe ist es":
| Farbtonwert | Farbe | |-----------|---------| | 0 oder 360 | Rot | | 30 | Orange | | 60 | Gelb | | 120 | GrĂŒn | | 180 | Cyan | | 240 | Blau | | 300 | Magenta |
SĂ€ttigung (0â100 %) â Wie intensiv oder lebendig die Farbe ist. 0 % erzeugt einen Grauton; 100 % ist die reinste Version des Farbtons.
Helligkeit (0â100 %) â Wie hell oder dunkel die Farbe ist. 0 % ist immer Schwarz, 50 % ist die ânormale" Version des Farbtons und 100 % ist immer WeiĂ.
Warum HSL fĂŒr Farbsysteme ĂŒberlegen ist
HSL macht Aufgaben, die in HEX oder RGB schwierig sind, trivial einfach:
/* PrimÀre Markenfarbe */
--brand: hsl(220, 80%, 50%);
/* Hover-Zustand â etwas heller */
--brand-hover: hsl(220, 80%, 60%);
/* Aktiv-Zustand â etwas dunkler */
--brand-active: hsl(220, 80%, 40%);
/* Deaktivierter Zustand â entsĂ€ttigt */
--brand-disabled: hsl(220, 30%, 70%);
/* Hintergrund-Tönung â sehr hell */
--brand-bg: hsl(220, 40%, 95%);
Mit HSL ist jede Variante eine Ănderung einer einzigen Variable. Das ist mit HEX unmöglich und mit RGB umstĂ€ndlich.
Wann HSL verwenden
- Erstellen von Farbpaletten â HSL ist der De-facto-Standard fĂŒr die Erzeugung von Design-Tokens
- Themes und Dunkelmodus â Helligkeitswerte austauschen, um Dunkelmodus-Varianten zu erstellen
- Hover- und Fokus-ZustĂ€nde â Helligkeit um einen festen Prozentsatz anpassen
- Barrierefreiheitsanpassungen â Helligkeitskontrast erhöhen, ohne die Farbe zu Ă€ndern
- Interaktive FarbwĂ€hler â HSL-Schieberegler sind intuitiver als RGB-Schieberegler
Schnelle Vergleichstabelle
| Funktion | HEX | RGB | HSL |
|---------|-----|-----|-----|
| Lesbarkeit auf Pixelebene | Schlecht | Mittel | Gut |
| Kanal-Semantik | Undurchsichtig | Numerisch | Wahrnehmungsbezogen |
| Programmatische Anpassung | Schwer | Mittel | Einfach |
| Alpha-Transparenz | 8-stelliges Hex | rgb(R G B / A) | hsl(H S% L% / A) |
| BrowserunterstĂŒtzung | Ausgezeichnet | Ausgezeichnet | Ausgezeichnet |
| Moderne Syntax | Nein | Ja | Ja |
| Standard in Designtools | Ja | Ăblich | Selten |
| Eignung fĂŒr Farbsysteme | Schlecht | MĂ€Ăig | Ausgezeichnet |
BrowserunterstĂŒtzung: Alle drei sind sicher
HEX, RGB und HSL genieĂen identische BrowserunterstĂŒtzung. Alle drei funktionieren in jedem Browser, der seit Internet Explorer 9 veröffentlicht wurde. Die moderne, durch Leerzeichen getrennte Syntax (rgb(255 0 0 / 0.5)) wird in allen Browsern unterstĂŒtzt, die seit 2020 veröffentlicht wurden. Es gibt keinen KompatibilitĂ€tsgrund, eines dem anderen vorzuziehen.
Praktischer Entscheidungsrahmen
WĂ€hlen Sie Ihr Format basierend darauf, was Sie tun:
- Kopieren Sie aus einem Design-Mockup? Verwenden Sie HEX â es ist das, was Designtools ausgeben.
- Bauen Sie ein Design-Token-System? Verwenden Sie HSL â es macht die Palettenerzeugung trivial.
- Arbeiten Sie mit Canvas oder Bilddaten? Verwenden Sie RGB â Pixel-APIs verwenden nativ RGB.
- Schreiben Sie eine einmalige Stilregel? Verwenden Sie HEX â es ist am kompaktesten.
- Erstellen Sie dynamische FarbĂŒbergĂ€nge? Verwenden Sie HSL â das Interpolieren des Farbtons erzeugt Regenbogeneffekte; das Interpolieren von RGB erzeugt schlammige Zwischenfarben.
Zwischen jedem Format konvertieren
Nutzen Sie unseren kostenlosen Online-Color-Converter, um sofort zwischen HEX, RGB, HSL und anderen CSS-Farbformaten zu konvertieren. Keine manuelle Mathematik oder Spurensuche in den Browser-DevTools mehr.