Grid Template Rows

GCGiuseppe Crescitelli

Introduzione alle template rows

Le template rows definiscono quante righe ha una grid e come lo spazio verticale viene distribuito tra di esse. In TailwindCSS il controllo delle righe avviene tramite utility class basate sulla proprietà CSS grid-template-rows.

Classi grid-rows-*

Tailwind mette a disposizione classi predefinite per creare griglie con un numero fisso di righe di uguale altezza.

grid-rows-1

Crea una griglia con una sola riga che occupa tutta l’altezza disponibile.

grid-rows-2

Divide lo spazio verticale in due righe di uguale altezza.

grid-rows-3

Divide lo spazio verticale in tre righe uguali.

grid-rows-4

Divide lo spazio verticale in quattro righe uguali.

grid-rows-5

Divide lo spazio verticale in cinque righe uguali.

grid-rows-6

Divide lo spazio verticale in sei righe uguali.

Funzionamento interno delle grid rows

Le classi grid-rows-* utilizzano la funzione CSS repeat combinata con unità flessibili.

Esempio concettuale: grid-rows-3 equivale a: grid-template-rows: repeat(3, minmax(0, 1fr))

Ogni riga cresce o si riduce in base allo spazio verticale disponibile nel contenitore.

grid-rows-none

Rimuove qualsiasi definizione esplicita delle righe.

Utile quando:

  • si vogliono gestire solo le colonne
  • le righe devono adattarsi automaticamente al contenuto

grid-rows-subgrid

Permette a una grid figlia di ereditare la struttura delle righe dalla grid genitore.

Caratteristiche principali:

  • allineamento verticale coerente
  • dipendenza dal supporto CSS subgrid
  • utile per layout complessi e annidati

Righe personalizzate con valori arbitrari

Tailwind consente di definire righe personalizzate usando valori arbitrari.

Esempio: grid-rows-[100px_1fr_2fr]

Risultato:

  • prima riga con altezza fissa di 100px
  • seconda riga flessibile
  • terza riga doppia rispetto alla seconda

Uso di minmax nelle righe

La funzione minmax permette di impostare limiti minimi e massimi per l’altezza delle righe.

Esempio: grid-rows-[minmax(80px,auto)_1fr]

Questo garantisce che la prima riga non sia mai più bassa di 80px ma possa crescere con il contenuto.

Righe automatiche con auto

È possibile combinare valori automatici e flessibili per adattare il layout al contenuto.

Esempio: grid-rows-[auto_1fr_auto]

Configurazione tipica per:

  • header
  • contenuto principale
  • footer

Layout verticali a piena altezza

Le template rows sono fondamentali per creare layout che occupano l’intera altezza dello schermo.

Approccio comune:

  • contenitore con altezza definita
  • righe flessibili con frazioni
  • una riga principale che cresce

Responsive design con template rows

Le classi grid-rows-* supportano i breakpoint responsive di Tailwind.

Approccio tipico:

  • mobile: grid-rows-1
  • tablet: grid-rows-2
  • desktop: grid-rows-3

Questo consente di riorganizzare verticalmente il layout senza media query personalizzate.

Override e priorità delle classi

Quando più classi grid-rows sono applicate allo stesso elemento, prevale:

  • la classe con breakpoint più grande attivo
  • l’ultima classe valida nell’ordine di applicazione

Il sistema è mobile-first.

Differenza tra righe e colonne

Le righe controllano la distribuzione verticale. Le colonne controllano la distribuzione orizzontale. Entrambe lavorano insieme per definire la struttura completa della grid.

Best practice

Usare grid-rows-* per layout verticali prevedibili. Usare auto per righe basate sul contenuto. Preferire minmax per gestire variazioni di altezza. Limitare l’uso di valori arbitrari ai casi complessi. Combinare template rows e height del contenitore per layout stabili.