La herramienta que necesitas, lista para usar

Formateador y minificador CSS

Pegue CSS y elija Formatear para desplegar una hoja comprimida en una línea con una declaración por línea, o Minificar para reducirla a una sola línea para publicar. Como el código se lee tal como lo describe la especificación de CSS, se respeta todo lo que cambia de significado si se toca: los espacios dentro de calc(), el 0% de los fotogramas clave, las cadenas y url(). El mapa de tamaño de abajo dibuja con una misma escala cuántos bytes ocupan las reglas, los bloques @media y los comentarios, cuánto queda tras minificar y cuánto envía un servidor con gzip, y señala la línea donde una sola } sobrante hace desaparecer una regla entera.

Última modificación 2026-10-22Todo el cálculo ocurre en tu navegador
Sangría
Comentarios
Comentarios
Ejemplo
El CSS que introduce se procesa solo dentro de este navegador
CSS formateado

Mapa de tamaño
Original
    Qué se cambió

      Se dejaron tal cual porque cambiarlos podría alterar el significado: la unidad de 0px y 0%, los espacios alrededor de + y − en calc(), las reglas vacías y el contenido de cadenas y url().

      Hallazgos

          Última modificación 2026-10-22No guardamos lo que escribes

          Criterio ROBERINLa herramienta que necesitas,
          lista para usar.
          • Claro a primera vistaEntradas y resultados donde los esperas.
          • Primero el resultadoLa cifra clave va primero; el proceso solo cuando lo necesitas.
          • Pedir menosSin registro ni datos innecesarios.

          Pegue el CSS para ordenarlo y vea qué ahorra exactamente al minificar

          El formateador y minificador CSS transforma una misma hoja de estilos en dos direcciones. Formatear (también llamado embellecer o «beautify») toma una línea comprimida como .card{margin:0;padding:16px}, coloca una declaración por línea y ajusta la sangría para que una persona pueda leerla. Minificar hace lo contrario: elimina comentarios, espacios y saltos de línea que el navegador no necesita, de modo que el archivo que se publica pese menos. Ambos resultados deben aplicar exactamente los mismos estilos que el original, y la herramienta está construida para cumplir esa condición.

          Quitar los espacios con una expresión regular es la forma más rápida de romper una hoja de estilos, porque también borra los espacios alrededor del signo menos en calc(100% - 2rem) y deja el valor inválido. Esta herramienta lee el código como lo describe la especificación de CSS, es decir, por comentarios, cadenas, paréntesis y declaraciones, y solo después lo vuelve a escribir. Así distingue un espacio que se puede borrar de otro que cambia el significado. Bajo el resultado, el mapa de tamaño dibuja el original y la salida como dos barras con la misma escala, y permite ver cuánto ocupan las reglas, los bloques @media y los comentarios, y cuánto se redujo cada parte. El panel «Hallazgos» señala los errores por número de línea, por ejemplo una sola } sobrante que hace que el navegador descarte la regla siguiente.

          Cuándo conviene formatear o minificar

          La forma que conviene a una hoja de estilos mientras se edita no es la que conviene al navegador que la descarga. Para editar hace falta código desplegado, y para publicar, código corto. Estas son situaciones en las que la herramienta resulta útil.

          • Leer el .min.css de una biblioteca: si solo se dispone del archivo minificado y se quiere saber dónde se define el color de un botón, primero hay que desplegarlo. Se pega en modo Formatear y se busca en el cuadro de resultado.
          • Ordenar estilos copiados de las herramientas de desarrollo o de otro sitio: el CSS copiado suele tener sangrías mezcladas o venir en una sola línea. Con una pasada se ve enseguida el límite entre selectores y declaraciones.
          • Pegar en el campo de CSS personalizado de un gestor de contenidos o de una tienda online: si el campo es pequeño o tiene límite de caracteres, la versión minificada cabe mejor. Conviene guardar el original aparte y pegar solo la copia minificada.
          • Buscar por qué un estilo no se aplica en una parte de la página: la causa suele ser una } sobrante o un paréntesis sin cerrar en la regla anterior. «Hallazgos» indica la línea y el selector que se descarta.
          • Comprobar cuánto ahorra realmente minificar: el porcentaje que se reduce en bytes no coincide con el que se reduce en la red cuando el servidor envía el archivo con gzip. La barra gzip del mapa de tamaño muestra ambos valores.

          Cómo se usa

          1. Pegue el CSS en el cuadro de entrada de la izquierda (encima, en pantallas estrechas). También puede pulsar «Abrir archivo» o arrastrar un archivo .css al cuadro. Se admiten archivos de hasta 5 MB.
          2. Elija Formatear o Minificar en la parte superior. El resultado se actualiza mientras escribe.
          3. En Formatear se puede elegir la sangría (2 espacios, 4 espacios o tabulación), si se conservan los comentarios y si los selectores se separan en una línea por cada coma. En Minificar se elige el tratamiento de los comentarios (solo /*!, quitar todos, conservar todos) y si se abrevian los colores hexadecimales.
          4. En el mapa de tamaño, al pulsar un tramo de la barra se resalta esa parte en el cuadro de resultado. Al pulsar el botón con el número de línea en «Hallazgos», esa línea queda seleccionada en la entrada.
          5. «Copiar resultado» lo envía al portapapeles y «Guardar archivo» lo descarga. El resultado minificado se guarda con la terminación .min.css.

          Qué cambia al formatear

          Formatear no altera el orden de nada: solo vuelve a colocar saltos de línea y espacios. Cada declaración va en su propia línea, con un espacio tras los dos puntos y un punto y coma al final, y las reglas anidadas se sangran un nivel más. Entre bloques queda una línea en blanco, y un comentario que estaba al final de una declaración sigue al final de esa declaración.

          EntradaResultado formateadoRegla
          .a{color:red;margin:0}.a { / color: red; / margin: 0; / }Una declaración por línea y un espacio tras los dos puntos
          h1,h2>a{…}h1, / h2 > a {Salto de línea en cada coma de primer nivel; espacios alrededor de > + ~
          rgba(0,0,0,.5)rgba(0, 0, 0, .5)Un espacio tras las comas dentro de los valores
          @media (min-width:600px)@media (min-width: 600px)Un espacio tras los dos puntos dentro de la condición
          color:red!importantcolor: red !important;Un espacio antes de !important
          .menu{&:hover{…}}.menu { /   &:hover {Las reglas anidadas se sangran un nivel más
          --list: a,b--list: a,b;En las propiedades personalizadas (--) solo se reducen los espacios a uno

          Como muestra la última fila, en una propiedad personalizada que empieza por -- no se añade espacio tras las comas. El valor de una propiedad personalizada se conserva tal como se escribió y el método getPropertyValue() de JavaScript devuelve ese mismo texto, así que un espacio añadido por estética podría cambiar lo que lee un script. La separación de selectores en cada coma se puede desactivar; en ese caso queda h1, h2 > a { en una sola línea.

          Qué elimina la minificación y qué conserva a propósito

          Minificar acorta el texto solo mientras el resultado sea idéntico. Casi todos los espacios se pueden borrar, pero algunos forman parte de la gramática y, si se quitan, el código pasa a ser otro. Las seis últimas filas de la tabla son lugares donde otros minificadores suelen estropear el CSS, y esta herramienta los deja intactos.

          ElementoAl minificarMotivo
          ComentariosSe eliminan (los que empiezan por /*! se conservan por defecto)/*! es la convención para mantener un aviso de licencia, y la limpieza de comentarios de cssnano también lo conserva por defecto
          Saltos de línea, sangría y espacios alrededor de { } : ; ,Se eliminanSon espacios que no hacen falta para separar los tokens
          Punto y coma al final de un bloqueSe eliminaEl ; tras la última declaración da igual que esté o no
          #FFFFFF, #AABBCCDD#fff, #abcdUn color hexadecimal con los dígitos repetidos de dos en dos es el mismo color en su forma de 3 o 4 dígitos (CSS Color 4 §5.2)
          Espacios alrededor de + y − en calc(100% - 2rem)Se conservanLos espacios a ambos lados de + y − son obligatorios (Values 4 §10.8). 100%-2rem no es válido
          El espacio en and ( y not (Se conservaSin él, and( se lee como una función (Media Queries 4 §3)
          El espacio en .card :hoverSe conservaEl espacio es el combinador de descendientes; si se borra queda .card:hover, otro selector distinto (Selectors 4 §14.1)
          La unidad de 0px y 0%Se conservaEn flex: 1 0px, si se quita la unidad el 0 se lee como factor de reducción (Flexbox §7.1), y el selector de fotograma clave 0% solo admite porcentajes (Animations 1 §3)
          Reglas vacías y bloques @layer vacíosSe conservanEl orden de las capas es el de su primera declaración (Cascade 5 §6.4.3), de modo que hasta un @layer base {} vacío fija el orden
          Valores de propiedades personalizadas, cadenas y contenido de url()Solo se ordenan los espacios; el texto no cambiaEl valor de una propiedad personalizada es el texto tal como se escribió, y el contenido de cadenas y URL son datos

          Por eso un valor como --brand: #C44A00 sigue con el hexadecimal en mayúsculas después de minificar, mientras que color: #FFFFFF, en una propiedad normal, pasa a #fff. La lista «Qué se cambió» indica por separado los comentarios eliminados y sus bytes, los puntos y coma quitados, los colores abreviados y los bytes que se ahorraron en espacios.

          Cuánto se ahorra: proporción y tamaño de transferencia con gzip

          Los bytes que se ahorran al minificar no son los que viajan por la red. La mayoría de los servidores comprimen el CSS otra vez con gzip o brotli, y ese tipo de compresión aprovecha muy bien los patrones repetidos, de modo que la sangría y los saltos de línea que se eliminan ya estaban en gran parte comprimidos. La tabla siguiente minifica con esta herramienta el ejemplo de esta página y el archivo publicado de Bootstrap 5.3.8, y mide el tamaño con gzip usando el compresor del propio navegador (Chromium).

          ArchivoOriginalMinificadogzip original → minificado
          Ejemplo «Original con comentarios» (6 comentarios)718 B469 B (−34,7%)469 B → 352 B (−24,9%)
          El mismo ejemplo, sin ningún comentario718 B414 B (−42,3%)469 B → 303 B (−35,4%)
          Bootstrap 5.3.8 bootstrap.css280.311 B232.759 B (−17,0%)33.326 B → 30.776 B (−7,7%)
          Como referencia: el bootstrap.min.css oficial280.311 B232.111 B (−17,2%)33.326 B → 30.823 B (−7,5%)

          En un archivo grande como Bootstrap, minificar reduce un 17% los bytes, pero el tamaño con gzip baja solo un 8% aproximadamente, porque gzip ya había eliminado casi todo el espacio en blanco. En un archivo muy pequeño ocurre lo contrario: gzip añade 18 bytes fijos de cabecera y cola (RFC 1952), así que apenas tiene margen de mejora. Aun así, minificar reduce el número de caracteres que el navegador debe leer e interpretar y, donde no se usa gzip, el ahorro es el de la transferencia. El archivo minificado oficial de Bootstrap va más lejos, porque reordena selectores y reescribe valores como rgba(0,0,0,0) a transparent; por eso pesa 648 B menos, pero tras gzip el resultado de esta herramienta fue 47 B menor. Cuando el navegador interpretó la salida de esta herramienta, las 2.660 entradas, incluidas las reglas dentro de @media, resultaron idénticas a las del original. La única diferencia fue el espacio junto a las comas en los valores con var().

          Las cifras de gzip se midieron con la configuración por defecto del navegador, así que pueden variar algo según el nivel de compresión de su servidor o si usa brotli. En el mapa de tamaño, 1 KB equivale a 1.024 B.

          Errores que hacen desaparecer una regla

          El CSS no se detiene ante un error: descarta la parte defectuosa y sigue leyendo. Eso evita que la página se desmorone, pero tampoco avisa de lo que se ha descartado, y por eso cuesta encontrar la causa. Los seis casos siguientes se basan en cómo leen realmente el CSS los navegadores (CSS Syntax 3); la herramienta lo lee igual y muestra cada caso en «Hallazgos» con su número de línea.

          ErrorCómo lo lee el navegadorEn esta herramienta
          Una } sobrante fuera de una regla (.nav{…}})Se pega delante del selector siguiente y se obtiene el selector inválido } .logo; esa regla entera se descarta (§5.5.3)Indica el selector que se descarta y también muestra } .logo { en la salida
          Un ( sin cerrar (calc(100% - 20px;)Hasta que aparezca el ) correspondiente, todo, incluidos ; y }, queda dentro del valor, y se pierden todas las reglas posterioresIndica la línea del paréntesis de apertura
          Una { sin cerrarSe da por cerrada al final del archivo. Si después se añade otro archivo a continuación, todo su contenido queda dentro de esa reglaAñade un } a la salida e indica la línea donde se abrió
          Unas comillas sin cerrar antes del final de la líneaSe lee como una cadena inválida y se descarta esa declaraciónIndica la línea donde se abrieron las comillas
          Un comentario /* sin cerrarTodo hasta el final del archivo pasa a ser comentarioIndica la línea donde empieza el comentario
          Una declaración sin dos puntos (font-size 20px)Solo se descarta esa declaración y se sigue leyendo después del siguiente ; (§5.5.6)Se muestra como advertencia

          También se muestran algunos casos que no son errores, pero conviene revisar. Si una misma propiedad aparece dos veces en una regla, solo se aplica el último valor. Como display: -webkit-box; display: flex; puede ser un respaldo deliberado para navegadores antiguos, solo se muestra como nota. Una regla vacía, sin declaraciones, también se señala como nota, pero al minificar no se elimina.

          El CSS anidado y la sintaxis nueva se leen tal cual

          El anidamiento de CSS permite escribir &:hover { … } o @media directamente dentro de una regla, y hoy todos los navegadores principales lo admiten. La herramienta distingue reglas anidadas y declaraciones como lo hace la especificación: dentro de un bloque, si aparece una { antes que un ; o una }, se trata de una regla, y si no, de una declaración. Al formatear, cada nivel se sangra una vez. Al minificar, se conserva el ; entre una declaración y la regla anidada que la sigue.

          FunciónChromeFirefoxSafariEn esta herramienta
          Anidamiento CSS (&)12011717.2Sangría de un nivel cada vez; al minificar se conserva el ; entre una declaración y una regla
          @layer999715.4Las formas de sentencia y de bloque conservan su orden, y los bloques vacíos se mantienen
          Medición con gzip (CompressionStream)8011316.4En navegadores más antiguos se oculta la línea de gzip

          Las versiones son las primeras que admiten cada función, según los datos de compatibilidad de MDN consultados el 2026-10-22. Desde las versiones indicadas, el anidamiento incluye también las reglas que empiezan por el nombre de una etiqueta, como a { … }; Chrome 112 a 119 y Safari 16.5 a 17.1 no admitían esa forma. Otras at-rules como @container, @supports, @scope y @property se leen de la misma manera.

          Errores frecuentes

          • Editar el archivo minificado y volver a minificarlo: se puede formatear un archivo minificado y modificarlo, pero los comentarios que se eliminaron no vuelven. Conviene mantener aparte el archivo original que se edita y generar la copia minificada a partir de él en cada publicación.
          • Ordenar las propiedades alfabéticamente: en margin-top: 8px; margin: 0; gana el margin: 0 posterior y el margen superior es 0, pero al ordenar alfabéticamente margin pasa delante, gana margin-top: 8px y el margen superior pasa a 8px. Por eso la herramienta no incluye una opción de ordenar.
          • Borrar los comentarios de licencia /*!: mucho código, incluido el de licencia MIT, exige que el aviso de copyright permanezca en las copias. Al minificar el CSS de otra persona, conviene mantener el valor por defecto (solo /*!).
          • Sustituir todos los 0px por 0: hay lugares donde la unidad es necesaria, como flex: 1 0px, el 0% de un fotograma clave o calc(0px + 10%). No debe hacerse con una búsqueda y reemplazo general.
          • Dejar comentarios // de SCSS en el CSS: el CSS no tiene comentarios //. En la regla de la línea siguiente a // botón, ese texto se pega al selector y la regla se descarta. Si en el resultado formateado aparece // delante de un selector, es lo que ha ocurrido.
          • Concatenar archivos cuando a uno le falta la última }: al unir varios archivos CSS, un bloque sin cerrar en el primero se traga todo el siguiente. Antes de unirlos, conviene pegar cada archivo y comprobar que «Hallazgos» queda vacío.

          Límites y precauciones

          • Solo lee CSS estándar. Las funciones propias de SCSS y Less, como las $variables, @mixin y @include, los comentarios // y las operaciones, no se interpretan como CSS; para esos archivos conviene usar el compilador de Sass o Less, o bien Prettier.
          • No hace optimizaciones estructurales: fusionar selectores idénticos, eliminar declaraciones sobrescritas, reunir margin-top y similares en un único margin o depurar prefijos de fabricante. De ese trabajo se encargan herramientas de compilación como cssnano, Lightning CSS y esbuild.
          • No genera mapas de origen. Un /*# sourceMappingURL=… */ final es un comentario normal y la configuración de minificado por defecto lo elimina; si lo necesita, cambie los comentarios a «conservar todos».
          • La comprobación de sintaxis llega hasta paréntesis, comillas, comentarios y dos puntos. No juzga un nombre de propiedad mal escrito como colr: red, una unidad incorrecta en un valor ni si un navegador admite algo.
          • Se abren archivos de hasta 5 MB y, si el resultado supera los 300.000 caracteres, se omite el coloreado de sintaxis por rapidez y se muestra el texto sin colores.
          • El tamaño con gzip se midió con la compresión por defecto del navegador y puede diferir de la configuración de su servidor.

          Fecha de referencia Las especificaciones CSS del W3C (Syntax 3, Values 4, Media Queries 4, Color 4, Flexbox 1, Cascade 5, Nesting 1) y los datos de compatibilidad de navegadores de MDN se comprobaron en sus textos originales el 2026-10-22. La tabla de tamaños usa valores medidos ese mismo día con CompressionStream de Chromium, y las cifras de Bootstrap corresponden a los archivos de distribución de la versión 5.3.8.

          Fuentes

          Preguntas frecuentes

          ¿Qué diferencia hay entre formatear y minificar CSS?

          Formatear (embellecer, «beautify») despliega las declaraciones una por línea y ajusta la sangría para que una persona lea el código con comodidad. Minificar elimina los comentarios, espacios y saltos de línea innecesarios y deja intacto el significado que lee el navegador, con lo que el archivo pesa menos. Los dos resultados aplican los mismos estilos, así que lo más seguro es mantener formateado el original que se edita y minificar solo la copia que se publica.

          ¿Puede romperse el CSS al minificar?

          Un minificador que borra mecánicamente todos los espacios sí puede romperlo. Si se quitan los espacios alrededor del signo menos de calc(100% - 2rem), el valor deja de ser válido, y si se quita el espacio de .card :hover, queda un selector distinto. Esta herramienta lee el CSS token a token, como la especificación, y deja tal cual esos espacios, la unidad de 0px y 0% y el contenido de cadenas y url(). Aun así, si el original ya está roto, el resultado se romperá del mismo modo, así que conviene corregir antes los errores de «Hallazgos».

          ¿Al minificar se eliminan todos los comentarios?

          Por defecto solo se conservan los comentarios que empiezan por /*! y se eliminan los demás. /*! es la convención para los avisos de licencia y de derechos de autor, y minificadores como cssnano también los conservan por defecto. Se puede cambiar el ajuste para quitar todos los comentarios o conservarlos todos.

          ¿Por qué no se cambia 0px por 0?

          En la mayoría de los casos sería inofensivo, pero en algunos sitios cambia el significado. En flex: 1 0px, escribir 0 hace que el segundo número se lea como factor de reducción; el 0% de @keyframes no es válido si se escribe 0; y calc(0px + 10%) deja de ser un cálculo válido cuando pasa a 0. El ahorro es de 2 o 3 bytes por sitio, y aún menor tras gzip, de modo que se optó por conservar la unidad.

          ¿Ordena las propiedades alfabéticamente?

          No. Cuando dos declaraciones tienen la misma prioridad, gana la posterior. Una regla con margin-top: 8px seguido de margin: 0 tiene margen superior 0, pero al ordenarla alfabéticamente margin pasa delante, gana margin-top: 8px y el margen superior pasa a 8px. El orden se mantiene tal como se escribió, y «Hallazgos» solo avisa de las propiedades que aparecen dos veces.

          ¿Por qué es un problema una sola } sobrante?

          El navegador no ignora una } que sobra fuera de una regla: la pega delante del selector de la regla siguiente y queda algo como «} .logo», que no es válido, de modo que esa regla se descarta por completo. Es un caso típico en el que solo una parte de la página se ve mal y cuesta encontrar la causa, por lo que la herramienta muestra tanto la línea como el selector que se descarta.

          ¿Puede formatear SCSS o Less?

          Lee CSS estándar, así que se formatea la sintaxis que también existe en CSS, como el anidamiento (&) y las declaraciones dentro de @media. La sintaxis exclusiva de SCSS y Less, como los comentarios de línea //, las $variables, @mixin y @include y las operaciones, no se interpreta como CSS y el resultado puede salir mal. Para esos archivos conviene usar el compilador de Sass o Less, o bien Prettier.

          ¿Se guarda o se envía a algún sitio el CSS que introduzco?

          No. El formateado, el minificado, el cálculo de tamaños y la medición con gzip se hacen dentro de este navegador, y no se envía ni se guarda nada en un servidor. Al cerrar la página, lo introducido desaparece, así que copie el resultado o guárdelo como archivo si lo necesita.