Zum Hauptinhalt springen
Version: 2.1.1

Typografie

Typografie ist ein zentrales Gestaltungselement im KERN Design-System. Sie legt die Grundlage für eine klare visuelle Hierarchie, gute Lesbarkeit und eine einheitliche Gestaltung in digitalen Verwaltungsanwendungen und öffentlichen Online-Diensten. Unsere Typografie-Skala stellt sicher, dass Text systematisch, zugänglich und konsistent eingesetzt wird – über alle Anwendungsteile hinweg.

Typografieskala

Die Typografie-Skala bildet die Grundlage für einheitliche Schriftgrößen, mit denen Überschriften, Fließtext und weitere Textelemente gestaltet werden. Sie trägt zur Konsistenz und besseren Orientierung bei – besonders in responsiven Anwendungen.
Im Frontend wird mit der relativen Einheit rem gearbeitet, um Schriftgrößen und Zeilenabstände barrierefrei skalieren zu können. Zur besseren Lesbarkeit zeigt die folgende Tabelle zusätzlich die zugehörigen Pixelwerte – alle weiteren Angaben im Dokument erfolgen aus Gründen der Übersichtlichkeit in Pixel (px).

Wert in pxEntspricht in rem
80px5rem
72px4.5rem
56px3.5rem
48px3rem
40px2.5rem
32px2rem
26px1.625rem
24px1.5rem
21px1.3125rem
20px1.25rem
18px1.125rem
16px1rem

Semantische Token

Um eine konsistente und zugängliche Typografie im gesamten System zu gewährleisten, verwendet das KERN Design-System semantische Token. Sie beschreiben nicht nur konkrete Werte wie Schriftgröße oder Zeilenhöhe, sondern auch den funktionalen Zweck eines Textstils – unabhängig von Ausgabemedium oder Gestaltungslösung.
Die Benennung folgt dabei dem allgemeinen Prinzip, das im Abschnitt Design-Token beschrieben ist. Für die Typografie gelten spezifische Benennungen, die auf ihre jeweiligen Anwendungsbereiche abgestimmt sind – sie werden im Folgenden genauer beschrieben.

Schriftfamilie

Für die Schrift im KERN Design-System fiel die Wahl auf die Fira Sans. Sie ist gut geeignet für barrierefreie Gestaltung, da sie leicht lesbar ist. Außerdem deckt sie sämtliche Zeichen und Sprachen ab. Die Fira Sans ist frei verfügbar und wird von Google über Google Fonts gehostet.

TokenWert
--kern-typography-font-family-defaultFira Sans

Schriftgrößen

Die Schriftgrößen im KERN Design-System sind semantisch benannt und jeweils für kleinere und größere Bildschirmgrößen definiert. Die Skalierung sorgt dafür, dass Texte auf allen Geräten gut lesbar bleiben. Jeder Wert ist mit einem passenden Zeilenabstand gekoppelt, um ein stimmiges, responsives Gesamtbild zu erzeugen.

TokenMobile / Desktop
--kern-typography-font-size-adaptive-2x-large48px / 72px
--kern-typography-font-size-adaptive-x-large32px / 48px
--kern-typography-font-size-adaptive-large26px / 32px
--kern-typography-font-size-adaptive-medium21px / 24px
--kern-typography-font-size-static-large21px / 21px
--kern-typography-font-size-static-medium18px / 18px
--kern-typography-font-size-static-small16px / 16px

Zeilenabstände

Der Zeilenabstand definiert den vertikalen Raum zwischen zwei Textzeilen und ist ein zentrales Element für Lesbarkeit, Rhythmus und visuelle Ausgewogenheit. Die Werte sind ein Vielfaches von 8 Pixeln und fügen sich dadurch nahtlos in das 8-Punkte-Raster ein. Das sorgt für einen konsistenten vertikalen Rhythmus, der das Lesen erleichtert und das Layout visuell ausbalanciert.

TokenMobile / Desktop
--kern-typography-line-height-adaptive-2x-large456px / 80px
--kern-typography-line-height-adaptive-x-large40px / 56px
--kern-typography-line-height-adaptive-large32px / 40px
--kern-typography-line-height-static-large32px / 32px
--kern-typography-line-height-static-medium24px / 24px

Schriftschnitte

Der Schriftschnitt legt die Stärke bzw. Dicke der Schrift fest. Er beeinflusst sowohl die visuelle Hierarchie als auch die Lesbarkeit eines Textes. Diese Gewichtungen können gezielt eingesetzt werden, um Inhalte zu betonen oder Sektionen zu strukturieren. Alle Schriftschnitte basieren auf der Fira Sans und sind so abgestimmt, dass sie auch bei kleinen Schriftgrößen gut lesbar und kontrastreich bleiben.

TokenWert
--kern-typography-font-weight-regular400
--kern-typography-font-weight-medium500
--kern-typography-font-weight-semi-bold600

Composite Token

Ein Composite Token ist ein zusammengesetzter Token, der mehrere untergeordnete Werte bündelt – etwa Schriftfamilie, Schriftgröße, Zeilenhöhe und Gewicht. Solche Token sind besonders nützlich für Stileigenschaften, die stets gemeinsam verwendet werden und eine gestalterische Einheit bilden. Sie verbinden visuelle Eigenschaften mit ihrer funktionalen Bedeutung im Design. Dadurch lassen sich Textstile systematisch anwenden, pflegen und skalieren – unabhängig von konkreten Werten oder Ausgabemedien.
Die Composite Token bilden die Brücke zwischen funktionaler Typografie und konkretem Design – sie stellen sicher, dass alle Komponenten konsistent und barrierefrei gestaltet sind.
Mit Hilfe der baseline-Token wird sichergestellt, dass Textkomponenten innerhalb derselben Größenstufe (z. B. default, small oder large) direkt untereinander platziert werden können. Sie definieren typografische Abstände in den Textstilen und richten sie am 8-Punkte-Raster aus. So entsteht ein harmonischer vertikaler Rhythmus – ganz ohne zusätzlichen Konfigurationsaufwand.

Hinweis

Textrollen: Im KERN Design-System sind Textstile nicht nur optisch, sondern auch semantisch getrennt. Eine ausführliche Beschreibung der Rollen – Heading, Title, Preline, Subline, Label und Body – findest du im Bereich der Textkomponenten.

CompositeToken
heading-display
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-2x-large
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-adaptive-2x-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-heading-display-padding-top
  • --kern-metric-baseline-heading-display-padding-bottom
heading-x-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-x-large
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-adaptive-x-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-heading-x-large-padding-top
  • --kern-metric-baseline-heading-x-large-padding-bottom
heading-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-large
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-adaptive-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-heading-large-padding-top
  • --kern-metric-baseline-heading-large-padding-bottom
heading-medium
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-medium
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-heading-medium-padding-top
  • --kern-metric-baseline-heading-medium-padding-bottom
heading-small
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-heading-small-padding-top
  • --kern-metric-baseline-heading-small-padding-bottom
title-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-large
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-adaptive-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-title-large-padding-top
  • --kern-metric-baseline-title-large-padding-bottom
title-medium
  • --kern-typography-font-family-default
  • --kern-typography-font-size-adaptive-medium
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-title-default-padding-top
  • --kern-metric-baseline-title-default-padding-bottom
title-small
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-title-small-padding-top
  • --kern-metric-baseline-title-small-padding-bottom
preline-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-large
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-preline-large-padding-top
  • --kern-metric-baseline-preline-large-padding-bottom
preline-default
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-preline-default-padding-top
  • --kern-metric-baseline-preline-default-padding-bottom
preline-small
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-small
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-preline-small-padding-top
  • --kern-metric-baseline-preline-small-padding-bottom
subline-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-large
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-subline-large-padding-top
  • --kern-metric-baseline-subline-large-padding-bottom
subline-default
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-subline-default-padding-top
  • --kern-metric-baseline-subline-default-padding-bottom
subline-small
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-small
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-muted
  • --kern-metric-baseline-subline-small-padding-top
  • --kern-metric-baseline-subline-small-padding-bottom
label-large
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-large
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-label-large-padding-top
  • --kern-metric-baseline-label-large-padding-bottom
label-default
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-label-default-padding-top
  • --kern-metric-baseline-label-default-padding-bottom
label-small
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-small
  • --kern-typography-font-weight-medium
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-label-small-padding-top
  • --kern-metric-baseline-label-small-padding-bottom
body-large regular
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-large
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-large-padding-top
  • --kern-metric-baseline-body-large-padding-bottom
body-large bold
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-large
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-large
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-large-padding-top
  • --kern-metric-baseline-body-large-padding-bottom
body-default regular
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-default-padding-top
  • --kern-metric-baseline-body-default-padding-bottom
body-default bold
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-medium
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-default-padding-top
  • --kern-metric-baseline-body-default-padding-bottom
body-small regular
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-small
  • --kern-typography-font-weight-regular
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-small-padding-top
  • --kern-metric-baseline-body-small-padding-bottom
body-small bold
  • --kern-typography-font-family-default
  • --kern-typography-font-size-static-small
  • --kern-typography-font-weight-semi-bold
  • --kern-typography-line-height-static-medium
  • --kern-color-layout-text-default
  • --kern-metric-baseline-body-small-padding-top
  • --kern-metric-baseline-body-small-padding-bottom