Minificatore CSS

Un file CSS minificato si carica notevolmente più velocemente del suo gemello ben formattato, e la differenza si accumula ad ogni caricamento della pagina. Questo minificatore rimuove spazi bianchi e commenti e i punti e virgola finali, senza cambiare la cascata o l’effetto di alcuna regola. L’output è sempre un CSS valido che i browser interpretano in modo identico all’originale.

Come minificare il CSS

  1. 1

    Incolla il CSS

    Qualsiasi CSS, scritto a mano, compilato da Sass, blocchi di stile inline.

  2. 2

    Minifica

    Premi "Minify CSS" per rimuovere commenti, spazi bianchi e punti e virgola finali in un solo passaggio.

  3. 3

    Controlla i risparmi

    I risparmi in byte sono mostrati accanto all'output compresso.

  4. 4

    Copia il risultato

    Copia il CSS minificato nel tuo pacchetto di produzione o salvalo come `.min.css`.

Cosa fa il minificatore

Trasformazioni (non cambiano il comportamento):

  • Rimuovi commenti (tutti, compresi i blocchi /*! di licenza).
  • Rimuovi spazi bianchi non necessari (tra selettori, dichiarazioni, parentesi graffe).
  • Rimuovi punti e virgola finali prima delle parentesi graffe di chiusura.
  • Riduci le regole multi-linea a una sola linea.

È tutto quello che fa, ed è per questo che l’output si comporta esattamente come l’originale: ogni selettore, proprietà e valore resta come l’hai scritto.

Risparmi tipici

Sorgente Dimensione originale Dimensione minificata Risparmi
CSS scritto a mano ben formattato 20 KB 12 KB 40%
Compilato da Sass, modalità sviluppo 45 KB 25 KB 44%
Già minificato + gzip 10 KB 10 KB 0%

Oltre alla minificazione, la compressione gzip sul server aggiunge un ulteriore risparmio del 60-80% perché il CSS è altamente ridondante. I due si sommano; fai sempre entrambi.

Cosa non fa la minificazione

  • Rimuovi CSS non utilizzato. Questo è territorio di tree-shaking / PurgeCSS, che richiede di analizzare il tuo HTML o i componenti.
  • Accorcia i colori esadecimali, riduce le unità zero o unisce le dichiarazioni. Quelle trasformazioni aggressive sono compito di cssnano, esbuild o Lightning CSS, non di questo strumento.
  • Fondi selettori duplicati in uno. Rischioso perché l’ordine sorgente influisce sulla cascata; alcuni minificatori ci provano, la maggior parte lo salta.
  • Rinomina classi. Questo è CSS-in-JS o CSS Modules, non minificazione.
  • Includi CSS critico inline. Questo è un passaggio separato durante la build.

Preservare i commenti di licenza

Molti minificatori preservano i commenti che iniziano con /*!, utilizzati per le intestazioni di licenza:

/*! Bootstrap v5.3 · MIT License · https://github.com/twbs/bootstrap */

Questo strumento rimuove tutti i commenti. Se il tuo CSS contiene intestazioni di licenza, aggiungile di nuovo dopo la minificazione oppure usa uno strumento di build con opzione di conservazione delle licenze, come cssnano o esbuild.

Mappe sorgente

Per il debug in produzione, gli strumenti di build generano una mappa sorgente insieme all’output minificato:

styles.min.css
styles.min.css.map

DevTools può leggere la mappa e mostrarti i numeri di riga originali ben formattati quando ispezioni un elemento. Questo strumento non genera mappe sorgente.

Minificazione CSS in una pipeline di build

  • Vite, Webpack, Parcel: gestiscono questo automaticamente nelle build di produzione.
  • PostCSS con cssnano: il minificatore stand-alone standard.
  • esbuild: include anche la minificazione CSS.
  • preset cssnano: default per trasformazioni sicure, advanced per aggressive (con alcuni compromessi).

Questo strumento è per minificazioni una tantum, correzioni rapide e per imparare cosa fanno effettivamente i minificatori. Per un flusso di lavoro di produzione, utilizza uno strumento di build in modo che la tua sorgente rimanga leggibile e solo l’output sia minificato.

Quando la minificazione può rompere il tuo CSS

Raro ma possibile:

  • Selettori sensibili agli spazi bianchi: .foo .bar vs. .foo.bar, lo spazio conta.
  • Valori di proprietà personalizzati con spazi: --shadow: 0 2px 4px rgba(0,0,0,0.1), le virgole all’interno di rgba() non devono essere rimosse.
  • Commenti di blocco non chiusi: /* mancante chiusura mangia tutto dopo di esso. I minificatori possono comportarsi male su input malformati.

La soluzione: esegui sempre il tuo output minificato attraverso un passaggio di lint/test prima di spedire.

Domande frequenti

No. Un file CSS minificato correttamente è diverso in byte ma semanticamente identico. Ogni selettore, proprietà e valore produce lo stesso risultato visivo. Se noti un cambiamento di rendering, il minificatore ha un bug o il tuo input aveva una sintassi sensibile agli spazi bianchi.

Sì, quando premi “Minify CSS”. Il CSS che incolli viene inviato al nostro server per essere minificato e il risultato viene restituito alla pagina. Non viene salvato in un database e non viene aggiunto al link della pagina.

Dopo. Minifica il CSS finale compilato che i browser ricevono effettivamente. L’output di Sass è già ragionevolmente compatto ma ha spazi bianchi e commenti che la minificazione rimuove.

Modesto ma reale, tipicamente 5-15% in aggiunta a gzip. Anche la rimozione di spazi bianchi e commenti rende i modelli gzip leggermente più densi.

Strumenti correlati