Minifichi il codice CSS e misuri la riduzione
I fogli di stile leggibili spesso includono rientri, interruzioni di riga, commenti esplicativi e punti e virgola finali non necessari al browser.
Esegui gratis nel browser
Questo minificatore elimina tale peso di distribuzione mantenendo intatti le stringhe tra virgolette, l’ordine dei selettori, le dichiarazioni e la struttura delle regole. Restituisce il CSS compatto, i conteggi dei byte UTF-8 originali e finali e la percentuale di riduzione. L’operazione è deterministica, non accede alla rete e rifiuta input con parentesi graffe non bilanciate.
Che cosa rimuove il minificatore
Il minificatore si concentra sulla formattazione superflua quando un browser riceve un foglio di stile. Rimuove i commenti a blocchi, compatta le sequenze di spazi e interruzioni di riga, elimina gli spazi attorno alla punteggiatura strutturale e toglie l’ultimo punto e virgola immediatamente prima di una parentesi graffa di chiusura. Non riordina le regole, non unisce i selettori, non rinomina le proprietà personalizzate, non abbrevia i colori e non riscrive i calcoli. Questo limite prudente è importante perché il comportamento del CSS dipende dall’ordine del sorgente, dalla specificità e dal contenuto esatto di alcuni valori. Le stringhe tra virgolette vengono analizzate separatamente, quindi spazi, parentesi graffe, punteggiatura e testo simile a un commento dentro un URL o un contenuto generato restano intatti. Anche le virgolette con escape vengono rispettate. Gli spazi tra token rimangono quando eliminarli potrebbe unire due parole o valori. Lei può usare il risultato come risorsa generata e conservare l’originale leggibile nel controllo di versione.
Come funzionano la convalida e la misurazione
Prima di restituire il risultato, lo scanner registra ogni parentesi graffa di apertura e chiusura che compare fuori dai commenti e dalle stringhe tra virgolette. Una chiusura senza una precedente apertura, oppure un’apertura ancora presente alla fine, produce un errore di input non valido anziché CSS parziale. Questo controllo individua presto i comuni errori di copia e incolla e i fogli troncati. La capacità rifiuta inoltre CSS mancante o vuoto, commenti incompleti e stringhe non chiuse, poiché tali input non possono essere minificati in modo prevedibile. Le dimensioni sono misurate in byte UTF-8 e non come numero di caratteri JavaScript. La differenza conta per nomi di font non ASCII, contenuti generati localizzati o selettori Unicode, nei quali un carattere visibile può occupare più byte durante il trasferimento. La percentuale viene calcolata sui due conteggi e arrotondata a due decimali. Poiché ogni richiesta usa lo stesso scanner deterministico senza rete, casualità, orologio o stato esterno, un input identico restituisce sempre lo stesso CSS e le stesse metriche.
Come usare il risultato nel flusso di distribuzione
Un flusso tipico mantiene il CSS formattato come sorgente modificabile e minifica soltanto la copia destinata a un sito, un pacchetto applicativo, un modello e-mail o un host di risorse statiche. Invii il foglio completo, legga il valore compatto dal campo css e lo scriva nell’artefatto di distribuzione. I campi original_bytes e minified_bytes possono essere registrati nei report di compilazione, mentre reduction_percent offre una misura immediata e leggibile del risparmio. Un processo di integrazione continua può confrontare tali metriche fra le versioni per rilevare crescite accidentali; i budget dimensionali dovrebbero però usare i byte esatti anziché la percentuale arrotondata. Lo scanner è un minificatore, non un compilatore CSS completo: non risolve importazioni, non aggiunge prefissi, non convalida ogni proprietà, non transpila nuova sintassi e non combina file. Esegua prima queste trasformazioni, quindi minifichi l’output CSS finale. Se la convalida delle parentesi fallisce, corregga o rigeneri il sorgente. L’automazione API costa $0.002 per richiesta.
Casi d'uso
Preparare un foglio per la produzione
Trasformi un foglio leggibile e commentato in una risorsa compatta per la distribuzione, conservando il sorgente per la manutenzione.
Misurare l’ottimizzazione del CSS
Registri i conteggi esatti dei byte UTF-8 e la percentuale di riduzione in un report di compilazione o prestazioni.
Convalidare la struttura del CSS generato
Rifiuti l’output troncato di un generatore quando le parentesi graffe delle regole non sono bilanciate prima della distribuzione.
Domande frequenti
Che cosa rimuove il minificatore CSS?
Rimuove i commenti a blocchi, gli spazi superflui nella struttura CSS e il punto e virgola prima di ogni parentesi graffa di chiusura.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002.
Come viene calcolata la percentuale di riduzione?
Confronta i byte UTF-8 originali e minificati, quindi arrotonda la percentuale di riduzione a due decimali.
Che cosa accade se le parentesi graffe non sono bilanciate?
La richiesta restituisce un errore di input non valido anziché un CSS incompleto o potenzialmente fuorviante.
Commenti o parentesi graffe nelle stringhe vengono rimossi o contati?
No. Il contenuto tra virgolette viene conservato e le sue parentesi non influiscono sulla convalida strutturale.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev2/minify-css \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"css":"/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"}'const res = await fetch("https://api.kit.forhosting.com/dev2/minify-css", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/minify-css",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/minify-css", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"css":"/* Theme */\\n.card {\\n color: red;\\n padding: 1rem;\\n}\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"css":"/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/minify-css", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_css",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |