0Pricing
React Academy · Lektion

CSS-Variablen für den Theme-Wechsel

Eine vollständige Farbpalette mit benutzerdefinierten CSS-Eigenschaften definieren und Themes durch Umschalten eines Datenattributs wechseln

CSS-Variablen für den Theme-Wechsel ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Farbtokens auf :root definieren

CSS Custom Properties (Variablen), die auf :root definiert sind, sind im gesamten Stylesheet global verfügbar. Definieren Sie eine vollständige Farbpalette einmalig – Hintergründe, Textfarben, Oberflächen und Rahmen – und referenzieren Sie sie überall. Diese zentrale Quelle der Wahrheit macht den Theme-Wechsel trivial.

Überschreibungen für das dunkle Theme mit data-theme

Wenn ein Attribut data-theme="dark" auf document.documentElement gesetzt ist, überschreibt ein CSS-Selektor wie [data-theme='dark'] die Root-Variablen mit dunklen Werten. Komponenten referenzieren var(--color-bg) und übernehmen automatisch die neuen Werte, ohne dass Codeänderungen erforderlich sind.

Wichtige zu definierende Variablen

Definieren Sie mindestens: --color-bg (Seitenhintergrund), --color-text (primärer Text), --color-primary (Markenfarbe), --color-surface (Hintergrund von Karten/Bedienfeldern) und --color-border (Trennlinien). Ein konsistenter Token-Satz verhindert, dass Ad-hoc-Farbwerte in Komponenten auftauchen.

Variablen in Komponentenstilen anwenden

Referenzieren Sie in den CSS-Styles Ihrer Komponente Variablen wie background: var(--color-bg) und color: var(--color-text). Sie können auch einen Fallback-Wert angeben: var(--color-bg, #ffffff). Der Browser löst die Variable beim Zeichnen auf, sodass eine einzelne Klasse für helle und dunkle Themes funktioniert.

Sanfter Übergang beim Wechsel

Fügen Sie dem :root-Selektor transition: background-color 200ms, color 200ms hinzu. Wenn sich das data-theme-Attribut ändert, animieren alle Elemente, die CSS-Variablen verwenden, gleichzeitig zu ihren neuen Werten. So entsteht ein professioneller Eindruck, ohne Animationscode in JS.

CSS-Variablen vs. von JavaScript gesteuerte Inline-Stile

Die Verwaltung des Themes über CSS-Variablen ist dem Setzen von Inline-Stilen aus JavaScript überlegen. Der Browser übernimmt alle Stilneuberechnungen nativ, für jede thematisierte untergeordnete Komponente werden keine zusätzlichen React-Neudarstellungen ausgelöst, und die CSS-Kaskade übernimmt die Vererbung automatisch. JavaScript muss lediglich ein Attribut am Root-Element umschalten.

Fallback auf Betriebssystemebene mit prefers-color-scheme

Sie können CSS-Variablen mit der Abfrage @media (prefers-color-scheme: dark) als reinen CSS-Fallback kombinieren. Definieren Sie Ihre dunklen Überschreibungen innerhalb der Media Query zusätzlich zu (oder statt) dem data-theme-Selektor. So funktioniert der Dark Mode auch dann, wenn JavaScript noch nicht ausgeführt wurde.

data-theme mit Media-Query-Fallback kombinieren

Am robustesten ist eine Kombination beider Mechanismen: Die @media-Abfrage stellt den Standard des Betriebssystems bereit, während ein data-theme-Attribut eine Benutzerüberschreibung per JavaScript ermöglicht. Wenn das Attribut vorhanden ist, hat es aufgrund seiner Spezifität Vorrang; andernfalls greift die Media Query.

Bilder im Dark Mode

Verwenden Sie für Bilder, die auf dunklen Hintergründen schlecht aussehen, das HTML-Element picture mit einem untergeordneten Element source media="(prefers-color-scheme: dark)". Der Browser wählt die dunkle Variante automatisch aus. Für SVG-Icons in CSS können Sie filter: invert(1) als schnelle Näherung verwenden.

Bereichsbezogene Theme-Variablen

CSS-Variablen können auch auf einzelne Komponenten beschränkt werden, indem Sie sie statt auf :root am Root-Element einer Komponente definieren. So wird ein Theme pro Komponente möglich, etwa eine Seitenleiste mit einem eigenen Hintergrund-Token, der sich vom Seitenhintergrund unterscheidet, wobei beim globalen Theme-Wechsel weiterhin alles korrekt umgeschaltet wird.

CSS-Variablen in DevTools debuggen

Chrome DevTools zeigt im Bereich „Styles“ die aufgelösten Werte von CSS-Variablen an. Klicken Sie auf die Variablenreferenz, um zu ihrer Definition zu springen. So können Sie leicht prüfen, ob bei einem beliebigen Element das korrekte dunkle oder helle Token angewendet wird. Sie können Variablenwerte außerdem direkt im Bereich bearbeiten.

CSS Custom Properties für Themes

Welcher CSS-Selektor wird verwendet, um globale CSS Custom Properties zu definieren, die für das gesamte Dokument gelten?

Zusammenfassung der Lektion: CSS-Variablen für den Theme-Wechsel

CSS Custom Properties auf :root stellen ein zentralisiertes Token-System für Themes bereit. Schalten Sie ein data-theme-Attribut am HTML-Element um, um Themes sofort zu wechseln. Fügen Sie CSS-Übergänge für eine sanfte Animation hinzu, verwenden Sie die prefers-color-scheme-Media-Query als reinen CSS-Fallback und vermeiden Sie JS-Überschreibungen von Stilen auf Komponentenebene.

Häufig gestellte Fragen

Ist die Lektion „CSS-Variablen für den Theme-Wechsel“ kostenlos?

Ja — der vollständige Text von „CSS-Variablen für den Theme-Wechsel“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „CSS-Variablen für den Theme-Wechsel“?

Eine vollständige Farbpalette mit benutzerdefinierten CSS-Eigenschaften definieren und Themes durch Umschalten eines Datenattributs wechseln Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „CSS-Variablen für den Theme-Wechsel“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Systemfarbschema erkennen
  2. CSS-Variablen für den Theme-Wechsel
  3. React Context für den Theme-Zustand
  4. Theme speichern und Aufblitzen verhindern
← Zurück zu React Academy