Griglia

Senza columns, una griglia sistema automaticamente quante più tracce larghe almeno min lo spazio consente, e ciascuna si divide equamente ciò che avanza. È il comportamento che vuole un elenco di schede, e non ha bisogno di breakpoint: ridimensiona questa pagina e le demo qui sotto si riorganizzano da sole.

Adattamento automatico

Il comportamento predefinito. Le tracce sono larghe almeno 16rem.

Routing

Caricamento dati

Risorse

Immagini

Island

Ricerca

grid(
  ...['Routing', 'Caricamento dati', 'Risorse', 'Immagini', 'Island', 'Ricerca'].map((name) =>
    card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, name))),
  ),
)

Larghezza delle tracce

min imposta quanto stretta può diventare una traccia prima che la griglia scenda a meno colonne. Più piccola significa più colonne.

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))),
  ),
)

Un numero fisso di colonne

Passa un numero quando il conteggio non deve cambiare con il viewport. Ogni traccia riceve una quota uguale.

Uno

Due

Tre

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

Un template personalizzato

Una stringa viene passata direttamente come grid-template-columns, per una divisione barra laterale-contenuto o qualunque altra cosa la griglia CSS sappia esprimere.

Barra laterale

Contenuto, che si prende il resto della riga.

grid({ columns: '12rem 1fr', gap: 'lg' },
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Barra laterale'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Contenuto, che si prende il resto della riga.'))),
)

Spaziatura e allineamento

Corta

Una scheda più alta, con due righe di testo dentro, per mostrare cosa fa align alle sue vicine più basse.

Corta

grid({ min: '10rem', gap: 'xl', align: 'center' },
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Corta'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Una scheda più alta, con due righe di testo dentro, per mostrare cosa fa align alle sue vicine più basse.'))),
  card({ variant: 'flat' }, cardBody(text({ variant: 'small' }, 'Corta'))),
)

Props

PropTipoPredefinitoDescrizione
columnsnumber | string—Un numero fisso di tracce, oppure un valore grezzo di grid-template-columns. Omettila per l’adattamento automatico.
minstring'16rem'Larghezza minima della traccia nell’adattamento automatico.
gapSpace'md'Spazio fra tracce e righe.
alignstring'stretch'Qualunque valore di align-items.
asstring'div'Elemento da renderizzare.

Una traccia non diventa mai più larga della griglia stessa, nemmeno quando min è più grande dello spazio disponibile — così un minimo di 16rem non provoca una barra di scorrimento orizzontale su un telefono da 320px.