@@ -136,7 +144,6 @@
| layout-pulldown-panel-form-mobile-width | 90% | Zielbreite für Pulldown-Panels mit Formularinhalt auf Mobile; wird durch die Viewport-Kappe begrenzt. |
| layer-pulldown-panel | dimension-layer-pulldown-panel | Layer-Stufe geöffneter Pulldown-Ausklappfelder über übrigen Seiteninhalten. |
| layout-multiselect-pulldown-panel-desktop-width | dimension-multiselect-pulldown-panel-desktop-width | Semantische Obergrenze für die Panelbreite geöffneter Pulldowns; das Panel darf über Triggerbreite wachsen, bleibt aber durch diese Breite und die Viewport-Kappe begrenzt. |
- | layout-multiselect-pulldown-panel-mobile-width | dimension-multiselect-pulldown-panel-mobile-width | Reservierter semantischer Alias für feste Mobile-Breite im Multiselektions-Pulldown; aktuell nicht aktiv genutzt, da das Panel inhaltsbasiert mit Viewport-Kappe skaliert. |
| surface-menu-panel-portal | color-light-grey | Fläche des Sandwich-Menü-Panels für große und kleine Variante. |
| text-menu-link-portal | color-font-dark | Linktextfarbe im Sandwich-Menü für große und kleine Variante. |
| text-activatable-remove | text-control-default | Zeichenfarbe des Schließen-Kontrollfelds für aktive Filterzeilen innerhalb geöffneter Pulldown-Panel-Formbereiche. |
diff --git a/styleguide.css b/styleguide.css
index 66b3a38..59d91fc 100644
--- a/styleguide.css
+++ b/styleguide.css
@@ -2,6 +2,7 @@
@import "./styles/02-base.css";
@import "./styles/03-typography-helpers.css";
@import "./styles/10-components-interactive-elements.css";
+@import "./styles/11-components-gridfield.css";
@import "./styles/20-patterns-portal-header.css";
@import "./styles/21-patterns-options-row.css";
@import "./styles/22-patterns-object-card.css";
diff --git a/styles/01-foundations.css b/styles/01-foundations.css
index aff2570..05089f9 100644
--- a/styles/01-foundations.css
+++ b/styles/01-foundations.css
@@ -77,11 +77,14 @@
--layout-pulldown-panel-form-mobile-width: 90%;
--layer-pulldown-panel: var(--dimension-layer-pulldown-panel);
--layout-multiselect-pulldown-panel-desktop-width: var(--dimension-multiselect-pulldown-panel-desktop-width);
- --layout-multiselect-pulldown-panel-mobile-width: var(--dimension-multiselect-pulldown-panel-mobile-width);
--layout-multiselect-pulldown-label-column-width-fallback: max-content;
--layout-input-label-width: var(--dimension-input-label-width);
--layout-input-field-desktop-width: var(--dimension-input-field-desktop-width);
--layout-input-field-max-width: var(--dimension-input-field-max-width);
+ --layout-gridfield-label-column-width: var(--layout-input-label-width);
+ --layout-gridfield-column-gap: var(--spacing-small);
+ --layout-gridfield-row-gap: var(--spacing-small);
+ --layout-gridfield-field-max-width: var(--layout-input-field-max-width);
--layout-form-input-field-max-width: calc(var(--layout-input-field-max-width) + 100px);
--layout-search-field-width: var(--dimension-search-field-width);
--layout-mode-toggle-local-height: var(--compact-interaction-height);
@@ -277,7 +280,6 @@
--dimension-search-field-width: 15.3rem;
--dimension-layer-pulldown-panel: 40;
--dimension-multiselect-pulldown-panel-desktop-width: 500px;
- --dimension-multiselect-pulldown-panel-mobile-width: 80vw;
--dimension-options-row-mode-toggle-width: 7rem;
--dimension-options-row-help-panel-width: 16rem;
--dimension-card-list-drawer-width: 40%;
diff --git a/styles/11-components-gridfield.css b/styles/11-components-gridfield.css
new file mode 100644
index 0000000..1486693
--- /dev/null
+++ b/styles/11-components-gridfield.css
@@ -0,0 +1,52 @@
+/* ========================================================= */
+/* Components: Gridfield */
+/* ========================================================= */
+
+ .sg-gridfield-demo {
+ display: inline-flex;
+ flex-direction: column;
+ gap: var(--spacing-small);
+ width: fit-content;
+ padding: var(--spacing-large);
+ border-radius: var(--radius-card);
+ background: var(--surface-form-preview);
+ }
+
+ .sg-gridfield-row {
+ display: grid;
+ grid-template-columns: var(--layout-gridfield-label-column-width) minmax(0, 1fr);
+ column-gap: var(--layout-gridfield-column-gap);
+ align-items: center;
+ width: 100%;
+ max-width: var(--layout-gridfield-field-max-width);
+ }
+
+ .sg-gridfield-row .sg-label {
+ min-width: 0;
+ margin: 0;
+ line-height: 1;
+ color: var(--text-control-default);
+ }
+
+ .sg-gridfield-row .sg-interaction-element,
+ .sg-gridfield-row .sg-pulldown-demo,
+ .sg-gridfield-row .sg-pulldown {
+ width: 100%;
+ min-width: 0;
+ max-width: 100%;
+ }
+
+ @media (max-width: 48rem) {
+ .sg-gridfield-demo {
+ width: 100%;
+ max-width: 100%;
+ box-sizing: border-box;
+ }
+
+ .sg-gridfield-row {
+ grid-template-columns: 1fr;
+ row-gap: var(--layout-gridfield-row-gap);
+ align-items: start;
+ max-width: 100%;
+ }
+ }