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 Farbwert und gibt eine garantiert kontrastierende Farbe zurück.

contrast-color() macht es einfach, zum Beispiel eine Textfarbe anzugeben und automatisch eine kontrastierende Hintergrundfarbe zu erzeugen oder umgekehrt. Es vermeidet die Notwendigkeit, Paare von Hintergrund- und Textfarben zu pflegen.

Syntax

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

Parameter

color

Jeder gültige <color> Wert.

Rückgabewert

Ein <named-color> entweder white oder black.

Beschreibung

Die contrast-color() Funktion gibt je nach größtem Kontrast zum Eingabefarbwert entweder den Wert white oder black zurück. Haben sowohl white als auch black den gleichen Kontrast zum Eingabewert, wird white zurückgegeben.

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

Beispiele

Kontrastierender Text für einen Button

Im folgenden Beispiel wendet der Browser automatisch eine kontrastierende Farbe auf den Text des Absenden-<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));
}

Verwendung von Licht- und Dunkelmodus

Im folgenden Beispiel wird die prefers-color-scheme Media Query verwendet, um eine Hintergrundfarbe basierend auf Betriebssystem- oder Browser-Farbschemaeinstellungen zu setzen. Die contrast-color() Funktion wird verwendet, um die Textfarbe automatisch zu setzen.

Versuchen Sie, die Dunkelmodus-Einstellung des Browsers oder Betriebssystems zu ändern, 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