Minifiez du code CSS et mesurez le gain de taille
Les feuilles de style lisibles comportent souvent des retraits, des sauts de ligne, des commentaires explicatifs et des points-virgules finaux inutiles au navigateur.
Lancer gratuitement
Ce minificateur supprime ce poids de livraison tout en préservant les chaînes entre guillemets, l’ordre des sélecteurs, les déclarations et la structure des règles. Il renvoie le CSS compact, les nombres d’octets UTF-8 avant et après traitement, ainsi que le pourcentage de réduction. L’opération est déterministe, sans accès réseau, et refuse les accolades déséquilibrées.
Ce que le minificateur retire
Le minificateur cible la mise en forme dont le navigateur n’a pas besoin lorsqu’il reçoit une feuille de style. Il supprime les commentaires de bloc, réduit les suites d’espaces et de sauts de ligne, retire les espaces autour de la ponctuation structurelle et enlève le dernier point-virgule placé juste avant une accolade fermante. Il ne réordonne pas les règles, ne fusionne pas les sélecteurs, ne renomme pas les propriétés personnalisées, ne raccourcit pas les couleurs et ne réécrit pas les calculs. Cette limite prudente est essentielle, car le comportement du CSS dépend de l’ordre du code, de la spécificité et du contenu exact de certaines valeurs. Les chaînes entre guillemets sont analysées séparément : les espaces, accolades, signes de ponctuation et textes ressemblant à des commentaires dans une URL ou un contenu généré restent intacts. Les guillemets échappés sont également respectés. Les espaces séparant des jetons sont conservés si leur suppression risque de joindre deux mots ou valeurs. Utilisez le résultat comme ressource générée et gardez la source lisible dans votre gestionnaire de versions.
Fonctionnement de la validation et des mesures
Avant de fournir un résultat, l’analyseur suit chaque accolade ouvrante et fermante située hors des commentaires et des chaînes entre guillemets. Une fermeture sans ouverture préalable, ou une ouverture encore présente à la fin, déclenche une erreur d’entrée non valide au lieu de produire un CSS partiel. Ce contrôle repère rapidement les erreurs de copier-coller et les feuilles tronquées. La capacité refuse aussi un CSS absent ou vide, un commentaire inachevé et une chaîne non fermée, car ces entrées ne peuvent pas être minifiées de manière prévisible. Les tailles sont mesurées en octets UTF-8, et non en caractères JavaScript. Cette distinction compte pour les noms de polices non ASCII, le contenu généré localisé et les sélecteurs Unicode, où un caractère visible peut occuper plusieurs octets pendant le transfert. Le pourcentage est calculé à partir des deux nombres d’octets, puis arrondi à deux décimales. Le même analyseur déterministe traite chaque requête sans réseau, hasard, horloge ni état externe : une entrée identique produit toujours le même CSS et les mêmes mesures.
Intégrer le résultat au processus de livraison
Un processus courant conserve le CSS mis en forme comme source modifiable et ne minifie que la copie destinée à un site, un paquet applicatif, un modèle d’e-mail ou un hébergeur de ressources statiques. Envoyez la feuille complète, lisez la valeur compacte du champ css et écrivez-la dans l’artefact de déploiement. Les champs original_bytes et minified_bytes peuvent alimenter les journaux de compilation, tandis que reduction_percent donne une mesure immédiatement lisible de l’économie. Une tâche d’intégration continue peut comparer ces mesures entre versions afin de détecter une croissance accidentelle ; pour un budget de taille, utilisez toutefois les octets exacts plutôt que le pourcentage arrondi. Cet outil est un minificateur, pas un compilateur CSS complet : il ne résout pas les imports, n’ajoute pas de préfixes, ne valide pas toutes les propriétés, ne transpile pas la nouvelle syntaxe et ne combine pas les fichiers. Effectuez ces transformations d’abord, puis minifiez la sortie finale. Si les accolades sont invalides, corrigez ou régénérez la source. L’automatisation API coûte $0.002 par requête.
Cas d’usage
Préparer une feuille pour la production
Transformez une feuille lisible et commentée en ressource de déploiement compacte, tout en gardant la source pour la maintenance.
Mesurer l’optimisation du CSS
Consignez les nombres exacts d’octets UTF-8 et le pourcentage de réduction dans un rapport de compilation ou de performances.
Valider la structure d’un CSS généré
Refusez la sortie tronquée d’un générateur si les accolades de ses règles sont déséquilibrées avant le déploiement.
Questions fréquentes
Que retire le minificateur CSS ?
Il retire les commentaires de bloc, les espaces superflus autour de la structure CSS et le point-virgule précédant chaque accolade fermante.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002.
Comment le pourcentage de réduction est-il calculé ?
Il compare les nombres d’octets UTF-8 avant et après minification, puis arrondit la réduction à deux décimales.
Que se passe-t-il si les accolades sont déséquilibrées ?
La requête échoue avec une erreur d’entrée non valide au lieu de renvoyer un CSS incomplet ou trompeur.
Les commentaires ou accolades dans les chaînes sont-ils retirés ou comptés ?
Non. Le contenu entre guillemets est préservé et ses accolades n’interviennent pas dans la validation structurelle.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_css",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |