Als “leistungsstarkes, kostenloses Bootstrap-Starter-Theme für WordPress” verwendet bootScore das Farbdesign von Bootstrap und zeichnet seine Elemente entsprechend aus. Zur Verfeinerung dieser allseits gleichen Ergebnisse liefert es aber Techniken mit. So muss die Webdesignerin erst das eigene Farbkonzept entwickeln und es dann in und mit bootScore umsetzen, wenn sie ein persönliches Outfit ihrer Site möchte:
Lösung
- Konzipiere das Erscheinungsbild Deiner Site.
- Wähle die entsprechenden Bootstrap-Farbcluster.
- Schreibe die Funktionsfarben entsprechend um.
- Definiere die eigenen CSS-Klassen gemäß Deines Konzeptes.
- Weise die Klassen den intendierten Elementen Deiner Website zu.
Hintergrund
Bootstrap hat den RGB-Farbraum in 10 Farbcluster unterteilt: Blau (blue
), Indigo (indigo
), Violett (purple
), Rosa (pink
), Rot (red
), Orange (orange
), Gelb (yellow
), Grün (green
), Petrol (teal
), Cyan (cyan
), Grau (gray
). Jeder Cluster beginnt mit einer entsprechend hellen Farbe und geht 9 Schritten bis zu einer entsprechend fast schwarzen Farbe. Definiert sind die Farben als SASS-Variablen, für jeden Cluster nach demselben Muster. Zugreifen können wir so etwa auf ein $green-100
, $green-200
, $green-300
, $green-400
, $green-500
, $green-600
, $green-700
, $green-800
, $green-900
, wobei $green
der Farbe $green-500
entspricht.
Wollen wir diese Farben in einem unserer Element verwenden, definieren wir in unserer Child-Themedatei scss/bscore_custom.scss
eine CSS-Klasse .cdg600 { color: $green-600; }
und weisen die dem intendierten HTML-Element zu, wie z.B. hier <code class="cdg600">$green-600</code>
. Diese Technik verengt den RGB-Farbraum zwar, sie erleichtert es uns aber, farblich differenzierte und trotzdem einheitliche Themes zu erstellen.
Neben der rein technischen Farbbehandlung geht Bootstrap auch konzeptionell neue Wege: Es gäbe — so der Gedanke — Site-übergreifende kommunikative Aufgaben, die von verschiedenen Elementen einer Site ausgeführt werden (können). Bootstrap erlaubt es, diesen Funktionselementen typische “Funktionsfarben” zuzuordnen. Welche Elemente einer Site welche Funktion übernehmen, entscheidet die Web-Designerin — und ordnet diesen die entsprechend “Funktionsfarbe” zu.
Konkret geht Bootstrap davon aus, dass es in Sites typischerweise (mehrere) Elemente gibt, die Erfolg signalisieren, die abschrecken, warnen oder informieren. Oder, dass es primäre Elemente gibt, sekundäre oder teriäre1, dunkle oder helle Elemente. Für diese seitenübergreifenden kommunikativen Funktionen definiert Bootstrap ‘funktionale Farben’. Das entsprechende Bootstrap-color-Howto zeigt die Vorbelegung dieser ‘Funktionsfarben’.
Ein Bootstrap-basiertes Theme muss also nur noch seine Elemente entsprechend der vorgesehenen Funktionen mit den zugehörigen CSS-Klassen auszeichnen, um ein minimal konsistentes Farbkonzept zu realisieren. Das hat bootScore vorbereitet. Allerdings verwendet es die Standard-Funktionsfarben von Bootstrap. So entsteht ein recht “buntes” Farbkonzept. Wir können die Farbwahl jedoch ‘entschärfen’, indem wir die CSS-Definitionen der ‘Funktionsklassen’ überschreiben und so die konzeptionell passende Farbe auf alle entsprechend markierten Elemente übertragen. bootscore demonstriert diesen Ansatz, indem es die Primärfarbe von Blau auf Rot umsetzt — mithilfe der Zeile $primary:#FF0000;
in der Datei bscore_variables.scss
.
Dabei müssen wir den Wert der gewünschten Farbe jedoch explizit zuweisen, anstatt eine der Variablen aus den von Bootstrap definierten Farbclustern zu verwenden. Das ist nicht das, was wir eigentlich wollen. Intuitiv würden wir $primary:$red;
schreiben. Leider ist das nicht möglich, weil die bootScore-Datei bscore_variables.scss
vor der entsprechenden Bootstrap-Datei geladen wird.2. Um also die von Bootstrap definierten und von bootScore verwendeten Funktionsfarben anzupassen, müssen wir die bestehenden Definitionen überschreiben, in denen wir explizit die Werte der beabsichtigten Clusterfarben verwenden. Dazu nutzen wir unserer Datei bscore_variables.scss
.
Die Umdefinition einer Funktionsfarbe passt dann allerdings auch abgeleitete Farben an: Setzen wir die Primärefarbe auf rot, werden die Links rot eingefärbt, die Hintergrundfarbe der Badgets auf ein helleres Rot und deren Linktext auf ein dunkleres. bootScore reicht dabei ’nur’ die Entscheidungen von Bootstrap durch.3
Als Ausgleich für die Komplikation können wir dann alle vordefinierten Bootstrap-Variablen in unseren eigenen CSS-Definitionen verwenden, die wir in unserer Bootscore-Datei bscore_custom.scss
definieren. Mehr noch: wir können auch die von Bootstrap vordefinierten CSS-Klassen (text
|bg
|…)-
(primary
|secondary
|…|danger
|…‘) direkt unseren HTML-Elementen zuordnen, sodass auch diese unseres Konzeptes entsprechend eingefärbt werden. Und noch weiter und feiner: Wir können auch bestehende Klassen — wie etwa die CSS-Klasse card — mit der SASS orienierten Definition .card { backgroundcolor: var(--#{$prefix}dark);
in unserer Datei bscore_custom.scss
auf einen schwarzen Hintergund umsetzen.4 Damit würden alle Karten in unseren Übersichtsdatei ‘verdunkelt’.5
Weil wir jedoch oft genug nicht alle Elemente ändern wollen, die mit vordefinierten Klassen ausgezeichnet sind, landen wir zum Schluß doch wieder bei der traditionelle Methode: wir definieren unsere eigenen Klassen, nutzen dabei Farben aus den Bootstrap-Clustern, und weisen unsere Klassen dann in den Templates den von uns intendierten Elemente zu. Und wie finden wir diese? Indem wir den Quellcode unserer bisherigen bootscore-Seiten studieren — und etwas ‘rumprobieren.
Um es zusammenfassen: Für einheitliches und technisch eingebundenes Farbkonzept, müssen wir
- unsere Ziele definieren (hier:
- Unsere Site soll blau-weiß-grau erscheinen = in Datei _
bscore_variables.scss
einfügen:$primary: #0d6efd; // Wert von $blue-500
$secondary: #6c757d;
// Wert von $gray-600
$info: #6ea8fe; // Wert von $blue-300
- Hervorstechende Elemente sollen violett erscheinen = in Datei _
bscore_variables.scss
einfügen:$danger: #520dc2; // Wert von $indigo-600
$warning: #8540f5; // Wert von $indigo-400
- Nebensächlicher Text soll lesbar ausgegraut sein.
- Die weißen Artikelteaser sollen schwach-blau umrandet sein = in Datei _
bscore-sustom.scss
einfügen:.card { border-color: $blue-600; }
- Die Teaser auf der Landingpage und auf den Übersichtsseiten sollen auf einem leicht blauen Hintergrund abgelegt werden. = in Datei _
bscore-sustom.scss
einfügen:.page-template-mylap , .hfeed { background-color: $blue-100;}
- Header und Footer sollen weiterhin auf grauem Hintergrund dargestellt werden.
- Unsere Site soll blau-weiß-grau erscheinen = in Datei _
- die funktionalen Farben entsprechend umschreiben — in unserer Datei
bscore_variables.scss
- unsere Siteelemente entsprechend ihrer Funktion mit den Funktionsklassen auszeichnen6
- unsere eigenen CSS-Klassen entsprechend unserer Ziele definieren — in unserer Datei
bscore_custom.scss
- unsere Klassen den vorgesehenen Elementen unserer Site zuweisen7
CSS-class: bg-primary | CSS-class: text-primary |
CSS-class: bg-secondary | CSS-class: text-secondary |
CSS-class: bg-success | CSS-class: text-success |
CSS-class: bg-info | CSS-class: text-info |
CSS-class: bg-warning | CSS-class: text-warning |
CSS-class: bg-danger | CSS-class: text-danger |
CSS-class: bg-dark | CSS-class: text-dark |
CSS-class: bg-light | CSS-class: text-light |
Und in welchem Zusammenhang …
… steht das mit unserer Migration zu bootScore? Nun, einmal angefangen mit Verbesserungen der Bildbehandlung, werden der Web-Designerin auch die verwischten ‘primären Beitragsgilder’ auffallen. Sie wird Lösungen ausprobieren und verfeinern. Und sie wird sie u.U. auch mit neuen HTML‑5 Techniken angehen. Denn damit wird eine ausgefallenere Bildstrategie samt integrierter Lizenzerfüllung und das eigene Logo erst richtig sinnvoll. Wie auch immer: Bilder bringen Farbe ins Leseleben. Zuletzt sollte all das also auch in ein eigenes Farbkonzept eingebunden sein. Zu dieser Thematik trägt auch dieser Post etwas bei.
Im Übrigen: Männer sind mitgemeint.
- semantisch ist dies wohl eine Abstufung der Wichtigkeit [↩]
- bootScore sagt, dass es damit der Bootstrap-Richtlinie folgt. [↩]
- Mehr noch: Gefragt danach, welche HTML-Elemente welcher Funktion zugeordnet sind, empfiehlt bootScore, das einfach auszuprobieren. [↩]
- oder wie auch immer die Funktionsfarbe ‘dark’ gerade definiert ist [↩]
- Das ginge zugegebenermaßen auch einfacher, nämlich mit der Anweisung
.card { backgroundcolor: $dark}
. [↩] - wie in u.a. Tabelle demonstriert [↩]
- wie oben vorgeführt [↩]