Condicionales Sass: @if, @else y lógica mantenible

Aplica lógica en Sass para variantes controladas sin duplicar reglas, manteniendo salida CSS clara y predecible.

Las condicionales Sass permiten activar variantes de estilo en compilación, no en runtime del navegador.

@if es útil para themes, tamaños y modos de componente cuando la decisión es de build-time.

La lógica debe ser simple: muchas ramas suelen ser señal de arquitectura débil.

Piensa en reglas de sistema, no en ifs improvisados por componente.

  • Usa @if para resolver variaciones conocidas durante compilación: tono, tamaño, densidad o modo visual.
  • Si la decisión depende del usuario en tiempo real, eso corresponde a CSS/JS en runtime, no a Sass.
  • Puedes combinar mixins y @if para reducir duplicación manteniendo lectura clara.
  • Evita ramas largas; prioriza dos o tres opciones bien nombradas.
  • Las condicionales Sass permiten activar variantes de estilo en compilación, no en runtime del navegador.

Cuándo usar @if

Usa @if para resolver variaciones conocidas durante compilación: tono, tamaño, densidad o modo visual.

Si la decisión depende del usuario en tiempo real, eso corresponde a CSS/JS en runtime, no a Sass.

Mixin condicional limpio

Puedes combinar mixins y @if para reducir duplicación manteniendo lectura clara.

Evita ramas largas; prioriza dos o tres opciones bien nombradas.

Sass
10

Condicionales Sass: @if, @else y lógica mantenible

Aplica lógica en Sass para variantes controladas sin duplicar reglas, manteniendo salida CSS clara y predecible.

Código del tema: Arquitectura Sass escalable

📘 Teoría

Cuándo usar @if

1

Usa @if para resolver variaciones conocidas durante compilación: tono, tamaño, densidad o modo visual.

2

Si la decisión depende del usuario en tiempo real, eso corresponde a CSS/JS en runtime, no a Sass.

Mixin condicional limpio

1

Puedes combinar mixins y @if para reducir duplicación manteniendo lectura clara.

2

Evita ramas largas; prioriza dos o tres opciones bien nombradas.

Botón con variante por parámetro
@mixin button-tone($tone) {
  @if $tone == primary {
    background: #2563eb;
    color: #fff;
  } @else if $tone == danger {
    background: #dc2626;
    color: #fff;
  } @else {
    background: #e2e8f0;
    color: #0f172a;
  }
}

.btn {
  @include button-tone(primary);
  padding: .625rem 1rem;
  border-radius: 10px;
}

🧪 Aprende probando

Ejemplo Ejemplo: badge condicional Genera estilo según un parámetro de estado.

🏁 Retos

Reto Reto: añade rama warning Amplía el mixin con @else if para warning.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Sass.

Test de Sass
CodePen: card component pattern
Abrir en CodePen

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .