Responsives Farbdesign: Farben für verschiedene Bildschirme anpassen
Embed This Widget
Add the script tag and a data attribute to embed this widget.
Embed via iframe for maximum compatibility.
<iframe src="https://colorfyi.com/iframe/entity//" width="420" height="400" frameborder="0" style="border:0;border-radius:10px;max-width:100%" loading="lazy"></iframe>
Paste this URL in WordPress, Medium, or any oEmbed-compatible platform.
https://colorfyi.com/entity//
Add a dynamic SVG badge to your README or docs.
[](https://colorfyi.com/entity//)
Use the native HTML custom element.
Responsives Design hat das Layout-Problem gelöst – fluide Grids, flexible Bilder und Breakpoints ermöglichten es einer einzigen Codebasis, sowohl Smartphone-Bildschirme als auch 4K-Monitore zu bedienen. Aber Farbe hat ihr eigenes responsives Problem, für das CSS Grid und Media Queries ursprünglich nicht ausgelegt waren.
Derselbe Hex-Wert rendert sich unterschiedlich auf einem iPhone-OLED-Bildschirm, einem Windows-Laptop-LCD, einem kalibrierten professionellen Monitor und einem Außendisplay. Nutzer wechseln zwischen hellen und dunklen Umgebungen und nutzen Ihre UI in Kontexten, die man nicht vorhersagen kann. Wide-Gamut-Displays können Farben rendern, die sRGB überhaupt nicht darstellen kann.
Responsives Farbdesign bedeutet, diese Unterschiede zu verstehen und Styles zu schreiben, die sich bewusst anpassen – nicht zufällig.
Wie sich Displays unterscheiden und warum das wichtig ist
Die Physik verschiedener Display-Technologien
LCD (Liquid Crystal Display) – In den meisten Windows-Laptops, Budget-Monitoren und älteren MacBooks zu finden. LCDs beleuchten den gesamten Bildschirm mit Hintergrundlicht und verwenden Farbfilter. Schwarz erscheint gräulich (das Hintergrundlicht durchscheint), und der Farbraum ist typischerweise sRGB oder ähnlich. Farben im niedrigen Sättigungsbereich sehen ähnlich aus wie im Design.
OLED (Organic Light-Emitting Diode) – iPhone Pro, Samsung Galaxy, MacBook Pro mit Liquid Retina XDR, High-End-Monitore. Jedes Pixel erzeugt sein eigenes Licht, daher ist Schwarz echtes Schwarz (kein Lichtausgang). Farben erscheinen lebhafter und kontrastreicher als auf LCD. Ein subtiler grauer Hintergrund auf einem LCD kann auf OLED deutlich dunkel erscheinen.
IPS-LCD – Mittel- bis High-End-Monitore. Bessere Farbgenauigkeit und breitere Betrachtungswinkel als einfache LCDs. Deckt oft sRGB vollständig ab und reicht manchmal bis DCI-P3.
Mini-LED – Apples XDR-Displays in MacBook Pro 14/16 und Pro Display XDR. Verwendet ein LCD-Panel mit tausenden lokaler Dimmbereiche. Nähert sich OLED in Schwarzpegel-Leistung, während sehr hohe Spitzenhelligkeit erhalten bleibt. Display-P3-Farbraum.
E-Ink – Kindle und E-Reader. Nur Graustufen oder begrenzte Farbe. Alle Farbdesign-Entscheidungen für Web-Apps sind hier irrelevant, aber die Inhaltslesbarkeit (Kontrast) ist noch immer wichtig.
Farbräume: sRGB, Display P3 und Rec. 2020
Ein Farbraum ist der Bereich der Farben, die ein Display produzieren kann. Die drei Farbräume, denen man im Webdesign begegnet:
sRGB – Der Standard-Farbraum, den alle Monitore unterstützen, und der Farbraum, den CSS historisch vorausgesetzt hat. Wenn man #FF6B6B schreibt, interpretiert der Browser das als sRGB-Farbe. Browser und OS verwalten die Zuordnung dieser Farbe zum Display.
Display P3 – Etwa 25–30% breiter als sRGB. Unterstützt auf allen iPhone-, iPad- und Mac-Displays ab etwa 2016, sowie vielen modernen Android-Flaggschiffen und einigen PC-Monitoren. Der P3-Farbraum erstreckt sich besonders in die Rot- und Grünrichtungen – gesättigte Rots und Grüns, die auf einem P3-Display lebendig aussehen, können auf sRGB überhaupt nicht dargestellt werden.
Rec. 2020 – Noch breiter als P3. Hauptsächlich relevant für Videoproduktion und HDR-Inhalte. Wenige Consumer-Displays decken Rec. 2020 vollständig ab; es ist noch kein praktisches Ziel für Web-UI-Design.
Was passiert, wenn sRGB-Farben auf P3-Displays verwendet werden
Wenn ein Browser #FF6B6B auf einem P3-Display rendert, ordnet das Betriebssystem die sRGB-Farbe dem P3-Farbraum zu. Das Ergebnis sieht korrekt aus – man bekommt keine falschen Farben. Was man nicht bekommt, ist die erweiterte Lebhaftigkeit, zu der P3 fähig ist. Gesättigte Rots und Grüns werden mit derselben visuellen Intensität erzeugt wie auf einem sRGB-Display.
Um P3s breiteren Farbraum zu nutzen, muss man P3-Raum-Farben explizit angeben – und der Browser fällt für sRGB-Displays elegant zurück.
CSS-Media-Queries zur Farbanpassung
prefers-color-scheme: Dark Mode
Die am häufigsten verwendete farbbezogene Media-Query passt die Palette an, wenn der Nutzer Dark Mode in seinem Betriebssystem aktiviert hat:
/* Hellmodus (Standard) */
:root {
--color-bg: #F8FAFC;
--color-surface: #FFFFFF;
--color-text-primary: #1E293B;
--color-text-muted: #64748B;
--color-brand: #2563EB;
--color-border: #E2E8F0;
}
/* Dark Mode */
@media (prefers-color-scheme: dark) {
:root {
--color-bg: #0F172A;
--color-surface: #1E293B;
--color-text-primary: #F1F5F9;
--color-text-muted: #94A3B8;
--color-brand: #60A5FA;
--color-border: #334155;
}
}
Die Dark-Mode-Markenfarbe wechselt von #2563EB (tiefes Blau) zu #60A5FA (helleres Blau). Das ist beabsichtigt. Das Hellmodus-Markenblau hat guten Kontrast auf weißem Hintergrund; auf einem dunklen Marineblau-Hintergrund benötigt man einen helleren Wert, um ähnlichen Kontrast zu erhalten.
Den Kontrast-Checker verwenden, um sowohl die Hell- als auch die Dunkelmodus-Kombinationen zu überprüfen:
- Hellmodus:
#1E293Bauf#F8FAFC→ sicherstellen, dass 4,5:1 bestanden wird - Dunkelmodus:
#F1F5F9auf#0F172A→ sicherstellen, dass 4,5:1 bestanden wird - Dunkelmodus-Markenlinks:
#60A5FAauf#0F172A→ sicherstellen, dass 4,5:1 bestanden wird
prefers-contrast: Hochkontrastmodus
Einige Nutzer – insbesondere solche mit Sehschwäche – aktivieren Hochkontrastmodus in ihrem Betriebssystem. Die prefers-contrast-Media-Query ermöglicht es, auf diese Präferenz zu reagieren:
@media (prefers-contrast: more) {
:root {
--color-text-primary: #000000;
--color-bg: #FFFFFF;
--color-brand: #0000CC;
--color-border: #000000;
}
}
Im Hochkontrastmodus sollten gedämpfte Farben, dekorative Gradienten und subtile Töne durch klare, hochkontrastige Alternativen ersetzt werden. Das Ziel ist maximale Lesbarkeit, nicht visuelle Raffinesse.
Werte für prefers-contrast umfassen more, less, forced und no-preference. forced entspricht dem Windows-Hochkontrastmodus, der eine systemweite Farbüberschreibung anwendet – die eigenen CSS-Farben können vom OS vollständig überschrieben werden.
color-gamut: Wide-Gamut-Displays ansprechen
Die color-gamut-Media-Query erkennt, ob das Display des Nutzers einen breiteren Farbraum als sRGB unterstützt:
/* Standard: sRGB-Farben */
:root {
--color-brand: #FF6B6B;
}
/* P3-fähige Displays: lebhaftere Variante */
@media (color-gamut: p3) {
:root {
--color-brand: color(display-p3 1 0.35 0.35);
}
}
Die Syntax color(display-p3 1 0.35 0.35) verwendet die CSS-color()-Funktion mit dem display-p3-Farbraum. Die Werte liegen im Bereich 0–1 (entspricht 0–100%). Dieser spezifische Wert entspricht einem Rot, das stärker gesättigt ist, als sRGB darstellen kann.
Für die meisten UI-Elemente – Text, Hintergründe, Rahmen – ist der sRGB-Farbraum ausreichend. Der Anwendungsfall für P3-Farben sind hauptsächlich Markenakzente, Hero-Bilder und Marketing-Elemente, bei denen auf fähigen Displays maximale Lebhaftigkeit gewünscht wird.
forced-colors: Windows-Hochkontrastmodus
Der Windows-Hochkontrastmodus ersetzt Stylesheet-Farben durch eine systemdefinierte Palette. Elemente behalten ihre Formen und ihr Layout, aber Farben werden durch das vom Nutzer gewählte Hochkontrastthema überschrieben (typischerweise weißer Text auf Schwarz oder schwarzer Text auf Weiß, mit einigen Akzentfarben).
Man kann nicht steuern, welche Farben im Forced-Colors-Modus erscheinen, aber man kann sicherstellen, dass die Oberfläche funktional bleibt:
@media (forced-colors: active) {
/* System-Schlüsselwortfarben verwenden */
.button {
background-color: ButtonFace;
color: ButtonText;
border: 2px solid ButtonBorder;
}
/* Rahmen für Elemente wiederherstellen, die nur auf Farbe gesetzt haben */
.status-indicator {
border: 2px solid currentColor;
}
}
CSS-Schlüsselwortfarben wie ButtonFace, ButtonText und Canvas ordnen sich automatisch den vom Nutzer gewählten Hochkontrast-Systemfarben zu. Ihre Verwendung stellt sicher, dass Komponenten absichtlich statt kaputt aussehen.
Dynamische Farbe mit CSS-Custom-Properties
Die Token-Architektur für responsives Farbdesign
CSS-Custom-Properties (Variablen) sind die Grundlage eines responsiven Farbsystems. Das Schlüsselprinzip: Komponenten referenzieren semantische Token, keine direkten Werte. Die Media-Queries ändern die Token-Werte; die Komponenten müssen nie aktualisiert werden.
/* Semantische Token – diese verwenden die Komponenten */
:root {
/* Text */
--text-primary: #1E293B;
--text-secondary: #64748B;
--text-inverse: #F1F5F9;
/* Oberflächen */
--surface-base: #F8FAFC;
--surface-raised: #FFFFFF;
--surface-overlay: rgba(0, 0, 0, 0.04);
/* Marke */
--brand-primary: #2563EB;
--brand-primary-hover: #1D4ED8;
--brand-primary-text: #FFFFFF;
/* Feedback */
--color-error: #DC2626;
--color-error-bg: #FEF2F2;
--color-success: #16A34A;
--color-success-bg: #F0FDF4;
}
@media (prefers-color-scheme: dark) {
:root {
--text-primary: #F1F5F9;
--text-secondary: #94A3B8;
--text-inverse: #1E293B;
--surface-base: #0F172A;
--surface-raised: #1E293B;
--surface-overlay: rgba(255, 255, 255, 0.05);
--brand-primary: #60A5FA;
--brand-primary-hover: #93C5FD;
--brand-primary-text: #0F172A;
--color-error: #F87171;
--color-error-bg: #1F0E0E;
--color-success: #4ADE80;
--color-success-bg: #0D1F12;
}
}
Komponenten verwenden die Token:
.card {
background-color: var(--surface-raised);
color: var(--text-primary);
border: 1px solid var(--color-border, #E2E8F0);
}
.button-primary {
background-color: var(--brand-primary);
color: var(--brand-primary-text);
}
Wenn der Nutzer in den Dark Mode wechselt, ändern sich die Token-Werte und jede Komponente aktualisiert sich automatisch.
Inline-Theme-Wechsel ohne Seitenneuladung
Custom-Properties aktualisieren sich in Echtzeit. Ein Theme-Toggle kann ohne vollständige Seitenaktualisierung implementiert werden:
function toggleTheme() {
const root = document.documentElement;
const isDark = root.classList.toggle('dark-theme');
// Die prefers-color-scheme-Werte überschreiben
if (isDark) {
root.style.setProperty('--surface-base', '#0F172A');
root.style.setProperty('--text-primary', '#F1F5F9');
// ... alle dunklen Token
} else {
root.style.removeProperty('--surface-base');
root.style.removeProperty('--text-primary');
// Durch Entfernen der Überschreibungen werden die Media-Query-Werte wiederhergestellt
}
localStorage.setItem('theme', isDark ? 'dark' : 'light');
}
Die Nutzerpräferenz in localStorage zu speichern und beim Seitenaufruf anzuwenden (vor dem ersten Paint) verhindert einen Flash des falschen Themes.
color-mix() für dynamische Töne verwenden
CSS color-mix() (ab 2023 in allen modernen Browsern unterstützt) ermöglicht das Erstellen von Tönen und Schattierungen aus einem einzelnen Basis-Farbtoken, ohne jede Variante vorab berechnen zu müssen:
:root {
--brand-base: #2563EB;
}
.badge {
/* Markenfarbe mit Weiß für einen hellen Ton mischen */
background-color: color-mix(in srgb, var(--brand-base) 15%, white);
color: var(--brand-base);
}
.badge-dark {
/* Mit Schwarz für eine dunklere Variante mischen */
background-color: color-mix(in srgb, var(--brand-base) 85%, black);
color: white;
}
Das ist besonders nützlich im Dark Mode, wo ein heller Ton der Markenfarbe auf weißem Hintergrund zu einem dunklen Ton auf dunklem Hintergrund werden muss. Mit color-mix() kann man diese Beziehung einmal im Token definieren und sie automatisch anpassen lassen.
Farbraum-Konvertierung für Bildschirmanpassung
Warum Hex-Codes für responsives Farbdesign nicht ausreichen
Hex-Codes repräsentieren sRGB-Farben. Wenn man über Farbräume arbeitet (sRGB, Display P3, OKLCH), muss man zwischen Darstellungen konvertieren. Der Farbkonverter unterstützt HEX, RGB, HSL, CMYK und OKLCH – nützlich, wenn man:
- Den HSL-Helligkeitswert einer Farbe finden muss, um zu verstehen, wie sie im Dark Mode wirkt
- Eine P3-Farbe zurück zur nächsten sRGB-Näherung für den Fallback konvertieren muss
- In OKLCH arbeiten möchte, wo die Helligkeitsachse wirklich wahrnehmungsgleichmäßig ist
OKLCH für wahrnehmungsgleichmäßige Dark-Mode-Paletten
OKLCH (Oklab Lightness, Chroma, Hue) ist für responsives Farbdesign zunehmend wertvoll, da seine Helligkeitsachse wahrnehmungsgleichmäßig ist – gleiche numerische Schritte in L erzeugen visuell gleiche Helligkeitsstufen, anders als bei HSL, wo dieselbe Helligkeitsänderung bei verschiedenen Farbtönen dramatisch unterschiedliche Ergebnisse erzeugt.
Das ist für den Dark Mode relevant: Wenn ein Dark-Mode-Äquivalent einer Hellmodus-Farbe gesucht wird, erleichtert OKLCH das Finden eines Wertes mit der richtigen wahrgenommenen Helligkeit.
Zum Beispiel liegt der Hellmodus-gedämpfte Text #64748B in OKLCH bei etwa oklch(53% 0.04 254). Der L-Wert von 53% gibt die wahrgenommene Helligkeit an. Für eine Dark-Mode-Oberfläche bei oklch(13% 0.02 254) (L=13%, der dunkle Hintergrund) könnte man Text bei oklch(65% 0.04 254) wollen – etwas heller als das Hellmodus-Äquivalent – um äquivalenten Kontrast zu erhalten.
Den Farbkonverter verwenden, um die OKLCH-Werte der Palettenfarben zu finden, und dann diese L-Werte als Leitfaden beim Entwerfen der Dark-Mode-Gegenstücke nutzen.
Testen über verschiedene Geräte
Was getestet werden soll und warum
Kontrast in beiden Hell- und Dunkelmodi – Den Kontrast-Checker für jedes Text-/Hintergrund-Token-Paar in beiden Modi ausführen. Eine Farbe, die im Hellmodus besteht, muss im Dunkelmodus oft angepasst werden; nicht davon ausgehen, dass eine Invertierung ausreicht.
Tatsächliche Geräte, nicht nur Emulation – Browser-Emulations-Tools können Gerätegrößen simulieren, aber nicht akkurat Display-Farbeigenschaften simulieren. Ein iPhone-OLED rendert Farben anders als ein Windows-Laptop-LCD auf eine Art, die für Dark Mode und Sättigung wichtig ist. Auf mindestens einem OLED-Mobilgerät und einem LCD-Display testen.
OLED vs. LCD-Dunkelhintergründe – Auf OLED erscheint das dunkle Marine #0F172A sehr dunkel mit echten Schwarzwerten. Auf einem schwachen LCD kann es merklich heller aussehen und die visuelle Hierarchie verschieben.
Kalibrierte vs. unkalibrierte Monitore – Der Entwicklungsmonitor ist möglicherweise farbkalibriert; die Monitore der Nutzer sind es fast sicher nicht. Farben erscheinen wärmer, kühler, mehr oder weniger gesättigt auf unkalibrierten Displays. Das lässt sich nicht in CSS beheben, aber es erklärt, warum man keine sehr subtilen Farbunterschiede entwerfen sollte, die präzise Farbton-Genauigkeit erfordern.
Hochkontrastmodus – Auf Windows mit Hochkontrast-Schwarz und Hochkontrast-Weiß testen. Sicherstellen, dass alle interaktiven Elemente funktional bleiben und alle Texte lesbar bleiben, nachdem das OS seine Farbüberschreibungen angewendet hat.
Die minimale Gerätematrix
| Gerät | Display-Typ | Warum testen |
|---|---|---|
| iPhone 14 Pro oder neuer | OLED | Dark-Mode-Lebhaftigkeit, Schwarzwerte |
| Android-Flaggschiff (Samsung Galaxy) | OLED | Farbrendering-Unterschiede zu iOS |
| MacBook (2019+) | P3-LCD | Breiter Farbraum, macOS-Farbverwaltung |
| Windows-Laptop (typisch) | sRGB-LCD | Das Basisniveau der meisten Nutzer |
| Windows-Desktop (Monitor) | sRGB oder Wide-Gamut-IPS | Farbgenauigkeitsreferenz |
Wichtigste Erkenntnisse
- Verschiedene Display-Technologien (LCD, OLED, IPS, Mini-LED) rendern dieselben Hex-Werte mit unterschiedlichen Schwarzwerten, Sättigung und Lebhaftigkeit – auf mehreren physischen Geräten testen, nicht nur Browser-Emulation.
prefers-color-schemeist die primäre Media-Query für Dark-Mode-Anpassung; CSS-Custom-Properties (Token) als Abstraktionsschicht verwenden, damit Komponenten nie aktualisiert werden müssen, wenn das Theme wechselt.color-gamut: p3ermöglicht das Ansprechen von Wide-Gamut-Displays mit lebendigeren Farben mithilfe der CSS-Funktioncolor(display-p3 ...), mit automatischem Fallback auf sRGB für Standard-Displays.prefers-contrast: moreundforced-colors: activeadressieren Hochkontrast- und Windows-Hochkontrastmodus – Nutzer, die diese Einstellungen benötigen, können das Produkt ohne sie nicht verwenden.- OKLCH ist der praktischste Farbraum für das Entwerfen wahrnehmungsgleichmäßiger Paletten, da seine Helligkeitsachse über alle Farbtöne hinweg wirklich gleichmäßig ist – wertvoll bei der Berechnung von Dark-Mode-Äquivalenten der Hellmodus-Palette.
- Kontrast in beiden Modi immer überprüfen mit dem Kontrast-Checker – eine Farbe, die im Hellmodus besteht, scheitert nach der Transposition in einen dunklen Kontext oft.
- Den Farbkonverter verwenden, um über Farbräume zu arbeiten, wenn Dark-Mode-Gegenstücke entworfen oder zwischen Hex, HSL und OKLCH konvertiert wird.
- Semantische Token-Architektur –
--text-primarystatt#1E293Bin Komponenten referenzieren – ist die skalierbare Grundlage für jedes responsive Farbsystem. Token ändern sich; Komponenten nicht.