Convertir SCSS a CSS

Compila SCSS a CSS plano sin instalar nada. Admite variables, anidación, mixins con @content, media queries anidadas y funciones de color, y avisa con claridad de lo que no admite.

El resultado aparecerá aquí.

Cómo funciona Convertir SCSS a CSS

Compila SCSS a CSS plano sin instalar nada. Admite variables, anidación, mixins con @content, media queries anidadas y funciones de color, y avisa con claridad de lo que no admite.

Entrada SCSS
Salida CSS
Trabajos realizados 1.992

Herramientas relacionadas

Guía de uso

Con esta herramienta puedes convertir SCSS a CSS plano, el único que entienden los navegadores, sin instalar nada. Sustituye las variables, deshace la anidación, expande los mixins (también con @content), combina las media queries anidadas y calcula funciones de color como darken o rgba. Si encuentra algo que no admite, se detiene con un error claro y el número de línea en vez de generar CSS incorrecto.

Cómo convertir SCSS a CSS

  1. Pega tu SCSS. Si usa variables o mixins definidos en otros archivos, pega también esas definiciones al principio.
  2. Compila con el botón de ejecutar o con Ctrl + Enter.
  3. Si aparece un error, ajusta la línea indicada siguiendo las indicaciones de más abajo.
  4. Copia el CSS resultante o descárgalo como archivo de texto.

Ejemplo: un botón con mixin responsive

Definimos $primario: #8f39e8; y un mixin tablet que envuelve su @content en @media (min-width: 768px). Después, el bloque .boton declara color: #fff y background: $primario, añade un &:hover con darken($primario, 10%) e incluye @include tablet { padding: 12px 24px; }. El resultado son tres bloques:

  • .boton { color: #fff; background: #8f39e8; }
  • .boton:hover { background: #7519d5; }
  • @media (min-width: 768px) { .boton { padding: 12px 24px; } }

Fíjate en el tercero: el contenido del mixin acaba dentro de la media query, pero con el selector correcto. Dos media queries anidadas se combinan en una sola, por ejemplo screen and (min-width: 600px).

Qué admite y qué no

CaracterísticaSoporte
Variables, !default, !global y ámbitosSí
Anidación con &, &:hover, &__elemento e interpolación #{}Sí
@mixin e @include con argumentos por defecto, con nombre y @contentSí
@media anidada, @supports, @keyframes, @font-faceSí
Propiedades anidadas y selectores %placeholderSí; los placeholders no aparecen en la salida
Aritmética con +, - y *Sí, con unidades compatibles
darken, lighten, rgba, mix, transparentize, opacifySí
@if, @each, @for, @while, @functionNo: error explícito
@extend, @use e @import de archivos SassNo: error explícito

Los comentarios de línea (//) se eliminan y los de bloque se conservan. Los @import de CSS puro, con url() o un archivo .css, pasan sin cambios.

Errores frecuentes y cómo resolverlos

  • Undefined variable: $marca (line 2): la variable está definida en otro archivo. Pega su definición al principio.
  • @import of Sass files is not supported here: la herramienta no accede a tus archivos; pega directamente el contenido importado.
  • @each is not supported by this converter: despliega el bucle a mano, una regla por elemento.
  • @extend is not supported by this converter: pasa los estilos compartidos a un mixin y usa @include.
  • Undefined mixin: boton: falta la definición del mixin, o se usa antes de definirse.

Detenerse con un mensaje claro es intencionado: un CSS incompleto que compila sin quejarse solo traslada el problema al navegador.

Unidades y operaciones

$gap * 3 con $gap: 4px da 12px. Las unidades distintas no se combinan: 10px + 2em se queda tal cual y el navegador lo descartará, así que usa calc(); por ejemplo, calc(100% - #{8px * 2}) se compila como calc(100% - 16px). La división con / no se calcula a propósito, para no romper abreviaturas como font: 16px/1.5.

Cuándo usarla y privacidad

Es útil para ver qué CSS genera un fragmento, hacer un arreglo rápido en un equipo sin entorno de compilación, llevar un trozo de SCSS antiguo a un campo de CMS que solo admite CSS o comprobar resultados mientras aprendes Sass. Para compilar proyectos grandes en producción, sigue usando el compilador oficial de Sass. La compilación se ejecuta con JavaScript en tu navegador; el código no se envía al servidor y la página solo suma un contador de uso anónimo. Para el camino inverso tienes convertir CSS a SCSS, y para ordenar el resultado, formatear CSS. El resto de utilidades está en herramientas para desarrolladores.

Preguntas frecuentes

Porque los navegadores solo leen CSS. Las variables, la anidación y los mixins son características de SCSS que un compilador debe traducir antes a CSS plano. Si enlazas un archivo .scss en una página, el navegador ignora las reglas que no reconoce y la mayoría de estilos no se aplican. Esta herramienta hace ese paso de compilación sin instalar nada; en los proyectos reales suele automatizarse con el compilador oficial de Sass.

Esta herramienta no admite estructuras de control y muestra un error con el número de línea cuando las encuentra. Con bucles cortos, lo más rápido suele ser desplegarlos a mano: una regla por elemento en lugar de un @each sobre una lista. Las condiciones a menudo se pueden reducir a la rama que realmente usas. Si tu proyecto depende mucho de bucles, funciones o módulos, compílalo con el compilador oficial de Sass.

Que el SCSS que has pegado usa una variable que no está definida en ese texto. La mayoría de proyectos guardan colores y espaciados en un parcial aparte, que se incluye con @import o @use, y esta herramienta no puede leer los archivos de tu proyecto. Pega el contenido del archivo de variables encima de tu código y vuelve a compilar. El número de línea del mensaje indica dónde se usa la variable.

Para las características admitidas, el resultado es equivalente: mismos selectores, valores y media queries, aunque los espacios y saltos de línea pueden variar. La herramienta prefiere un error claro a una aproximación, así que si un fragmento compila sin errores puedes fiarte de la salida. En compilaciones críticas de producción, usa de todos modos la cadena de herramientas de tu proyecto como paso final.