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.
--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.--sbb-background-color-1 oder --sbb-color-error beschreiben einen Zweck. Sie verweisen auf eine Grundfarbe, die je nach Modus und Theme wechselt.Kontextfarben stehen für die Primärfarbe, die Marke und für Zustände wie Fehler, Warnung oder Erfolg.
| CSS-Variable | Hell | Dunkel | Verwendung |
|---|---|---|---|
--sbb-color-primary | red | red | Primärfarbe, im Standard-Theme Rot. |
--sbb-color-primary85 | red85 | red85 | Hellere Abstufung der Primärfarbe. |
--sbb-color-primary125 | red125 | red125 | Dunklere Abstufung der Primärfarbe. |
--sbb-color-primary150 | red150 | red150 | Noch dunklere Abstufung der Primärfarbe. |
--sbb-color-error | red125 | red85 | Fehlerzustände. Im Dunkelmodus heller, damit der Kontrast reicht. |
--sbb-color-warning | peach | peach | Warnungen. |
--sbb-color-success | green | green | Erfolgsmeldungen. |
--sbb-color-brand | red | red | Markenfarbe, etwa für das Logo. |
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-Variable | Standard | Off-Brand | Safety |
|---|---|---|---|
--sbb-color-primary | red | royal | royal |
--sbb-color-primary85 | red85 | royal85 | royal85 |
--sbb-color-primary125 | red125 | royal125 | royal125 |
--sbb-color-primary150 | red150 | royal150 | royal150 |
--sbb-color-brand | red | red | metal |
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).
Hintergründe sind in vier Ebenen gestuft. Ebene 1 ist die Grundfläche, die höheren Ebenen heben sich zunehmend davon ab.
| CSS-Variable | Hell | Dunkel |
|---|---|---|
--sbb-background-color-1 | white | midnight |
--sbb-background-color-2 | white | charcoal |
--sbb-background-color-3 | milk | charcoal |
--sbb-background-color-4 | cloud | iron |
Ebene 1 hat den höchsten Kontrast. Ebene 5 ist in beiden Modi gleich und hat keine Varianten.
| CSS-Variable | Hell | Dunkel |
|---|---|---|
--sbb-color-1 | midnight | white |
--sbb-color-2 | charcoal | white |
--sbb-color-3 | charcoal | milk |
--sbb-color-4 | iron | cloud |
--sbb-color-5 | smoke | smoke |
--sbb-color-6 | anthracite | platinum |
Rahmen verwenden dieselben Grundfarben wie die Texte derselben Ebene.
| CSS-Variable | Hell | Dunkel |
|---|---|---|
--sbb-border-color-1 | midnight | white |
--sbb-border-color-2 | charcoal | white |
--sbb-border-color-3 | charcoal | milk |
--sbb-border-color-4 | iron | cloud |
--sbb-border-color-5 | smoke | smoke |
--sbb-border-color-6 | anthracite | platinum |
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.
| Endung | Hell | Dunkel | Wirkung |
|---|---|---|---|
--sbb-background-color-1 | white | midnight | Normales Farbpaar. |
-negative | midnight | midnight | Immer die dunkle Farbe des Paars, etwa für negative Komponenten. |
-inverted | midnight | white | Helle und dunkle Farbe vertauscht. |
-negative-inverted | white | white | Immer die helle Farbe des Paars. |
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-Variable | Hell | Dunkel |
|---|---|---|
--sbb-shadow-color-soft-1 | ||
--sbb-shadow-color-soft-2 | ||
--sbb-shadow-color-hard-1 | ||
--sbb-shadow-color-hard-2 |
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.
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);
}
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.
| CSS-Variable | Wert |
|---|---|
--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 |
| CSS-Variable | Wert |
|---|---|
--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 |
| CSS-Variable | Wert |
|---|---|
--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 |