Saltar al contenido

Minificar CSS

Quita comentarios y espacios y acorta valores. Y si el minificador no puede procesar algo de tu archivo, te lo dice, en lugar de devolverte en silencio una hoja de estilos a la que le faltan reglas.

  • Nunca se guarda
  • Sin filas ni esperas
  • Sin registro, sin marca de agua
Minificado

Aquí aparece el CSS minificado.

Cómo funciona

1

Pega tu CSS

O suelta el archivo. No se guarda nada.

2

Revisa el resultado

Obtienes la hoja de estilos minificada y cuánto se redujo, o una explicación de lo que no se pudo procesar.

3

Copia o descarga

Lista para llevar a tu proceso de compilación.

Dónde están realmente los bytes

La mayor parte del ahorro son espacios y comentarios, que en una hoja de estilos escrita a mano son muchísimos: la sangría, las líneas en blanco entre reglas y los encabezados de sección que hacen navegable un archivo grande son puro lastre una vez que se sirve. Además, los valores se acortan de formas que no pueden cambiar su significado: un color escrito como #ffffff pasa a #fff, 0px pasa a 0 porque el cero no necesita unidad, desaparece el cero inicial de 0.5em, y margin: 10px 10px 10px 10px se reduce a margin: 10px.

Lo que deliberadamente no se hace es lo arriesgado. Unir reglas con declaraciones idénticas, o reordenarlas, cambia la cascada, y la cascada es la parte de CSS en la que dos reglas de igual especificidad se resuelven según cuál va última. Un minificador que reordena de forma agresiva te dará un archivo más liviano y, en una hoja de estilos grande, una página sutilmente distinta. Las declaraciones duplicadas también suelen ser intencionales: se dejan como respaldo para navegadores antiguos que ignoran la segunda.

Las reglas anidadas y la sintaxis moderna de rangos en media queries se rechazan en lugar de minificarse, y vale la pena explicar por qué, porque es lo contrario de lo que hacen la mayoría de las herramientas. El analizador que hay detrás es anterior a ambas funciones, y cuando encuentra algo que no entiende no da ningún error: lo elimina sin avisar, así que un bloque anidado simplemente desaparece del resultado y la página pierde estilos sin que nada lo indique. Rechazar el archivo es la respuesta honesta. Si tu hoja de estilos usa anidamiento nativo o @media (400px <= width <= 700px), usa una de las herramientas de abajo.

Igual que con el marcado, juzga el resultado después de la compresión. Las hojas de estilos se sirven comprimidas con gzip o brotli, y esos algoritmos ya manejan muy bien los espacios repetidos: un archivo que se reduce un 30 % al minificarse quizá solo se reduzca un 5 % en la transferencia. El ahorro es real, y menor que la cifra que aparece.

Si buscas otra cosa

Lightning CSS es la herramienta adecuada para hojas de estilos modernas: entiende el anidamiento, los rangos en media queries, las funciones de color y todo lo agregado en los últimos años, minifica más que cualquier herramienta anterior y, de paso, también transpila la sintaxis nueva para navegadores antiguos. esbuild --minify style.css es casi igual de bueno y extremadamente rápido. Ambos corresponden a un paso de compilación, no a una pestaña del navegador.

La ganancia mucho mayor suele ser eliminar las reglas que no usas. Un sitio construido con un framework de utilidades o una biblioteca de componentes suele enviar hojas de estilos en las que la mayor parte del archivo no coincide con nada de la página, y PurgeCSS, o la compilación del propio framework, reducirá eso en un orden de magnitud. Minificar CSS que no se usa hace más pequeño el CSS que no se usa; eliminarlo es la verdadera solución.

Preguntas frecuentes

¿Se guarda mi CSS en algún lugar?

No, y con el código fuente eso es lo esencial. No se guarda nada y ningún servidor llega a verlo. Pegar código propietario en un minificador en línea que lo envía a algún lado es divulgarlo, diga lo que diga el sitio sobre la retención de datos, y es justo el tipo de cosa que se hace con prisa y sin pensar.

¿Por qué rechazó mi archivo?

Porque al minificarlo se habrían perdido reglas. El minificador que usa esta página es de 2022 y no conoce dos cosas que hoy son CSS habitual. Con anidamiento nativo (una regla escrita dentro de otra, con o sin “&”), devuelve la regla exterior y ELIMINA SIN AVISAR la anidada. Con una media query moderna de rango, como @media (width >= 400px), devuelve una hoja de estilos vacía. Ninguno de los dos casos da error. Medimos ambos en la versión exacta que usamos y decidimos que entregar una hoja de estilos a la que le faltan estilos es peor que negarse, así que esos dos casos se detectan y se rechazan. Además, como comprobación general, se cuentan las reglas antes y después, por si existe un tercer caso que nadie ha encontrado todavía.

Entonces, ¿cómo minifico CSS anidado?

Elimina primero el anidamiento compilándolo. Todas las herramientas de compilación que admiten anidamiento (Sass, PostCSS, Lightning CSS o tu bundler) lo aplanan al compilar, y el resultado aplanado se minifica aquí sin problemas. Si escribes anidamiento a mano y lo sirves directamente, dependes de una función que los navegadores actuales admiten, pero con la que el ecosistema de minificadores todavía no se ha puesto del todo al día.

¿Qué hace exactamente?

Quita comentarios y espacios, acorta colores (#ffffff pasa a #fff, #ff0000 pasa a red), recorta unidades y puntos y coma innecesarios, y une lo que se puede unir sin riesgo. No elimina reglas que cree que no se usan: para eso necesitaría conocer tu HTML, y adivinar mal borra estilos que necesitas.

¿Cuánto se reducirá?

En CSS escrito a mano, normalmente entre un 15 y un 30 %. El resultado ya compilado por una herramienta de compilación suele estar casi al mínimo y apenas cambiará. El gzip de tu servidor hace más que la minificación; los dos efectos se suman.

¿Es seguro minificar aquí una hoja de estilos de producción?

Sí. No se guarda nada, y los dos casos que no puede procesar se rechazan en lugar de romperse sin avisar, así que lo que obtienes es o un resultado correcto o una explicación de por qué se rechazó.

Conviene saber: Las reglas anidadas y la sintaxis moderna de rangos en media queries se rechazan en lugar de minificarse. El minificador se basa en un analizador anterior a ambas, y en vez de dar un error elimina sin avisar lo que no entiende: un bloque anidado simplemente desaparece del resultado. Rechazar el archivo es la respuesta honesta hasta que ese analizador se ponga al día.

Agrega esta herramienta a tu sitio web

Gratis para cualquier blog, página de clase o artículo de ayuda. Pega un fragmento de código y tus visitantes podrán usarla directamente en tu página.