React
Come strutturare un layout di documentazione
Un layout di documentazione ha tre zone fisse: navigazione a sinistra, contenuto al centro, indice a destra. Regole, comando e numeri del catalogo EneUI.
In sintesi
- Tre zone fisse: sidebar, contenuto, indice della pagina.
- La sidebar regge due livelli; il terzo diventa un indice nel corpo.
- Solo 22 blocchi su 1.556 hanno la categoria sidebar, da 2 fonti su 28.
Un layout di documentazione si struttura in tre zone fisse: navigazione a sinistra, contenuto al centro, indice della pagina a destra. Tutto il resto è dettaglio da aggiungere dopo.
Le tre zone e i loro vincoli
Ogni zona ha una regola che non dipende dal framework. Rispettala e il layout resta leggibile anche quando i contenuti cambiano.
- Sidebar: due livelli al massimo; il terzo livello diventa un indice nella pagina.
- Header: la ricerca e un solo link di uscita.
- Contenuto: una colonna, larghezza massima in caratteri, non in pixel.
- Indice: si aggiorna con lo scorrimento e non copre il testo.
Il comando
npx shadcn@latest add sidebar
Il comando installa il componente sidebar di shadcn/ui, licenza MIT, e scrive i file nel repository insieme alle dipendenze. Da lì la struttura della pagina è tua.
L'esempio concreto: l'albero come dato
La sidebar non è markup, è un array. Un nodo ha titolo, link e figli; il componente disegna due livelli e ignora il resto. Con questa forma, aggiungere una guida costa tre righe e nessun ritocco al CSS.
type Node = { title: string; href: string; children?: Node[] };
export const nav: Node[] = [
{ title: "Per iniziare", href: "/docs", children: [
{ title: "Installazione", href: "/docs/installazione" },
{ title: "Primo progetto", href: "/docs/primo-progetto" },
]},
{ title: "Guide", href: "/docs/guide", children: [
{ title: "Deploy", href: "/docs/guide/deploy" },
{ title: "Errori comuni", href: "/docs/guide/errori" },
]},
];
Il tipo Node vieta il terzo livello per costruzione: children esiste solo sul primo. Se un giorno serve un livello in più, il compilatore chiede di cambiare il tipo, e quella è la discussione da fare invece di annidare accordion.
Il record nel catalogo
Il record sidebar di shadcn/ui mostra file e comando; la categoria sidebar raccoglie i 22 blocchi completi, e la libreria Fumadocs, licenza MIT, è un layout di documentazione nato per i docs.
Contenuti lunghi, schermi piccoli
Su mobile l'indice a destra scende sotto il contenuto o sparisce in un pannello. Il titolo e il primo paragrafo restano in alto: se l'indice occupa il primo schermo, la risposta non si vede.
L'indice a destra è utile solo se resta visibile mentre scorri: position: sticky con un top pari all'altezza dell'header, e nessun max-height che tagli le ultime voci. Su una pagina con più di venti titoli l'indice diventa rumore: accorpa le sezioni prima di allungare la lista.
Un titolo raggiunto da un link interno finisce sotto l'header fisso se non riservi lo spazio: scroll-margin-top sull'elemento, pari all'altezza dell'header più sedici pixel, tiene il titolo visibile. Senza quel margine il lettore clicca una voce dell'indice e arriva a metà del paragrafo precedente.
La regola di decisione
Regola: quando una voce di primo livello supera sette figli, o compare un terzo livello, quella voce diventa una pagina indice con i suoi link. La sidebar resta a due livelli; il resto vive nel contenuto, dove la ricerca lo trova.
L'errore da evitare
Duplicare l'albero in due posti, nella sidebar e nell'indice in fondo alla pagina, senza una fonte sola: i due elenchi divergono entro il secondo mese e il lettore trova una guida nella sidebar che l'indice non nomina. Un array, due componenti, nessuna copia.
La limitazione
Il catalogo offre 22 blocchi sidebar su 1.556, e ognuno presuppone una forma di dati di navigazione diversa: non esiste un formato condiviso. Adattare un blocco a un albero di route reale resta lavoro manuale.
Dove continuare
Le quattro sezioni di una pagina docs sono in blocchi per la documentazione; l'installazione di un blocco è in come aggiungere un blocco shadcn; il confronto tra component library, UI kit e design system è in tre nomi diversi.
Domande frequenti
Quante zone ha un layout di documentazione?
Tre: navigazione, contenuto, indice della pagina. Un header con la ricerca attraversa le tre zone ma non è una quarta colonna.
La sidebar deve stare a sinistra?
Nella maggior parte dei casi sì, perché la lettura parte da sinistra. Su prodotti con più lingue o più prodotti, la scelta della lingua va sopra la navigazione.
Dove metto l'indice della pagina?
A destra su schermi larghi, sotto il contenuto su schermi stretti. Non a sinistra: compete con la navigazione principale.
Serve un framework per la documentazione?
No. Un layout statico con tre zone funziona con qualsiasi generatore; Fumadocs, licenza MIT, è una scelta comoda se usi Next.js.
Come gestisco le pagine molto lunghe?
Spezza in sottopagine con un titolo che risponde a una domanda. Una pagina da quattromila parole non si legge e non si indicizza bene.