contrast-color()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die contrast-color() CSS Funktion nimmt einen color-Wert und gibt eine garantiert kontrastreiche Farbe zurück.

contrast-color() vereinfacht es beispielsweise, eine Textfarbe anzugeben und automatisch eine kontrastreiche Hintergrundfarbe zu generieren, oder umgekehrt. Es vermeidet die Notwendigkeit, Hintergrund-Text-Farbpaare zu pflegen.

Syntax

css
contrast-color(red)
contrast-color(var(--backgroundColor))

Parameter

color

Jeder gültige <color> Wert.

Rückgabewert

Ein <named-color> von entweder white oder black.

Beschreibung

Die Funktion contrast-color() gibt entweder den Wert white oder black zurück, je nachdem, welcher Wert den größten Kontrast zur Eingabefarbe hat. Haben sowohl white als auch black den gleichen Kontrast zur Eingabefarbe, wird white` zurückgegeben.

Warnung: Es gibt keine Garantie, dass die mit der contrast-color() Funktion zurückgegebenen Werte ein barrierefreies Ergebnis liefern. Hintergrundfarben im mittleren Tonbereich bieten in der Regel nicht genügend Kontrast. Es wird daher empfohlen, helle oder dunkle Farben mit der contrast-color() Funktion zu verwenden.

Beispiele

Kontrastierender Text für einen Button

Im folgenden Beispiel wendet der Browser automatisch eine kontrastreiche Farbe auf den Text des Absende-<button> an, wenn Sie dessen Hintergrundfarbe ändern.

css
: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 basierend auf den Betriebssystem- oder Browser-Farbschemeneinstellungen eine Hintergrundfarbe festzulegen. Die contrast-color() Funktion wird benutzt, um die Textfarbe automatisch einzustellen.

Ändern Sie die Dunkelmodus-Einstellung im Browser oder Betriebssystem, um den Effekt zu sehen.

css
: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