Color.

Lyne stellt Farben auf zwei Ebenen bereit: als Grundfarben und als semantische CSS-Variablen. Für Komponenten und Layouts verwendest du die semantischen Variablen. Sie passen sich dem Hell- und Dunkelmodus sowie der Theme-Variante automatisch an.

Zwei Ebenen.
  • Grundfarben wie --sbb-color-milk oder --sbb-color-red sind die Farbwerte der SBB-Farbpalette. Wann welche Farbe eingesetzt wird, beschreiben die Seiten Grundfarben, Off-Brand-Farben und Zusatzfarben.
  • Semantische Variablen wie --sbb-background-color-1 oder --sbb-color-error beschreiben einen Zweck. Sie verweisen auf eine Grundfarbe, die je nach Modus und Theme wechselt.
Kontextfarben.

Kontextfarben stehen für die Primärfarbe, die Marke und für Zustände wie Fehler, Warnung oder Erfolg.

CSS-VariableHellDunkelVerwendung
--sbb-color-primaryredredPrimärfarbe, im Standard-Theme Rot.
--sbb-color-primary85red85red85Hellere Abstufung der Primärfarbe.
--sbb-color-primary125red125red125Dunklere Abstufung der Primärfarbe.
--sbb-color-primary150red150red150Noch dunklere Abstufung der Primärfarbe.
--sbb-color-errorred125red85Fehlerzustände. Im Dunkelmodus heller, damit der Kontrast reicht.
--sbb-color-warningpeachpeachWarnungen.
--sbb-color-successgreengreenErfolgsmeldungen.
--sbb-color-brandredredMarkenfarbe, etwa für das Logo.
Theme-Varianten.

Die Theme-Varianten tauschen die Grundfarben hinter den Kontextfarben aus. Off-Brand ist für Anwendungen gedacht, die nicht unter der Marke SBB auftreten. Safety ist für sicherheitsrelevante Anwendungen gedacht. Wer --sbb-color-primary statt --sbb-color-red verwendet, muss beim Wechsel des Themes nichts anpassen.

CSS-VariableStandardOff-BrandSafety
--sbb-color-primaryredroyalroyal
--sbb-color-primary85red85royal85royal85
--sbb-color-primary125red125royal125royal125
--sbb-color-primary150red150royal150royal150
--sbb-color-brandredredmetal

Eingebunden werden die Varianten über die Theme-Dateien off-brand-theme.css und safety-theme.css (bzw. lean-off-brand-theme.css und lean-safety-theme.css).

Hintergrundfarben.

Hintergründe sind in vier Ebenen gestuft. Ebene 1 ist die Grundfläche, die höheren Ebenen heben sich zunehmend davon ab.

CSS-VariableHellDunkel
--sbb-background-color-1whitemidnight
--sbb-background-color-2whitecharcoal
--sbb-background-color-3milkcharcoal
--sbb-background-color-4cloudiron
Textfarben.

Ebene 1 hat den höchsten Kontrast. Ebene 5 ist in beiden Modi gleich und hat keine Varianten.

CSS-VariableHellDunkel
--sbb-color-1midnightwhite
--sbb-color-2charcoalwhite
--sbb-color-3charcoalmilk
--sbb-color-4ironcloud
--sbb-color-5smokesmoke
--sbb-color-6anthraciteplatinum
Rahmenfarben.

Rahmen verwenden dieselben Grundfarben wie die Texte derselben Ebene.

CSS-VariableHellDunkel
--sbb-border-color-1midnightwhite
--sbb-border-color-2charcoalwhite
--sbb-border-color-3charcoalmilk
--sbb-border-color-4ironcloud
--sbb-border-color-5smokesmoke
--sbb-border-color-6anthraciteplatinum
Varianten: negative und inverted.

Hintergrund-, Text- und Rahmenfarben gibt es zusätzlich mit drei Endungen (ausser Ebene 5). Damit lassen sich Flächen gestalten, die unabhängig vom Modus dunkel oder hell bleiben sollen.

EndungHellDunkelWirkung
--sbb-background-color-1whitemidnightNormales Farbpaar.
-negativemidnightmidnightImmer die dunkle Farbe des Paars, etwa für negative Komponenten.
-invertedmidnightwhiteHelle und dunkle Farbe vertauscht.
-negative-invertedwhitewhiteImmer die helle Farbe des Paars.
Schattenfarben.

Für Schatten gibt es weiche (soft) und harte (hard) Farben in zwei Stufen, jeweils auch mit der Endung -negative. Am einfachsten setzt du Schatten mit den Sass-Mixins, die auf der Seite Shadow beschrieben sind.

CSS-VariableHellDunkel
--sbb-shadow-color-soft-1
--sbb-shadow-color-soft-2
--sbb-shadow-color-hard-1
--sbb-shadow-color-hard-2
Hell- und Dunkelmodus.

Lyne nutzt die native CSS-Eigenschaft color-scheme. Die Komponenten folgen standardmässig der Einstellung des Betriebssystems. Mit den CSS-Klassen sbb-light oder sbb-dark legst du einen Modus fest, für die ganze Seite oder für einzelne Bereiche.

Eigene Farben brauchst du ebenfalls für beide Modi. Verwende dafür die CSS-Funktion light-dark() und gib davor die helle Farbe als Fallback für ältere Browser an:

.class {
  color: var(--sbb-color-cloud);
  color: light-dark(var(--sbb-color-cloud), var(--sbb-color-anthracite));
}

Die semantischen Variablen und die Zusatzfarben wie --sbb-color-sky wechseln von selbst. Die JavaScript-Tokens enthalten nur die Grundfarben. Dort musst du den Modus selbst behandeln, deshalb sind CSS-Variablen vorzuziehen.

Transparenz.

Für transparente Farben empfiehlt Lyne die CSS-Funktion color-mix():

.class {
  /* Primärfarbe mit 40 % Deckkraft */
  color: color-mix(in srgb, var(--sbb-color-primary) 40%, transparent);
}
Grundfarben als Tokens.

Diese Tokens aus dem Paket @sbb-esta/lyne-design-tokens enthalten die festen Farbwerte. Bei den Zusatz- und Off-Brand-Farben gibt es je einen Wert für hell (-light) und dunkel (-dark). Die CSS-Variable ohne Endung, etwa --sbb-color-sky, wählt den passenden Wert automatisch.

Grundfarben.
CSS-VariableWert
--sbb-color-black#000000
--sbb-color-midnight#151515
--sbb-color-blue#2d327d
--sbb-color-charcoal#212121
--sbb-color-iron#444444
--sbb-color-anthracite#5a5a5a
--sbb-color-granite#686868
--sbb-color-metal#767676
--sbb-color-smoke#8d8d8d
--sbb-color-storm#a8a8a8
--sbb-color-graphite#b7b7b7
--sbb-color-cement#bdbdbd
--sbb-color-platinum#cdcdcd
--sbb-color-aluminium#d2d2d2
--sbb-color-silver#dcdcdc
--sbb-color-cloud#e5e5e5
--sbb-color-milk#f6f6f6
--sbb-color-red#eb0000
--sbb-color-red85#ff3838
--sbb-color-red125#c60018
--sbb-color-red150#a20013
--sbb-color-white#ffffff
Off-Brand-Farben.
CSS-VariableWert
--sbb-color-royal-light#06348b
--sbb-color-royal-dark#0053ef
--sbb-color-royal85-light#4077df
--sbb-color-royal85-dark#4077df
--sbb-color-royal125-light#032668
--sbb-color-royal125-dark#245ecb
--sbb-color-royal150-light#021c4e
--sbb-color-royal150-dark#3c65b3
Zusatzfarben.
CSS-VariableWert
--sbb-color-sky-light#0074bf
--sbb-color-sky-dark#128ede
--sbb-color-night-light#143a85
--sbb-color-night-dark#6587ca
--sbb-color-violet-light#6f2282
--sbb-color-violet-dark#b36cc5
--sbb-color-pink-light#c7387a
--sbb-color-pink-dark#e45295
--sbb-color-autumn-light#cf3b00
--sbb-color-autumn-dark#f05313
--sbb-color-orange-light#f27e00
--sbb-color-orange-dark#fb8e19
--sbb-color-peach-light#fcbb00
--sbb-color-peach-dark#ffc727
--sbb-color-lemon-light#ffde15
--sbb-color-lemon-dark#ffe547
--sbb-color-brown-light#a05400
--sbb-color-brown-dark#cf6f04
--sbb-color-green-light#008233
--sbb-color-green-dark#109d47
--sbb-color-turquoise-light#007e84
--sbb-color-turquoise-dark#00a59b