Il contenuto delle pagine in ShadowUI si organizza tramite un sistema di griglia responsive e card.
Sistema Grid #
ShadowUI utilizza un sistema di griglia a 12 colonne simile a Bootstrap, con breakpoint responsive.
Un esempio di griglia si puรฒ trovare nel progetto ShadowUI Design Patterns di cui vediamo un’immagine di seguito

Componenti grid #
ShaGrid: Contenitore principale
ShaRow: Riga che contiene colonne
ShaCol: Colonna responsive
ShaGrid #
Contenitore con padding e margini gestiti.
Proprietร :
- style: Stili personalizzati
- className: Classi CSS
ShaRow #
Contenitore orizzontale per colonne.
Proprietร :
| Proprietร | Tipo | Descrizione |
|---|---|---|
| noWrap | boolean | Impedisce wrap delle colonne (default: false) |
| justifyContent | enum | Allineamento orizzontale: start, center, end, around, between |
| alignItems | enum | Allineamento verticale: start, center, end, stretch, baseline |
| className | string | Classi CSS personalizzate |
ShaCol #
Colonna responsive con breakpoint.
Proprietร breakpoint:
| Breakpoint | Dimensione | Proprietร |
|---|---|---|
| xs | < 576px | xs |
| sm | โฅ 576px | sm |
| md | โฅ 768px | md |
| lg | โฅ 992px | lg |
| xl | โฅ 1200px | xl |
| xxl | โฅ 1400px | xxl |
Valori colonne:
- auto: Larghezza automatica
- fluid: Occupa spazio disponibile
- 1 a 12: Numero colonne (1/12 a 12/12)
- none: Nasconde la colonna
Esempio:
ShaRow
โโโ ShaCol
โ xs: "12" // 100% su mobile
โ md: "6" // 50% su tablet
โ lg: "4" // 33% su desktop
โ
โโโ ShaCol
โ xs: "12"
โ md: "6"
โ lg: "4"
โ
โโโ ShaCol
xs: "12"
md: "12"
lg: "4"
Layout comuni #
1. Layout a 2 colonne (50/50): #
ShaGrid
โโโ ShaRow
โโโ ShaCol (xs="12", md="6")
โ โโโ contenuto sinistra
โ
โโโ ShaCol (xs="12", md="6")
โโโ contenuto destra
2. Layout sidebar + content (33/66): #
ShaGrid
โโโ ShaRow
โโโ ShaCol (xs="12", lg="4")
โ โโโ sidebar/menu
โ
โโโ ShaCol (xs="12", lg="8")
โโโ contenuto principale
3. Layout 3 colonne uguali: #
ShaGrid
โโโ ShaRow
โโโ ShaCol (xs="12", md="6", lg="4")
โโโ ShaCol (xs="12", md="6", lg="4")
โโโ ShaCol (xs="12", md="12", lg="4")
4. Layout dashboard con card: #
ShaGrid
โโโ ShaRow
โโโ ShaCol (xs="12", sm="6", lg="3")
โ โโโ ShaCard (Metric 1)
โ
โโโ ShaCol (xs="12", sm="6", lg="3")
โ โโโ ShaCard (Metric 2)
โ
โโโ ShaCol (xs="12", sm="6", lg="3")
โ โโโ ShaCard (Metric 3)
โ
โโโ ShaCol (xs="12", sm="6", lg="3")
โโโ ShaCard (Metric 4)
Card (ShaCard) #
Le card sono contenitori per raggruppare contenuti correlati.

Struttura ShaCard #
ShaCard
โโโ ShaCardHeader (opzionale)
โโโ ShaCardContent (obbligatorio)
โโโ ShaCardFooter (opzionale)
ShaCard #
Contenitore principale.
Proprietร :
- className: Classi CSS (es. โshadow-lgโ, โborder-2โ)
- style: Stili inline
ShaCardHeader #
Intestazione della card.
Proprietร :
| Proprietร | Tipo | Descrizione |
|---|---|---|
| title | string | Titolo principale |
| description | string | Sottotitolo/descrizione |
| className | string | Classi CSS personalizzate |
Esempio:
ShaCardHeader
title: "Dettagli Progetto"
description: "Informazioni generali del progetto"
ShaCardContent #
Contenuto principale della card.
Puรฒ contenere qualsiasi elemento: form, tabelle, liste, grafici, etc.
ShaCardFooter #
Sezione footer con azioni o informazioni aggiuntive.
Uso tipico:
- Pulsanti che svolgono azioni (Salva, Annulla, Elimina)
- Timestamp (Ultima modifica, Creato ilโฆ)
- Link secondari
Pattern Card comuni #
1. Card informazioni: #
ShaCard
โโโ ShaCardHeader
โ title: "Informazioni Utente"
โ
โโโ ShaCardContent
โ โโโ ShaLabel (Nome)
โ โโโ ShaLabel (Email)
โ โโโ ShaLabel (Ruolo)
โ
โโโ ShaCardFooter
โโโ ShaButton (Modifica)
2. Card form: #
ShaCard
โโโ ShaCardHeader
โ title: "Nuovo Progetto"
โ description: "Compila i campi per creare un nuovo progetto"
โ
โโโ ShaCardContent
โ โโโ ShaInput (Nome)
โ โโโ ShaInput (Descrizione)
โ โโโ ShaSelect (Categoria)
โ
โโโ ShaCardFooter
โโโ ShaButton (Salva - default)
โโโ ShaButton (Annulla - outline)
3. Card dashboard con metrica: #
ShaCard
โโโ ShaCardHeader
โ title: "Vendite Totali"
โ
โโโ ShaCardContent
โโโ ShaLabel (โฌ 145,000 - size: "xxl")
โโโ ShaLabel (+12% rispetto al mese scorso - muted)
4. Card lista dinamica con DataMap: #
ShaCard
โโโ ShaCardHeader
โ title: "Progetti Attivi"
โ action: ShaButton (+ Nuovo)
โ
โโโ ShaCardContent
โ โโโ projectRow (template: projectsDM)
โ โโโ ShaLabel (ยงname)
โ โโโ ShaBadge (ยงstatus)
โ โโโ ShaButton (Apri - ghost)
โ
โโโ ShaCardFooter
โโโ ShaLabel (Totale: ยงprojectsDM.rows.length progetti)
5. Card nidificate: #
ShaCard (contenitore principale)
โโโ ShaCardContent
โโโ ShaCard (sezione 1)
โ โโโ contenuto 1
โ
โโโ ShaCard (sezione 2)
โโโ contenuto 2
6. Card con grafico: #
ShaCard
โโโ ShaCardHeader
โ title: "Andamento Vendite"
โ
โโโ ShaCardContent
โ โโโ ShaChart
โ type: "line"
โ data: salesData
โ
โโโ ShaCardFooter
โโโ ShaButton (Esporta dati)
Layout completo esempio #
Pagina dettaglio progetto:
ShaPage
โโโ ShaGrid
โโโ ShaRow (Header con azioni)
โ โโโ ShaCol
โ โโโ ShaLabel (Titolo progetto - xxl)
โ โโโ ShaRow (Pulsanti)
โ
โโโ ShaRow (Contenuto principale)
โ โโโ ShaCol (xs="12", lg="8")
โ โ โโโ ShaCard (Informazioni)
โ โ โโโ ShaCard (Descrizione)
โ โ โโโ ShaCard (Team)
โ โ
โ โโโ ShaCol (xs="12", lg="4")
โ โโโ ShaCard (Stato)
โ โโโ ShaCard (Date)
โ โโโ ShaCard (Tag)
โ
โโโ ShaRow (Footer)
โโโ ShaCol
โโโ ShaCard (Storico attivitร )
Best Practices #
- Mobile-first: Inizia sempre con xs=”12″ per mobile
- Breakpoint progressivi: Definisci layout per ogni dimensione
xs=”12″ // Mobile: 100%
md=”6″ // Tablet: 50%
lg=”4″ // Desktop: 33% - Card coerenti: Mantieni stile uniforme tra card
- Spazi consistenti: Usa classi gap per spacing
ShaRow
className: “gap-4” // 1rem di spazio tra colonne - Padding card: Usa ShaCardContent per padding automatico
- Card max-width: Limita larghezza card per leggibilitร
ShaCard
className: “max-w-2xl mx-auto”