Grid Template Columns

GCGiuseppe Crescitelli

Introduzione alle template columns

Le template columns definiscono quante colonne ha una grid e come lo spazio orizzontale viene distribuito tra di esse. In TailwindCSS questa configurazione avviene tramite utility class basate sulla proprietà CSS grid-template-columns.

Classi grid-cols-*

Tailwind fornisce una serie di classi predefinite per creare griglie con un numero fisso di colonne uguali.

grid-cols-1

Crea una griglia con una sola colonna che occupa tutto lo spazio disponibile.

grid-cols-2

Divide lo spazio in due colonne di uguale larghezza.

grid-cols-3

Divide lo spazio in tre colonne uguali.

grid-cols-4

Divide lo spazio in quattro colonne uguali.

grid-cols-5

Divide lo spazio in cinque colonne uguali.

grid-cols-6

Divide lo spazio in sei colonne uguali.

grid-cols-7

Divide lo spazio in sette colonne uguali.

grid-cols-8

Divide lo spazio in otto colonne uguali.

grid-cols-9

Divide lo spazio in nove colonne uguali.

grid-cols-10

Divide lo spazio in dieci colonne uguali.

grid-cols-11

Divide lo spazio in undici colonne uguali.

grid-cols-12

Divide lo spazio in dodici colonne uguali, configurazione molto comune nei layout complessi.

Come funzionano internamente

Le classi grid-cols-* utilizzano la funzione CSS repeat con frazioni flessibili.

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

Ogni colonna ha larghezza flessibile e si adatta allo spazio disponibile.

grid-cols-none

Disabilita la definizione delle colonne. La griglia non ha una struttura di colonne esplicita.

Utile quando si vuole controllare completamente il layout con altre proprietà o override responsive.

grid-cols-subgrid

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

Questa classe sfrutta la feature CSS subgrid, supportata solo nei browser moderni.

Uso tipico:

  • Layout complessi annidati
  • Allineamento preciso tra grid padre e figlia

Colonne personalizzate con valori arbitrari

Tailwind consente di definire template columns personalizzate usando valori arbitrari.

Esempio: grid-cols-[200px_1fr_2fr]

Questo crea tre colonne:

  • prima colonna fissa di 200px
  • seconda colonna flessibile
  • terza colonna doppia rispetto alla seconda

Uso di minmax

È possibile usare minmax per controllare dimensioni minime e massime delle colonne.

Esempio: grid-cols-[minmax(150px,1fr)_2fr]

Questo garantisce che la prima colonna non scenda sotto i 150px.

Auto-fit e auto-fill

Le template columns possono sfruttare auto-fit e auto-fill per layout responsivi avanzati.

Esempio: grid-cols-[repeat(auto-fit,minmax(200px,1fr))]

Questo crea:

  • colonne automatiche
  • larghezza minima di 200px
  • adattamento automatico allo spazio disponibile

Differenza tra auto-fit e auto-fill

auto-fit:

  • le colonne vuote collassano
  • gli elementi occupano più spazio

auto-fill:

  • le colonne vuote rimangono
  • lo spazio resta distribuito in modo costante

Responsive design con template columns

Le classi grid-cols-* possono essere combinate con breakpoint responsive.

Esempio concettuale:

  • mobile: grid-cols-1
  • tablet: grid-cols-2
  • desktop: grid-cols-4

Questo approccio permette layout progressivi senza media query manuali.

Override e ordine delle classi

Quando più classi grid-cols sono presenti, vince l’ultima in ordine di specificità e breakpoint.

Regola fondamentale:

  • mobile-first
  • i breakpoint più grandi sovrascrivono quelli più piccoli

Best practice

Usare grid-cols-* per layout semplici e regolari. Usare valori arbitrari solo quando necessario. Preferire auto-fit con minmax per griglie fluide e responsive. Limitare l’uso di subgrid a casi in cui l’allineamento è critico. Evitare un numero eccessivo di colonne su schermi piccoli.

Coding Labs