Das currentColor-Keyword von CSS

CSS-Code enthält häufig Wiederholungen, was wir beim Schreiben von sauberem Code gerne vermeiden möchten. Mit Hilfe von CSS-Präprozessoren wie Sass kann der Code DRYer (weniger repetitiv) gestaltet werden. CSS selbst stellt neben nativen CSS-Variablen mit dem currentColor-Wert eine ähnliche Technik zur Verfügung.

currentColor merkt sich die Vordergrundfarbe

Ein Element kann in CSS eine Vordergrundfarbe (color) und eine Hintergrundfarbe (background-color) besitzen. Der Wert currentColor speichert die Vordergrundfarbe eines Elements und ermöglicht es diese Farbe auch anderen Eigenschaften zuzuweisen. Schauen wir und dazu folgendes Beispiel an:

h1 {
  color: lightgreen;
  border-bottom: 1px solid currentColor;
}

Beispiel anschauen

Die zuvor definierte Vordergrundfarbe lightgreen, kann über currentColor auch der Eigenschaft border-bottom zugewiesen werden. Das Keyword folgt dabei der CSS-Kaskade und kann auch in Kind-Elementen eingesetzt werden.

currentColor und SVG-Icons

Die sinnvollen Einsatzmöglichkeiten von currentColor sind überschaubar. Interessant wird die Eigenschaft aber u.a. im Zusammenspiel mit SVG-Icons. Hier kann über die CSS/SVG-Eigenschaft fill das Icon gemeinsam mit anderen Elementen umgefärbt werden. Icons in passender Farbe zu Links, Buttons oder Info-Boxen sind so kein Problem mehr.

Das folgende Beispiel verwendet ein SVG-Icon in einer Box.

.info { 
  color: lightblue;
  border: 1px solid currentColor;
}

#icon-warning {
  fill:currentcolor;
}

Beispiel anschauen

Browser Support

Den detaillierten Browser-Support für dieses Feature könnt ihr auf caniuse.com einsehen.

Data on support for the currentcolor feature across the major browsers from caniuse.com

Geschrieben von:

Jonas Hellwig

Benutzerbild

Jonas ist Gründer der Agentur kulturbanause und des kulturbanause Blogs. Er arbeitet an der Schnittstelle zwischen UX/UI Design, Frontend und Redaktion und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Jonas Hellwig ist regelmäßig als Sprecher auf Fachveranstaltungen anzutreffen und unterstützt mit Seminaren und Workshops Agenturen und Unternehmen bei der Planung, der Gestaltung und der technischen Umsetzung von Web-Projekten.

Jonas Hellwig bei Xing

Feedback & Ergänzungen – 6 Kommentare

  1. Ralf
    schrieb am 15.07.2025 um 16:42 Uhr:

    Hej,
    mir stellt sich die Frage ob eine Benutzerdefinierte Variable am Anfang im CSS nicht besser ist?
    currentColor bezieht sich zwar auf die eine direkte Class/ID und ist für kurzes ausreichend und schlank, doch auf ein gesamtes CSS ist eine Root-Variable doch schöner einfacher – finde ich.
    Und wie ist es mit älteren Browsern – was ist da geeigneter und was darf ich vernachlässigen.

    Beispiel:

    .styleClassDirekt {
    color: red;
    border-bottom: currentColer;
    }

    oder

    :root {
    –meineFarbe1: red;
    –meineFarbe2: blue;
    }
    .styleClassRoot {
    color: var(–meineFarbe1);
    border-bottom: var(–meineFarbe1);
    backgrond: var(–meineFarbe2);
    }

    Das beschäftigt mich schon länger, und da ich auf deine Meinung wert lege… freu ich mich auf eine Antwort.

    Antworten
    • Jonas Hellwig
      schrieb am 16.07.2025 um 13:10 Uhr:

      Hey Ralf, vielen Dank für deinen Kommentar. Ich nutze beide Techniken je nach Kontext – currentColor für einfache Vererbung, CSS Variablen mit var() für systematische Farbdefinitionen oder andere Design Tokens, die keine Farben festlegen. currentColor ist ideal, wenn du gezielt die Textfarbe als Basis für andere Styles (z. B. border-color, Icons) nutzen willst. CSS-Variablen im :root sind dagegen bei größeren Projekten besser wartbar, da sie zentrale Styling-Definitionen erlauben. Im Kontext von WordPress definiert beispielsweise die theme.json globale Farbdefinitionen als CSS-Variablen.

      Beim Browser-Support würde ich mit bei beiden Techniken keine Sorgen machen. Das hängt aber auch von deiner Philosophie beim Browser-Support ab. Unsere findest du hier.

      Antworten
  2. Gast
    schrieb am 17.03.2015 um 13:31 Uhr:

    Bei dem Beispiel ist keine Variable nötig. Wenn die Farbe fehlt wird automatisch die color-Angabe verwendet.

    .info {
    color: lightblue;
    border: 1px solid;
    }

    Antworten
    • Jonas Hellwig
      schrieb am 17.03.2015 um 14:11 Uhr:

      Das stimmt. Bei box-shadow haben wir u.a. das gleiche Verhalten. Ich denke jedoch, dass die Funktionsweise des currentColor-Keywords im Rahmen des Beispiels gut verständlich ist. Ich wollte ein Beispiel konstruieren, dass mit möglich wenig Code auskommt. In diesem konkreten Fall könnte man die Variable aber in der Tat weglassen.

      Antworten
  3. Björn
    schrieb am 02.03.2015 um 16:04 Uhr:

    Meinst du bei „Die zuvor definierte Hintergrundfarbe lightgreen“ nicht eher „Die zuvor definierte Vordergrundfarbe“?

    Antworten
    • Jonas Hellwig
      schrieb am 02.03.2015 um 17:13 Uhr:

      Korrekt. Vielen Dank für den Hinweis. Ist im Beitrag geändert.

      Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir realisieren komplette Projekte oder unterstützen punktuell in den Bereichen Design, Development, Strategy und Content.

Design + Code

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Schulung + Beratung