# Tailwind vs CSS Modules: dove vive la scala del design

Tailwind genera utility, CSS Modules isola i nomi: il criterio è dove vive la scala. Numeri dei due tag e il test che misura se avete uno o due sistemi.

> Pagina: https://ui.eneawork.it/blog/tailwind-vs-css-modules
> Markdown: https://ui.eneawork.it/blog/tailwind-vs-css-modules.md

*2026-11-01*

Tailwind e CSS Modules non sono alternative: uno genera utility, l’altro isola i fogli di stile. La scelta vera è dove vive la scala di spaziatura e tipografia, e chi la controlla quando il progetto cresce.

Il divario di adozione è netto: al 1 novembre 2026 il tag `tailwind-css` conta 10.551 domande su Stack Overflow e `css-modules` 740, quattordici volte meno. La domanda più votata su CSS Modules, misurata sulla stessa API, ha 273 voti e riguarda TypeScript che non trova il modulo.

## Due problemi, non due soluzioni

Il 1 novembre 2026 la Stack Exchange API, interrogata con `/2.3/tags/tailwind-css;css-modules/info`, riporta 10.551 domande con tag `tailwind-css` e 740 con `css-modules`; la domanda più votata su CSS Modules ha 273 voti. Lo stesso giorno `/api/stats` conta 111.985 componenti e 1.472 librerie, e i profili di catalogo dichiarano 1.468 librerie React su 1.514, con 13 che dichiarano framework CSS.

## Dove finisce il valore

Tailwind mette la scala in un solo posto: spaziatura, tipografia, colori e breakpoint diventano variabili di configurazione. Chi scrive un componente non inventa un `margin`, sceglie un valore della scala. CSS Modules non offre questa garanzia: il nome è locale, il valore è libero.

Con CSS Modules la coerenza dipende dalle convenzioni e dalla review. Un file può definire `padding: 13px` senza che nessuno lo noti. Con Tailwind `p-3` esiste solo se la scala lo prevede, e un valore fuori scala si vede nel markup.

## Il test in un’ora

# quanti fogli CSS Modules ha il progetto rg -n "\.module\.css" src | wc -l # quanto CSS produce Tailwind dopo il tree-shaking npx @tailwindcss/cli -i ./src/app.css -o ./dist/app.css --minify wc -c ./dist/app.css # la scala esiste una volta sola? rg -n -- "--space-|--text-" src/app.css

Il secondo numero va letto insieme al primo: se il CSS generato cresce mentre i fogli CSS Modules restano, avete due sistemi che si sommano. Se il numero resta basso e i fogli calano, la migrazione sta funzionando.

## La combinazione che funziona

Tailwind per layout, spaziatura e stati; CSS Modules per le parti che hanno bisogno di CSS vero: keyframe complessi, gradienti multipli, selettori di stato che le utility rendono illeggibili. Il confine va scelto una volta e scritto, altrimenti ogni sviluppatore decide per sé.

## Il limite da mettere per iscritto

Limite dichiarato di CSS Modules: non porta token né scala. La coerenza resta una convenzione, e la tipizzazione richiede una dichiarazione per `*.module.css` che TypeScript non genera da solo. È il motivo della domanda più votata sul tag: 273 voti per un errore di configurazione, non di stile.

## Licenze e dipendenze

Tailwind è MIT. CSS Modules non è un runtime: è una specifica implementata dal bundler o da `postcss-modules`, quindi non aggiunge una licenza da valutare. In entrambi i casi la decisione riguarda il processo di build, non il contratto legale.

Le utility si esplorano in /components/cat/tailwind, i componenti con CSS dichiarato in /components/cat/css e il modello copy-paste in /components/lib/shadcn. Per il modello delle utility leggi che cos’è Tailwind CSS, per i token come tematizzare shadcn; il confronto tra framework CSS è in Tailwind vs Bootstrap.

## FAQ

### Tailwind sostituisce CSS Modules?

No, risolvono problemi diversi: Tailwind genera utility, CSS Modules isola i nomi di classe. Si possono usare insieme.

### CSS Modules è più leggero di Tailwind?

Dipende dal CSS che scrivi. Tailwind produce solo le classi usate, CSS Modules produce tutto il foglio che hai scritto.

### Perché TypeScript non trova i file .module.css?

Manca una dichiarazione di tipo per `*.module.css`. È la domanda più votata sul tag, con 273 voti.

### Quale dei due gestisce meglio i token?

Nessuno dei due li impone. Tailwind ha una configurazione dove metterli, CSS Modules richiede una convenzione scritta.

### Meglio Tailwind o CSS Modules per un design system?

Tailwind se volete una scala unica e verificabile; CSS Modules se i componenti hanno stili complessi e il team preferisce CSS normale.
