SCSS

Si estás utilizando SCSS (Sassy CSS), es importante conocer algunas de las características y funcionalidades que te permiten aprovechar al máximo este preprocesador. Aquí tienes los puntos más importantes:

1. Variables

Las variables en SCSS permiten almacenar valores (como colores, tamaños o cualquier otra propiedad CSS) para reutilizarlos a lo largo del archivo. Esto mejora la mantenibilidad y la organización del código.

$primary-color: #3498db;
$font-size: 16px;

.button {
  background-color: $primary-color;
  font-size: $font-size;
}

2. Anidación (Nesting)

SCSS permite anidar selectores de una manera jerárquica, lo que hace que el código sea más legible y estructurado. Sin embargo, debes tener cuidado de no anidar demasiado para evitar reglas demasiado específicas.

nav {
  background-color: #333;
  
  ul {
    list-style: none;
    
    li {
      display: inline-block;
      
      a {
        color: white;
        text-decoration: none;
      }
    }
  }
}

3. Mixins

Los mixins son bloques de código reutilizables que puedes insertar en cualquier parte de tu SCSS. Pueden aceptar parámetros, lo que permite generar estilos dinámicos.

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
  -moz-border-radius: $radius;
  border-radius: $radius;
}

.button {
  @include border-radius(5px);
}

4. Funciones

Las funciones en SCSS permiten realizar cálculos o manipulaciones de valores antes de aplicarlos a las propiedades CSS.

@function calculate-rem($px) {
  $rem: $px / 16;
  @return #{$rem}rem;
}

h1 {
  font-size: calculate-rem(24px);
}

5. Partials y @import

SCSS permite dividir el código en archivos más pequeños (parciales) y luego importarlos en un archivo principal. Esto facilita la organización y modularización del código.

  • Los archivos parciales deben comenzar con un guion bajo (_archivo.scss).

  • Para importarlos, se usa @import.

// _variables.scss
$primary-color: #3498db;

// main.scss
@import 'variables';

6. Operadores

SCSS soporta operadores matemáticos, lo que te permite realizar cálculos directamente en tus estilos.

$base-size: 16px;
$width: $base-size * 3;

.container {
  width: $width;
}

7. Herencia con @extend

La directiva @extend permite que un selector herede las reglas de otro, lo que evita la repetición de código y facilita la reutilización de estilos.

.button {
  padding: 10px;
  background-color: #3498db;
}

.primary-button {
  @extend .button;
  font-weight: bold;
}

8. @media Queries y Breakpoints

Es común definir breakpoints usando variables para que sea más fácil mantener la consistencia a lo largo de los archivos de estilo.

$small-screen: 600px;
$medium-screen: 1024px;

@media (max-width: $small-screen) {
  .container {
    padding: 10px;
  }
}

@media (max-width: $medium-screen) {
  .container {
    padding: 20px;
  }
}

9. Maps

Los mapas son estructuras de datos en SCSS que permiten almacenar pares clave-valor, lo que es útil para agrupar datos relacionados, como temas o colores.

$colors: (
  primary: #3498db,
  secondary: #2ecc71,
  danger: #e74c3c
);

.button {
  background-color: map-get($colors, primary);
}

10. Control de flujo (if, for, each, while)

SCSS permite estructuras de control de flujo como condicionales (@if) y bucles (@for, @each, @while), lo que permite mayor flexibilidad y dinamismo en los estilos.

$themes: (light, dark);

@each $theme in $themes {
  .#{$theme}-theme {
    background-color: if($theme == light, white, black);
    color: if($theme == light, black, white);
  }
}

Resumen:

  • Variables: Almacenan valores reutilizables.

  • Anidación: Hace que los estilos sean más jerárquicos y legibles.

  • Mixins: Permiten reutilizar bloques de código con parámetros.

  • Funciones: Realizan cálculos y manipulaciones.

  • Partials e importaciones: Organizan el código en archivos pequeños.

  • Operadores: Permiten hacer operaciones matemáticas.

  • Herencia: Facilita la reutilización de estilos con @extend.

  • Media Queries: Organizan y reutilizan breakpoints.

  • Maps: Organizan pares de valores clave.

  • Control de flujo: Permite lógica condicional y bucles.

Estos son los aspectos esenciales que debes conocer si trabajas con SCSS, los cuales permiten crear hojas de estilo más organizadas, dinámicas y fáciles de mantener.

Last updated