From 38e1e0369ff8d3492c14a6ed2025f5db8a67ca5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Gla=CC=88ser?= Date: Sat, 23 May 2026 07:46:59 +0200 Subject: [PATCH] Add distributed three-column text layout pattern --- patterns/text-layouts.html | 17 ++++++++++++++++ semantic-tokens-patterns.html | 11 ++++++++++ styleguide.css | 38 ++++++++++++++++++++++++++++++----- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/patterns/text-layouts.html b/patterns/text-layouts.html index 508df06..74de2dc 100644 --- a/patterns/text-layouts.html +++ b/patterns/text-layouts.html @@ -41,6 +41,23 @@ + +

Pattern: Dreispaltig verteilt

+
+
+
+

+ Linke Spalte linksbündig: Diese Spalte führt den Inhalt mit einer klaren Startkante und eignet sich für einleitende Aussagen oder Kontext, die direkt in den Lesefluss einsteigen sollen. +

+

+ Mittlere Spalte mittelachsig: Diese Spalte zentriert den Text auf der Mittelachse und eignet sich für vergleichende Kernaussagen, die visuell als Schwerpunkt zwischen den Randspalten stehen sollen. +

+

+ Rechte Spalte rechtsbündig: Diese Spalte schließt den Abschnitt mit einer klaren Endkante ab und eignet sich für ergänzende Hinweise oder abschließende Perspektiven im gleichen Inhaltsblock. +

+
+
+
diff --git a/semantic-tokens-patterns.html b/semantic-tokens-patterns.html index 0e86ce4..9530030 100644 --- a/semantic-tokens-patterns.html +++ b/semantic-tokens-patterns.html @@ -75,6 +75,17 @@ surface-card-list-drawercolor-background-purpleFläche des ausziehbaren Card-Listenbereichs. text-card-list-drawercolor-font-darkTextfarbe im ausziehbaren Card-Listenbereich. + +

Text Layouts

+ + + + + + + + +
Semantischer TokenVerwendeter Foundation-TokenBeschreibung Verwendungszweck im Pattern
surface-text-layout-previewcolor-light-greyHintergrundfläche der Vorschau-Segmente im Pattern Text Layouts.
layout-text-layout-column-gapspacing-largeHorizontaler Abstand zwischen Textspalten in zwei- und dreispaltigen Varianten.
layout-text-layout-two-column-columnsrepeat(2, minmax(0, 1fr))Spaltenraster für die zweispaltige Text-Variante.
layout-text-layout-three-column-columnsrepeat(3, minmax(0, 1fr))Spaltenraster für das Pattern Dreispaltig verteilt.
text-align-text-layout-column-leftleftTextausrichtung der linken Spalte im Pattern Dreispaltig verteilt.
text-align-text-layout-column-centercenterTextausrichtung der mittleren Spalte im Pattern Dreispaltig verteilt.
text-align-text-layout-column-rightrightTextausrichtung der rechten Spalte im Pattern Dreispaltig verteilt.
diff --git a/styleguide.css b/styleguide.css index 074f624..43b97ef 100644 --- a/styleguide.css +++ b/styleguide.css @@ -187,6 +187,13 @@ --text-vsf-drawer-object-card-heading: var(--color-font-light); --text-vsf-drawer-object-card-body: var(--color-font-light); --layout-vsf-drawer-object-card-column-gap: var(--spacing-large); + --surface-text-layout-preview: var(--color-light-grey); + --layout-text-layout-column-gap: var(--spacing-large); + --layout-text-layout-two-column-columns: repeat(2, minmax(0, 1fr)); + --layout-text-layout-three-column-columns: repeat(3, minmax(0, 1fr)); + --text-align-text-layout-column-left: left; + --text-align-text-layout-column-center: center; + --text-align-text-layout-column-right: right; /* Typography */ --font-family-base: "Open Sans", sans-serif; @@ -2203,7 +2210,7 @@ section + section { width: 100%; padding: var(--spacing-large); border-radius: var(--radius-card); - background: var(--color-light-grey); + background: var(--surface-text-layout-preview); } .sg-text-layout-pattern__sample { @@ -2225,22 +2232,43 @@ section + section { .sg-text-layout-pattern__two-column { width: 100%; display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - column-gap: var(--spacing-large); + grid-template-columns: var(--layout-text-layout-two-column-columns); + column-gap: var(--layout-text-layout-column-gap); +} + +.sg-text-layout-pattern__three-column-distributed { + width: 100%; + display: grid; + grid-template-columns: var(--layout-text-layout-three-column-columns); + column-gap: var(--layout-text-layout-column-gap); } .sg-text-layout-pattern__column { margin: 0; } +.sg-text-layout-pattern__column--align-left { + text-align: var(--text-align-text-layout-column-left); +} + +.sg-text-layout-pattern__column--align-center { + text-align: var(--text-align-text-layout-column-center); +} + +.sg-text-layout-pattern__column--align-right { + text-align: var(--text-align-text-layout-column-right); +} + @media (max-width: 767px) { .sg-text-layout-pattern__sample--sixty-width, .sg-text-layout-pattern__sample--two-column, - .sg-text-layout-pattern__two-column { + .sg-text-layout-pattern__two-column, + .sg-text-layout-pattern__three-column-distributed { width: 100%; } - .sg-text-layout-pattern__two-column { + .sg-text-layout-pattern__two-column, + .sg-text-layout-pattern__three-column-distributed { grid-template-columns: 1fr; } }