color-scheme

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2022.

Die color-scheme CSS Eigenschaft ermöglicht es einem Element anzugeben, in welchen Farbschemata es komfortabel gerendert werden kann. Benutzeragenten ändern die folgenden Aspekte des Benutzeroberflächen-Chromes, um dem verwendeten Farbschema zu entsprechen:

  • Die Farbe der Leinwandoberfläche.
  • Die Standardfarben von Scrollleisten und anderen Interaktions-UI-Elementen.
  • Die Standardfarben von Formularsteuerungen.
  • Die Standardfarben anderer browsergesteuerter UI, wie z.B. "Rechtschreibprüfung"-Unterstreichungen.

Komponentenautoren müssen das Medienfeature prefers-color-scheme verwenden, um die Farbschemata auf den anderen Elementen zu unterstützen.

Häufige Optionen für Betriebssystem-Farbschemata sind "hell" und "dunkel" oder "Tagmodus" und "Nachtmodus". Wenn ein Benutzer eines dieser Farbschemata auswählt, nimmt das Betriebssystem Anpassungen an der Benutzeroberfläche vor. Dies schließt Formularsteuerungen, Scrollleisten und die verwendeten Werte von CSS-Systemfarben ein.

Probieren Sie es aus

Syntax

css
color-scheme: normal;
color-scheme: light;
color-scheme: dark;
color-scheme: light dark;
color-scheme: only light;

/* Global values */
color-scheme: inherit;
color-scheme: initial;
color-scheme: revert;
color-scheme: revert-layer;
color-scheme: unset;

Der Wert der color-scheme Eigenschaft muss eines der folgenden Schlüsselwörter sein.

Werte

normal

Gibt an, dass das Element unter Verwendung der Farbschema-Einstellungen der Seite gerendert werden kann. Wenn die Seite kein Farbschema festgelegt hat, wird das Element mit den Standardeinstellungen der Seite gerendert.

light

Gibt an, dass das Element unter Verwendung des hellen Farbschemas des Betriebssystems gerendert werden kann.

dark

Gibt an, dass das Element unter Verwendung des dunklen Farbschemas des Betriebssystems gerendert werden kann.

only

Verhindert, dass der Benutzeragent das Farbschema für das Element überschreibt.

Kann verwendet werden, um Farbüberschreibungen zu deaktivieren, die durch Chromes Auto Dark Theme verursacht werden, indem color-scheme: only light; auf ein spezifisches Element oder :root angewendet wird.

Formale Definition

Anfangswertnormal
Anwendbar aufall elements and text
VererbtJa
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

color-scheme = 
normal |
[ light | dark | <custom-ident> ]+ && only?

Beispiele

Farbschema-Präferenzen deklarieren

Um die gesamte Seite in die Farbschema-Präferenzen des Benutzers einzubeziehen, deklarieren Sie color-scheme auf dem :root Element.

css
:root {
  color-scheme: light dark;
}

Um spezifische Elemente in die Farbschema-Präferenzen des Benutzers einzubeziehen, deklarieren Sie color-scheme auf diesen Elementen.

css
header {
  color-scheme: only light;
}
main {
  color-scheme: light dark;
}
footer {
  color-scheme: only dark;
}

Zusammen mit dem obigen CSS sollte auch das <meta name="color-scheme"> HTML <meta> Tag im <head>, vor jeglicher CSS-Stilinformation, eingefügt werden, um Benutzeragenten über das bevorzugte Farbschema zu informieren und unerwünschte Bildschirmblitze während des Seitenladens zu verhindern.

Styling basierend auf Farbschemata

Um Elemente basierend auf Farbschema-Präferenzen zu stylen, verwenden Sie die prefers-color-scheme Medienabfrage. Das folgende Beispiel schließt die gesamte Seite in die Verwendung sowohl des hellen als auch des dunklen Farbschemas des Betriebssystems über die color-scheme Eigenschaft ein und verwendet dann prefers-color-scheme, um die gewünschten Vorder- und Hintergrundfarben für einzelne Elemente in diesen Farbschemata anzugeben.

css
:root {
  color-scheme: light dark;
}

@media (prefers-color-scheme: light) {
  .element {
    color: black;
    background-color: white;
  }
}

@media (prefers-color-scheme: dark) {
  .element {
    color: white;
    background-color: black;
  }
}

Alternativ können Sie die light-dark() <color> Funktion verwenden, um die Vorder- und Hintergrundfarben für die verschiedenen Farbschemata in einer kompakteren Code-Struktur festzulegen:

css
:root {
  color-scheme: light dark;
}

.element {
  color: light-dark(black, white);
  background-color: light-dark(white, black);
}

Spezifikationen

Specification
CSS Color Adjustment Module Level 1
# color-scheme-prop

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch