contrast-color()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die contrast-color() CSS Funktion nimmt einen color-Wert und gibt eine kontrastierende Farbe zurück. Diese Funktion stellt in der Regel den WCAG AA Mindestkontrast sicher. Die Browser könnten unterschiedlich und mit besseren Algorithmen arbeiten.
contrast-color() macht es einfach, z. B. eine Textfarbe anzugeben und automatisch eine kontrastierende Hintergrundfarbe zu generieren oder umgekehrt. Dies vermeidet die Notwendigkeit, Hintergrund-Text-Farbpaare zu pflegen.
Syntax
contrast-color(red)
contrast-color(var(--backgroundColor))
Parameter
Rückgabewert
Eine <named-color> von entweder white oder black.
Beschreibung
Die Funktion contrast-color() gibt einen Wert von white oder black zurück, je nachdem, welcher Wert den größten Kontrast zur Eingabefarbe hat. Wenn sowohl white als auch black den gleichen Kontrast zur Eingabefarbe haben, wird white zurückgegeben.
Warnung:
WCAG AA (4.5:1) Kontrast ist nicht in der Lage, in allen Fällen gut lesbaren Text zu erzeugen. Mitteltonige Hintergrundfarben bieten in der Regel nicht genug Kontrast zu entweder schwarzen oder weißen Vordergrund. Zum Beispiel erzeugt contrast-color() auf einem königsblauen (#2277d3) Hintergrund schwarzen Text, der für kleinen Text nicht lesbar ist. Es wird daher empfohlen, helle oder dunkle Farben mit der contrast-color()-Funktion zu verwenden.
Beispiele
>Kontrastreicher Text für einen Button
Im folgenden Beispiel wendet der Browser automatisch eine kontrastierende Farbe auf den Text des <button>-Elements an, wenn Sie seine Hintergrundfarbe ändern.
:root {
--button-color: lightblue;
}
button {
background-color: var(--button-color);
/* Set contrasting text color automatically */
color: contrast-color(var(--button-color));
}
Nutzung im hellen und dunklen Modus
Im folgenden Beispiel wird die prefers-color-scheme Media Query verwendet, um eine Hintergrundfarbe basierend auf den Einstellungen des Betriebssystems oder Browserschema zu setzen. Die contrast-color()-Funktion wird verwendet, um die Textfarbe automatisch zu setzen.
Versuchen Sie, die Einstellungen des Browsers oder des Betriebssystems für den Dunkelmodus zu ändern, um den Effekt zu sehen.
:root {
--background-color: navy;
}
@media (prefers-color-scheme: light) {
:root {
--background-color: wheat;
}
}
body,
a {
background-color: var(--background-color);
color: contrast-color(var(--background-color));
}
Spezifikationen
| Specification |
|---|
| CSS Color Module Level 5> # contrast-color> |
Browser-Kompatibilität
Siehe auch
contrast()- CSS-Farben Modul
- CSS-Custom Properties und
var() prefers-contrastundprefers-color-scheme@mediaFunktionen- WCAG: Farbkontrast
- Anleitung zur automatischen Auswahl kontrastierender Farben in CSS auf webkit.org (2025)
- WebAIM Contrast Checker auf webaim.org (2025)