← Zurück zum Glossar

Webdesign · Entwicklung · SEO

CSS-Variablen

CSS-Variablen erklärt: Werte gemeinsam nutzen | scinet

Redaktionell geprüft ·

Verständlich erklärt

CSS-Variablen sind benutzerdefinierte Eigenschaften in einem Stylesheet. Ihr technischer Name lautet Custom Properties. Ein Name wie --farbe-akzent steht für einen Wert, den du an mehreren Stellen verwenden kannst. Abgerufen wird er mit var().

Stell dir vor, die Akzentfarbe deiner Website soll sich ändern. Wenn zwanzig Elemente auf denselben Wert zugreifen, musst du nicht zwanzig Farbangaben suchen. Das klingt klein, macht spätere Anpassungen aber nachvollziehbarer. Voraussetzung ist, dass die Elemente tatsächlich die Variable verwenden.

Ein Wert, mehrere Stellen

Mit :root kannst du einen gemeinsamen Ausgangswert für das Dokument definieren. Eine Schaltfläche und ein Hinweisrahmen können darauf zugreifen. Wenn beide dieselbe inhaltliche Rolle haben, ist das sinnvoll.

Ich würde trotzdem nicht jede rote Fläche automatisch an dieselbe Variable hängen. Eine Fehlermeldung und die Markenfarbe können heute gleich aussehen, später aber unterschiedliche Aufgaben erfüllen. Benenne Werte deshalb nach ihrer Bedeutung. So bleibt bei einer Änderung verständlich, was gemeinsam reagieren soll.

Auf einen Blick

Linkfarbe: color: var(--accent). Rahmen: border-color: var(--accent). Buttonfläche: background: var(--accent)
Ein gemeinsamer Wert erreicht mehrere Elemente. Die Verbindung zeigt die Verwendung desselben Werts; lokale Überschreibungen bleiben möglich.Infografik in voller Größe öffnen

Warum eine Variable nicht überall gleich sein muss

Eigenschaften mit -- werden normalerweise vererbt. Du kannst den Wert in einem bestimmten Bereich überschreiben, etwa für eine dunkle Kontaktbox. Die enthaltenen Elemente verwenden dann den dort wirksamen Wert. Genau das unterscheidet diese Technik von einem einfachen Suchen und Ersetzen.

Mit @property lassen sich zusätzlich Typ, Anfangswert und Vererbungsverhalten registrieren. Für den Einstieg brauchst du diese Registrierung nicht zwingend. Sie wird interessant, wenn du strengere Regeln für die Werte oder bestimmte Animationen benötigst.

Fallbacks helfen, lösen aber nicht jeden Fehler

var(--farbe-akzent, #be1622) enthält einen Ersatzwert. Er greift beispielsweise, wenn die unregistrierte Variable nicht definiert ist. Er macht aus einem ungeeigneten Wert aber nicht automatisch einen gültigen Farbwert. Wenn eine vorhandene Variable eine Länge enthält und als Farbe verwendet wird, kann die Deklaration ungültig werden.

Außerdem lassen sich mit var() keine Selektoren oder Eigenschaftsnamen erzeugen. Auch ein gewöhnlicher Media-Query-Breakpoint kann damit nicht einfach parametrisiert werden. Halte das Beispiel zunächst klein und prüfe den berechneten Stil im Browser.

Passend dazu: Design-Tokens · Sass / SCSS · Bootstrap 6 Alpha im Vergleich.

Codebeispiel aus der Praxis

CSS

Gemeinsame Farbe mit lokaler Variante

Eigenes Beispiel: Link und Rahmen nutzen denselben Wert. Innerhalb von .kontaktbox wird er überschrieben.

:root { --farbe-akzent: #be1622; }
.kontaktlink { color: var(--farbe-akzent); }
.hinweis { border: 2px solid var(--farbe-akzent); }
.kontaktbox { --farbe-akzent: #76101a; }

Quellen und weiterführende Informationen

  1. Dokumentation Using CSS custom properties MDN Web Docs · Geprüft
  2. Dokumentation var() MDN Web Docs · Geprüft
  3. Dokumentation @property MDN Web Docs · Geprüft
  4. Dokumentation Sass Variables Sass · Geprüft

Häufige Fragen

Nein. Sass-Variablen werden bei der Übersetzung verarbeitet. CSS-Variablen bleiben im ausgelieferten CSS und werden im Browser anhand der Kaskade aufgelöst. Beide können zusammen eingesetzt werden.

Nein. Sie sind eine technische Möglichkeit, gemeinsame Werte umzusetzen. Ein Design-System braucht zusätzlich Regeln, Komponenten und verständliche Zuständigkeiten.