Minifique código CSS y mida la reducción de tamaño
Las hojas de estilo legibles suelen incluir sangrías, saltos de línea, comentarios explicativos y puntos y coma finales que los navegadores no necesitan.
Ejecutar — gratis
Este minificador elimina esa carga de entrega y conserva intactos el texto entre comillas, el orden de los selectores, las declaraciones y la estructura de las reglas. Devuelve el CSS compacto, los bytes UTF-8 originales y finales, y el porcentaje de reducción. La operación es determinista, no usa la red y rechaza entradas cuyas llaves no estén equilibradas.
Qué elimina el minificador
El minificador se concentra en el formato innecesario cuando un navegador recibe una hoja de estilo. Elimina comentarios de bloque, compacta secuencias de espacios y saltos de línea, suprime espacios alrededor de la puntuación estructural y quita el último punto y coma justo antes de una llave de cierre. No reordena reglas, combina selectores, cambia nombres de propiedades personalizadas, acorta colores ni reescribe cálculos. Este límite conservador es importante porque el comportamiento de CSS depende del orden del código, la especificidad y el contenido exacto de ciertos valores. Las cadenas entre comillas se analizan por separado, de modo que los espacios, las llaves, la puntuación y el texto parecido a un comentario dentro de una URL o de contenido generado permanecen intactos. También se respetan las comillas escapadas. Se conservan los espacios que separan tokens cuando quitarlos podría unir dos palabras o valores. Use el resultado como recurso generado y mantenga el original legible en el control de versiones.
Cómo funcionan la validación y la medición
Antes de devolver un resultado, el analizador registra cada llave de apertura y cierre que aparece fuera de comentarios y cadenas entre comillas. Una llave de cierre sin una apertura previa, o una apertura que siga pendiente al final, produce un error de entrada no válida en lugar de CSS parcial. Esta comprobación detecta pronto errores habituales al copiar código y hojas truncadas. La capacidad también rechaza CSS ausente o vacío, comentarios sin terminar y cadenas sin cerrar porque esas entradas no se pueden minificar de forma predecible. Los tamaños se miden en bytes UTF-8 y no como cantidad de caracteres de JavaScript. La diferencia importa en hojas con nombres de fuentes no ASCII, contenido generado localizado o selectores Unicode, donde un carácter visible puede ocupar varios bytes durante la transferencia. El porcentaje se calcula con ambos recuentos y se redondea a dos decimales. Como el mismo analizador determinista procesa cada solicitud sin red, azar, reloj ni estado externo, una entrada idéntica siempre devuelve el mismo CSS y las mismas métricas.
Cómo usar el resultado en un flujo de entrega
Un flujo habitual conserva el CSS formateado como fuente editable y minifica solo la copia destinada a un sitio web, un paquete de aplicación, una plantilla de correo o un alojamiento de recursos estáticos. Envíe la hoja completa, lea el valor compacto del campo css y escríbalo en el artefacto de despliegue. Los campos original_bytes y minified_bytes pueden registrarse en los informes de compilación, mientras reduction_percent ofrece una medida inmediata y comprensible del ahorro. Un trabajo de integración continua puede comparar estas métricas entre versiones para detectar crecimientos accidentales, aunque los presupuestos de tamaño deben utilizar los bytes exactos y no el porcentaje redondeado. El analizador es un minificador, no un compilador CSS completo: no resuelve importaciones, añade prefijos, valida todas las propiedades, transpila sintaxis nueva ni combina archivos. Ejecute antes esas transformaciones y minifique después el CSS final. Si falla la validación de llaves, corrija o regenere la fuente. La automatización mediante API cuesta $0.002 por solicitud.
Qué puede hacer con ella
Preparar una hoja para producción
Convierta una hoja legible y comentada en un recurso compacto de despliegue, conservando la fuente original para su mantenimiento.
Medir la optimización de CSS
Registre los bytes UTF-8 exactos y el porcentaje de reducción en un informe de compilación o rendimiento.
Validar la estructura de CSS generado
Rechace una salida truncada del generador cuando las llaves de sus reglas no estén equilibradas antes del despliegue.
Preguntas frecuentes
¿Qué elimina el minificador de CSS?
Elimina comentarios de bloque, espacios innecesarios alrededor de la estructura CSS y el punto y coma anterior a cada llave de cierre.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002.
¿Cómo se calcula el porcentaje de reducción?
Compara los bytes UTF-8 originales y minificados y redondea el porcentaje de reducción a dos decimales.
¿Qué ocurre si las llaves no están equilibradas?
La solicitud falla con un error de entrada no válida y no devuelve CSS incompleto o engañoso.
¿Se eliminan los comentarios o se cuentan las llaves dentro de cadenas?
No. El contenido entre comillas se conserva y sus llaves no intervienen en la validación estructural.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"css": "/* Theme */\n.card {\n color: red;\n padding: 1rem;\n}\n"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_css",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |