Grid

Ohne columns passt ein Grid so viele Spuren von mindestens min ein, wie der Platz erlaubt, und jede teilt sich den Rest gleichmäßig. Genau das will eine Kartenliste, und es braucht keine Breakpoints: ändere die Größe dieser Seite, und die Demos unten ordnen sich von selbst neu.

Auto-Fit

Der Standard. Spuren sind mindestens 16rem breit.

Routing

Daten laden

Assets

Bilder

Islands

Suche

grid(
  ...['Routing', 'Daten laden', 'Assets', 'Bilder', 'Islands', 'Suche'].map((name) =>
    card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, name))),
  ),
)

Spurbreite

min legt fest, wie schmal eine Spur werden darf, bevor das Raster auf weniger Spalten geht. Kleiner heißt mehr Spalten.

sm

md

lg

xl

2xl

3xl

4xl

5xl

grid({ min: '9rem' },
  ...['sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl'].map((name) =>
    card({ variant: 'flat' }, cardBody(text({ variant: 'small', align: 'center' }, name))),
  ),
)

Eine feste Spaltenzahl

Übergib eine Zahl, wenn die Anzahl sich nicht mit dem Viewport ändern soll. Jede Spur bekommt einen gleichen Anteil.

Eins

Zwei

Drei

grid({ columns: 3 },
  ...['Eins', 'Zwei', 'Drei'].map((name) =>
    card({ variant: 'flat' }, cardBody(text({ variant: 'small', align: 'center' }, name))),
  ),
)

Eine eigene Vorlage

Ein String wird unverändert als grid-template-columns durchgereicht — für eine Aufteilung aus Seitenleiste und Inhalt oder alles andere, was CSS Grid ausdrücken kann.

Seitenleiste

Inhalt, der den Rest der Reihe nimmt.

grid({ columns: '12rem 1fr', gap: 'lg' },
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Seitenleiste'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Inhalt, der den Rest der Reihe nimmt.'))),
)

Abstand und Ausrichtung

Kurz

Eine höhere Karte mit zwei Textzeilen, um zu zeigen, was align mit ihren kürzeren Nachbarn macht.

Kurz

grid({ min: '10rem', gap: 'xl', align: 'center' },
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Kurz'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Eine höhere Karte mit zwei Textzeilen, um zu zeigen, was align mit ihren kürzeren Nachbarn macht.'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Kurz'))),
)

Props

PropTypStandardBeschreibung
columnsnumber | string—Eine feste Spurenzahl oder ein roher grid-template-columns-Wert. Weglassen für Auto-Fit.
minstring'16rem'Mindestbreite einer Spur beim Auto-Fit.
gapSpace'md'Abstand zwischen Spuren und Zeilen.
alignstring'stretch'Jeder align-items-Wert.
asstring'div'Element, das gerendert wird.

Eine Spur wird nie breiter als das Raster selbst, auch wenn min größer ist als der verfügbare Platz — ein Minimum von 16rem erzeugt auf einem 320px-Telefon also keine horizontale Scrollleiste.