Preprocesador CSS
SCSS, Less y Stylus a CSS
Este preprocesador CSS lee reglas anidadas, variables y mixins, y luego escribe el CSS plano que entiende un navegador. Así que compilas SCSS a CSS, o Less a CSS, o llevas el CSS plano al revés. El trabajo se ejecuta en tu navegador, y no subimos nada.
- GratisPrecio
- Ambos sentidosDirecciones
- NingunoRegistro
- NingunoSubidas
Preprocesador CSS
Convierte SCSS, Less o Stylus en CSS plano, o lleva una hoja plana de vuelta al anidamiento
Listo. Pega una hoja de estilos, o pulsa uno de los botones de ejemplo.
Qué hace un preprocesador CSS
Una hoja de estilos con anidamiento no es CSS válido. El navegador descarta la regla entera y no dice nada. Por lo tanto, este preprocesador CSS aplana el anidamiento, cambia las variables por sus valores y escribe el CSS plano que un navegador puede leer.
De un pegado vuelven tres cosas. Primero, el propio CSS compilado, listo para pegar en un archivo. Luego una lista de las variables y mixins que encontró, con el valor que guarda cada uno. Finalmente, un panel de notas que nombra todo lo que el compilador tuvo que decidir por su cuenta.
Ese último panel importa más de lo que parece. Una suposición silenciosa dentro del CSS compilado es un diseño roto dos pantallas después. Así que cada suposición se imprime junto a la salida en lugar de quedar enterrada en ella.
El conversor también funciona al revés. Porque un archivo plano es difícil de mantener ordenado, puede agrupar CSS normal de nuevo en SCSS o Less anidado, con los valores compartidos sacados como variables. No instalas nada y no envías nada.
Cómo compila un preprocesador a CSS
El trabajo se ejecuta en tres pasadas. Primero, el lector convierte el origen en una lista de reglas, cada una con un selector, un bloque y una profundidad. Luego una segunda pasada une los selectores anidados con sus padres. Finalmente un escritor imprime las reglas planas en orden.
Unir selectores sigue las reglas de selectores que usa el propio navegador. Una regla anidada una vez se convierte en un selector descendiente. Una regla escrita con ampersand mantiene su padre unido, que es como se construyen un estado hover y una clase modificadora.

Las variables son el segundo trabajo. Porque SCSS y Less permiten que un nombre represente un valor, el compilador busca cada nombre que encuentra y escribe el valor en su lugar. Las variables de Sass empiezan por signo de dólar, y las de Less por arroba, así que el lector las distingue por el primer carácter.
El escritor nunca toca una API del navegador ni toca la red. Así que la página funciona sin conexión. También funciona con un archivo que preferirías no pegar en un compilador alojado, como una hoja de estilos que nombra un producto sin anunciar.
SCSS, Less y Stylus lado a lado
Los tres lenguajes coinciden en la idea y difieren en la puntuación. Así que el compilador lee los tres y escribe una sola salida.
SCSS conserva las llaves y los puntos y coma de CSS, y por eso se siente como CSS con funciones extra. Less hace lo mismo, y además permite una llamada parcial a un mixin sin paréntesis. Stylus quita las llaves, los puntos y coma y a menudo los dos puntos, y se apoya en la indentación.
Porque las diferencias son pequeñas, una página puede leer los tres. El lector decide qué lenguaje tiene delante mirando el archivo: un signo de dólar apunta a SCSS, una arroba delante de un nombre apunta a Less, y una llave ausente apunta a Stylus. Cuando el origen es ambiguo, la página lo dice en el panel de notas en lugar de adivinar.
La salida es la misma en todos los casos. Así que el navegador ve una sola hoja de estilos plana, y tú mantienes el origen en el lenguaje que tu equipo ya usa.
Por qué unir selectores es la parte difícil
Un compilador que pega los dos selectores con un espacio se equivoca en casi todo el anidamiento. Porque una regla anidada bajo un padre se convierte en descendiente solo cuando no hay ampersand, el lector sigue la pista del padre en cada nivel mientras baja.
Así que cada bloque guarda el selector completo que va a imprimir. Una regla arriba del todo empieza con su propio selector. Luego una regla dentro de ella hereda ese y añade el suyo, separados por un espacio. Un ampersand reemplaza el espacio por completo, y así el estado hover de un padre se une sin hueco.
El orden de las reglas impresas es el tercer caso. Porque una regla posterior de igual peso gana, el escritor conserva el orden del origen en cada nivel. De esta forma la cascada sobrevive la compilación, y una regla que querías que ganara sigue ganando.
Qué compila limpio y qué recibe una nota
Un compilador se gana la confianza nombrando sus propios límites. Por lo tanto, el panel de notas enumera cada construcción que el lector resolvió de una forma que deberías revisar.

Las definiciones e inclusiones de mixins compilan, porque los dos lenguajes las definen en el origen que pegaste. Las expresiones de guarda de Less compilan cuando la condición es una comparación simple. Así que un mixin con guarda inserta la rama que coincide.

La interpolación recibe una nota más a menudo. Porque un valor construido a partir de una variable dentro de una cadena necesita el valor en tiempo de compilación, el lector solo puede resolverlo cuando la variable está en el mismo archivo. Un valor que viene de un import que la página no tiene se queda como está escrito, y la nota dice qué nombre faltaba.
Los propios imports también reciben una nota. La página no puede traer otro archivo, ya que nunca toca la red. Así que un at-import se queda en la salida como un import de CSS normal, y el panel dice que el archivo no se leyó. Eso mantiene la salida honesta en lugar de silenciosamente equivocada.
El recuento junto a la salida forma parte de la misma idea. Porque una compilación puede cambiar el tamaño de un archivo en cualquier dirección, el panel informa de las reglas escritas, las declaraciones que contienen, y el tamaño de la entrada y de la salida. Así que una hoja de estilos que creció tras compilar se ve de un vistazo y no después de un despliegue.
En esta página
- La herramienta
- Qué hace un preprocesador CSS
- Cómo usar el conversor de preprocesador CSS
- Por qué compilar en el navegador
- Conseguir una compilación limpia con cualquier preprocesador CSS
- Siete errores resbaladizos con preprocesadores
- Preguntas sobre el preprocesador CSS
- Herramientas que van con esta
Sigue leyendo
Cómo usar el conversor de preprocesador CSS
Cuatro pasos, y ninguno necesita una cuenta.
- 1
Pega tu hoja de estilos
Así que copia el archivo entero y pégalo en el cuadro izquierdo. Un archivo parcial también sirve, de modo que un solo componente con su anidamiento basta para probarlo.
- 2
Elige la dirección
Luego escoge el lenguaje de origen. Para SCSS a CSS, elige SCSS como entrada y CSS como salida. Porque la página lee los tres, un archivo mezclado igual compila.
- 3
Lee el panel de notas
A continuación, revisa las notas antes de pegar la salida en cualquier sitio. Un nombre que el compilador no pudo resolver se arregla más fácil aquí que en un navegador que muestra un cuadro en blanco.
- 4
Copia el CSS
Finalmente, llévate la salida. El botón de copiar pone la hoja de estilos entera en tu portapapeles. Después de eso, guárdala junto al archivo de origen y enlázala como enlazas cualquier otra hoja de estilos.
Por qué compilar en el navegador
Cinco razones por las que esto supera las formas habituales de llegar a CSS plano.
Sin cadena de compilación
Así que te salvas la instalación. Un compilador dentro de un proyecto significa un gestor de paquetes, un script y un archivo de configuración. Para una sola hoja de estilos, son demasiadas piezas móviles.
Tu origen nunca sale
La compilación se ejecuta en la pestaña que ya tienes abierta. Por lo tanto, una hoja de estilos bajo contrato se queda en tu máquina. No se sube nada y no se registra nada.
Las dos direcciones
La mayoría de los compiladores solo van en un sentido. Porque esta página también agrupa CSS plano de nuevo en anidamiento, ayuda cuando heredas una hoja de estilos sin archivo de origen y quieres ordenarla.
Ves las suposiciones
Luego está el panel de notas. Una herramienta de compilación falla con un número de línea y nada más. Aquí, cada suposición se nombra con palabras claras junto a la salida.
Nada que mantener en marcha
Finalmente, no hay ningún proceso vigilando. Nada se reconstruye cuando guardas, y nada se rompe cuando vuelves un mes después. Así que el preprocesador CSS se queda aquí hasta que lo necesites.
Conseguir una compilación limpia con cualquier preprocesador CSS
Seis hábitos que mantienen la salida cerca de lo que esperas.
- Mantén el origen entero Así que pega el archivo, no un fragmento, cuando una variable se define arriba del todo. Porque el lector busca un nombre donde se definió, un fragmento al que le falta esa línea recibe una nota.
- Haz coincidir el lenguaje con el archivo Luego contrasta la dirección con el archivo que copiaste. Un archivo de Less leído como SCSS compila igual, pero las reglas de ampersand se comportan distinto y la salida puede sorprenderte.
- Evita mezclar los dos Un archivo que guarda a la vez una variable con dólar y otra con arroba no es legal en ningún lenguaje. Así que pártelo antes de pegarlo, y el panel de notas se queda callado.
- Vigila el ampersand El ampersand significa el selector padre. Por lo tanto, una regla con uno dentro de una media query se une al padre de fuera de la consulta, que rara vez es lo que quieres. Aun así, todos los preprocesadores CSS lo tratan igual, así que la regla viaja entre archivos.
- Pon nombre a tus mixins Un mixin llamado por un nombre que el lector encuentra se inserta limpio. Así que mantén los nombres de mixin distintos de los nombres de variable, y la búsqueda nunca tendrá dos candidatos.
- Minifica al final Compila primero y minifica después, en ese orden. Porque un minificador quita los comentarios, ejecutarlo antes tira las notas que explican la salida.
Siete errores resbaladizos con preprocesadores
Cada uno de estos parece inofensivo en el origen y hace daño en el navegador.
Anidamiento profundo
Cinco niveles de anidamiento se leen bien y compilan a un selector que nadie puede sobrescribir. Porque cada nivel añade peso al selector, una regla posterior con una sola clase pierde. Así que mantén el anidamiento en tres niveles.
Una variable duplicada
Un nombre definido dos veces en el mismo ámbito gana con el último valor. Entonces la primera mitad del archivo parece ignorar el cambio. El panel de notas nombra al ganador para que lo veas.
Unidades en un valor cero
Cero píxeles y cero son el mismo número en CSS. Porque una variable que guarda un cero pelado es más fácil de reutilizar, prefiere el cero simple y quita la unidad.
Salida de un mixin que nadie revisó
Un mixin que añade un prefijo de proveedor escribe cada línea en cada regla que lo llama. Así que una llamada dentro de un bucle multiplica la salida muy rápido. Revisa el tamaño compilado, y no el tamaño del origen.
Interpolación en un selector
Construir un nombre de clase a partir de una variable funciona en tiempo de compilación. Por lo tanto el nombre queda incrustado en el CSS y no puede cambiar en tiempo de ejecución. Un tema que necesita los dos estados necesita dos clases reales. Así que un preprocesador CSS es el lugar equivocado para ese trabajo.
Importar un parcial dos veces
Dos imports del mismo parcial escriben sus reglas dos veces. Entonces la segunda copia sobrescribe la primera, y una corrección en un sitio parece no hacer nada.
Olvidar el origen
El archivo compilado es lo que se publica, y no es lo que editas. Así que guarda el origen en el repositorio junto a él, o el siguiente cambio empieza desde un archivo plano sin anidamiento.
Preguntas sobre el preprocesador CSS
¿Este preprocesador CSS es gratis?
Sí. No hay cuenta, ni límite, ni plan de pago. Así que compilas tantas hojas de estilos como quieras.
¿Envía mi hoja de estilos a algún sitio?
No. Porque el lector y el escritor se ejecutan en tu navegador, el origen nunca sale de tu máquina. Por lo tanto, una hoja de estilos bajo contrato sigue siendo privada.
¿Puede compilar SCSS a CSS?
Sí. Pega el SCSS, elige SCSS como entrada y CSS como salida. Entonces el anidamiento se aplana, las variables se resuelven y los mixins se insertan.
¿Puede compilar Less a CSS?
Sí. Es la misma página con Less elegido como entrada. Porque los dos lenguajes comparten la idea del anidamiento, solo cambia la puntuación de las variables.
¿Lee Stylus?
Sí. Stylus prescinde de las llaves y los puntos y coma, y se apoya en la indentación. Así que el lector sigue la indentación cuando no encuentra una llave.
¿Puede convertir CSS de nuevo a SCSS?
Sí. Porque la misma página funciona en ambos sentidos, puede agrupar reglas planas por sus selectores compartidos en anidamiento y sacar los valores repetidos como variables.
¿Ejecuta mis mixins?
Inserta un mixin que esté definido en el archivo que pegaste. Un mixin que vive en un import que la página no puede leer se queda como llamada y recibe una nota. Así que no se adivina nada.
¿Qué pasa con un import?
Se queda en la salida como un import de CSS normal, y el panel de notas dice que el archivo no se leyó. Porque la página nunca toca la red, no puede traer el otro archivo.
¿Entiende las variables?
Sí. Una variable de Sass empieza por signo de dólar, y una de Less por arroba. Así que el lector las distingue por ese primer carácter y escribe el valor en su lugar.
¿Minifica la salida?
Puede hacerlo. Elegir minificar quita los comentarios y el espacio sobrante. Aun así, compila primero y minifica después, para que las notas sobrevivan el tiempo suficiente para leerlas.
¿La salida coincidirá exactamente con mi herramienta de compilación?
Coincide en las funciones comunes: anidamiento, variables, mixins, extends y guardas simples. Una construcción que tu herramienta resuelve con un plugin puede recibir aquí una nota en su lugar.
¿Maneja media queries dentro de una regla?
Sí. Porque las media queries anidadas se elevan al nivel superior igual que las eleva un preprocesador, la salida compilada conserva la misma cascada.
¿Admite el ampersand?
Sí. Una regla escrita con uno mantiene su padre unido, que es como se construye un estado hover o una clase modificadora. Así que el selector compilado se lee igual que en el origen.
¿Puedo pegar solo parte de un archivo?
Sí, siempre que las variables que usa estén dentro de la parte que pegaste. Un nombre definido por encima del fragmento que copiaste no se puede resolver, y la nota lo dice.
¿Escribe source maps?
No. Un source map apunta al archivo original mediante una ruta que solo tiene tu compilación. Como esta página no tiene ningún archivo al que apuntar, un mapa desde aquí induciría a error.
¿Funciona sin conexión?
Sí. Una vez cargada la página, no se descarga nada más. Así que el conversor sigue funcionando en un portátil en una sala sin señal.
¿Conserva mis comentarios?
Conserva un comentario de bloque por defecto y puede quitarlo cuando eliges minificar. Así que una nota de cabecera sobrevive, y una nota que solo importaba mientras editabas no.
¿Cuántos niveles de anidamiento puede leer?
No hay un techo fijo, y el límite práctico lo pones tú. El anidamiento profundo compila bien y se lee mal. Así que tres niveles son una buena costumbre.
¿Puede con un archivo grande?
Sí. Porque el trabajo es tratamiento de texto plano, una hoja de estilos de varios miles de líneas compila en bastante menos de un segundo en un portátil normal.
¿Escribe propiedades personalizadas de CSS?
Las lee y las escribe como declaraciones normales. Así que una propiedad personalizada del origen sobrevive la compilación intacta, y una variable de preprocesador puede contener una.
¿Y un mixin de prefijos de proveedor?
Se inserta como cualquier otro mixin, lo que escribe cada línea con prefijo en cada regla que lo llama. Por lo tanto, revisa el tamaño compilado y no el tamaño del origen.
¿Comprueba si hay errores?
Informa de lo que no pudo resolver en lugar de rechazar el archivo entero. Así que obtienes una salida usable más una lista, en vez de un error y nada más.
¿Puede comparar las dos direcciones?
Sí. Compila un archivo a CSS y luego vuelve a agrupar ese CSS, y una construcción con pérdida se delata sola. Todo lo que no sobrevive el viaje de ida y vuelta no estaba haciendo nada.
¿Toca mi portapapeles por su cuenta?
No. La página lee el portapapeles solo cuando pegas, y escribe solo cuando pulsas copiar. Así que no se toma ni se reemplaza nada sin un clic.
¿Hay un límite de tamaño?
No hay un límite estricto. Porque el trabajo ocurre en tu propia pestaña, el techo es tu máquina, y una hoja de estilos normal está muy por debajo.
¿Funciona en un teléfono?
Sí. Los cuadros se apilan, y el botón de copiar queda debajo de la salida. Así que una compilación rápida funciona desde un teléfono cuando estás lejos de tu máquina.
Herramientas que van con esta
Cuatro páginas a las que suele llevar el mismo trabajo.
Minificador de CSS
Luego encoge el archivo compilado antes de publicarlo. Porque minificar al final mantiene las notas legibles, aquí compilas primero y allí minificas después.
Abrir herramienta →Conversor de colores CSS
También comprueba un color que escribiste como variable. Entonces ves el mismo tono en hex, RGB y HSL antes de que entre en la hoja de estilos.
Abrir herramienta →Minificador de HTML
Para el marcado que acompaña a la hoja de estilos, este quita los comentarios y el espacio sobrante. Así que los dos archivos salen más ordenados.
Abrir herramienta →Conversor de PX a REM
Porque una variable de preprocesador a menudo guarda un tamaño de fuente, este convierte los píxeles en rem. Así que la escala se mantiene coherente después de la compilación.
Abrir herramienta →
Compila ahora una hoja de estilos
Pega el SCSS o el Less, lee las notas y llévate el CSS plano. Nada sale de tu navegador, así que una hoja de estilos bajo contrato sigue siendo tuya. Todo el trabajo cabe en un pegado.