UI library

Come scegliere una libreria UI: cinque criteri misurati

Licenza, dipendenze, stati accessibili, manutenzione e costo di uscita: cinque criteri che puoi verificare oggi, con i comandi e i punti esatti da controllare.

In sintesi

  • La licenza si legge sul singolo record, non sulla home page della libreria.
  • Le stelle misurano l'attenzione, non la manutenzione: guarda date e release.
  • Il costo di uscita dipende dal tipo di installazione: pacchetto npm o codice nel repository.

Una libreria UI si sceglie con cinque criteri verificabili: licenza, dipendenze, stati accessibili, manutenzione e costo di uscita. La popolarità non è uno di questi criteri.

1. Licenza: leggi il record, non la home page

La licenza decide se puoi spedire il componente in un prodotto chiuso. shadcn/ui, MUI, Mantine, Radix UI e Base UI dichiarano tutti MIT nel file LICENSE del repository. Verifica la licenza del singolo record, perché un catalogo può mescolare MIT, Apache-2.0 e licenze custom. Fonte: file LICENSE dei rispettivi repository, letti il 1 novembre 2026.

npm view @mui/material version license dist.unpackedSize

Il comando stampa versione, licenza e dimensione del pacchetto non compresso. Non è la dimensione nel bundle, ma è un primo filtro confrontabile tra candidati.

2. Dipendenze: quante cose installi per un bottone

Apri il package.json della libreria e conta le dipendenze dirette. Una primitiva headless con due dipendenze è più facile da sostituire di un framework con venti. Controlla anche i peer: un peer su una major di React non ancora supportata dal tuo progetto blocca l'aggiornamento prima ancora del codice.

3. Stati accessibili: la preview non basta

Prova da tastiera: Tab raggiunge il controllo, il focus è visibile, Invio attiva, Esc chiude. Poi cerca gli stati disabled, loading ed errore nel codice, non solo nella preview. La checklist in 12 punti è in componenti React accessibili.

4. Manutenzione: date, non stelle

Guarda l'ultima release, la data dell'ultimo commit e quante issue sono state chiuse negli ultimi 90 giorni. Le stelle misurano l'attenzione, non la manutenzione. Fonte: pagina Releases e cronologia del repository, letta il 1 novembre 2026.

5. Costo di uscita: il codice è tuo o resta nel pacchetto?

Una libreria npm resta una dipendenza: aggiorni con un comando, ma se cambia API devi adattarti. Un componente copiato da un registry vive nel tuo repository: lo modifichi, ma gli aggiornamenti diventano un diff manuale. Il confronto tra i due approcci è in copy-paste o headless.

I cinque criteri in una tabella

CriterioDomandaDove verificarloSegnale di allarme
LicenzaPosso spedirlo in un prodotto chiuso?File LICENSE del repository e campo license su npmLicenza custom o assente
DipendenzeQuante cose installo per un bottone?package.json e output di npm viewPeer che bloccano l'aggiornamento
StatiFocus, disabled, loading ed errore esistono?Preview, codice e tastieraSolo il caso normale nel codice
ManutenzioneQuando è uscita l'ultima release?Releases e cronologia del repositoryUltimo commit oltre 12 mesi
UscitaIl codice resta mio se cambio libreria?Tipo di installazione: npm o registryAPI chiusa e nessuna migrazione

EneUI conta i record, non la qualità. Una libreria con 5.000 componenti può avere focus ring assenti e nomi incoerenti; il catalogo non lo sa. Usa i numeri per restringere la lista, non per chiudere la decisione.

Dove continuare

Per il vocabolario leggi UI kit, component library o design system; il confronto misurato è in librerie React 2026. Nel catalogo puoi partire dai 111.985 componenti, aprire un record come Keyline e confrontare una categoria come chart.

Domande frequenti

Qual è il criterio più importante?

La licenza viene prima: se non puoi usare il codice in produzione, gli altri quattro criteri non contano. Subito dopo viene il costo di uscita, perché è l'unico che paghi quando la libreria cambia.

Le stelle GitHub contano nella scelta?

No. Le stelle misurano l'attenzione, non la manutenzione. Guarda la data dell'ultima release e il ritmo di chiusura delle issue.

Meglio componenti pronti o primitive headless?

Se devi spedire una schermata entro una settimana, i componenti pronti fanno risparmiare tempo. Se il design system è il prodotto, le primitive headless lasciano il controllo su markup e stile, ma richiedono più lavoro.

Come verifico l'accessibilità in dieci minuti?

Naviga la pagina con Tab e Maiusc+Tab: il focus deve essere visibile e nell'ordine giusto. Poi apri il codice e cerca disabled, aria-invalid, role e gestione di Esc. Se manca uno di questi stati, la preview non basta.

Una libreria con 10.000 componenti è migliore di una con 50?

No. Il numero misura la copertura del catalogo, non la coerenza. Una libreria piccola con API stabile e stati completi costa meno di una grande che devi ripulire.