Cadenas en SASS
Este artículo explica las cadenas en SASS.
Explicaremos paso a paso desde operaciones básicas de cadenas hasta usos avanzados de cadenas en SASS.
YouTube Video
Cadenas en SASS
SASS es un preprocesador para extender CSS, y las cadenas son un elemento esencial para hacer que las definiciones de estilos sean más flexibles y dinámicas.
Conceptos Básicos de las Cadenas
Las cadenas en SASS pueden estar entre comillas simples o dobles y, en algunos casos, se pueden omitir las comillas para escribirlas como identificadores. A continuación hay ejemplos básicos de cómo escribirlas.
1// Single quotes
2$single-quoted: 'Hello, World!';
3// Double quotes
4$double-quoted: "Hello, World!";
5// No quotes
6$unquoted: Hello-World;
Notas
- Las cadenas entre comillas se evalúan directamente como literales de cadena.
- Las cadenas sin comillas a menudo se tratan como identificadores CSS, como nombres de clase o IDs, por lo que se debe tener cuidado de usarlas apropiadamente.
Concatenación de Cadenas
En SASS, puedes concatenar cadenas utilizando el operador +
.
1$greeting: "Hello";
2$name: "Alice";
3
4$result: $greeting + ", " + $name + "!"; // "Hello, Alice!"
- Este código es un ejemplo de cómo usar el operador
+
en SASS para concatenar varias cadenas y crear una nueva cadena.
Ejemplo Avanzado: Generación de Nombres de Clase
1$base-class: "btn";
2$modifier: "primary";
3
4.class-name {
5 content: $base-class + "--" + $modifier; // "btn--primary"
6}
- Este código es un ejemplo de cómo usar el operador
+
en SASS para combinar un nombre de clase base y un modificador, generando un nuevo nombre de clase.
Uso de Funciones de Cadenas
SASS proporciona funciones integradas convenientes para varias operaciones con cadenas como el control de comillas y la extracción de subcadenas.
quote()
y unquote()
Con las funciones quote()
y unquote()
, puedes añadir o quitar comillas a las cadenas.
1$quoted: quote(Hello); // '"Hello"'
2$unquoted: unquote("Hello"); // Hello
str-length($string)
La función str-length()
obtiene la longitud de una cadena.
1$length: str-length("Hello"); // 5
str-insert($string, $insert, $index)
La función str-insert()
inserta una cadena en la posición especificada.
1$result: str-insert("Hello", " SASS", 6); // "Hello SASS"
str-slice($string, $start-at, [$end-at])
La función str-slice()
extrae una parte de una cadena.
1$substring: str-slice("Hello, World!", 1, 5); // "Hello"
to-upper-case()
y to-lower-case()
Las funciones to-upper-case()
y to-lower-case()
convierten una cadena a mayúsculas o minúsculas, respectivamente.
1$upper: to-upper-case("sass"); // "SASS"
2$lower: to-lower-case("SASS"); // "sass"
Cadenas en Lógica Condicional
Usando la directiva @if
de SASS, puedes ramificar condicionalmente según los valores de las cadenas y cambiar los estilos de forma flexible de acuerdo a temas y configuraciones.
1$theme: "dark";
2
3@if $theme == "dark" {
4 body {
5 background-color: black;
6 color: white;
7 }
8} @else {
9 body {
10 background-color: white;
11 color: black;
12 }
13}
- Este código es un ejemplo de cómo usar la directiva
@if
en SASS para comprobar si el tema esdark
y así cambiar los estilos según corresponda.
Ejemplo Práctico: Generación Dinámica de Rutas de Imágenes de Fondo
A continuación se muestra un ejemplo de cómo usar manipulaciones de cadenas para generar una URL de imagen de fondo.
1$image-path: "/images/";
2$image-name: "background";
3$image-extension: ".jpg";
4
5.background {
6 background-image: url($image-path + $image-name + $image-extension);
7}
Resultado Compilado
1.background {
2 background-image: url("/images/background.jpg");
3}
- Este código es un ejemplo de cómo concatenar cadenas en SASS para generar dinámicamente la ruta de una imagen de fondo y aplicarla como fondo.
Combinando con Listas y Mapas
Combinando listas y mapas de SASS con operaciones con cadenas, puedes generar estilos de manera más flexible.
Ejemplo de Lista
1$states: "hover", "focus", "active";
2
3@each $state in $states {
4 .btn-#{$state} {
5 content: "Button in " + $state + " state";
6 }
7}
Resultado Compilado
1.btn-hover {
2 content: "Button in hover state";
3}
4.btn-focus {
5 content: "Button in focus state";
6}
7.btn-active {
8 content: "Button in active state";
9}
- Este código es un ejemplo de cómo usar la directiva
@each
en SASS para generar clases para cada estado en una lista, estableciendo contenido dinámicamente mediante la concatenación de cadenas.
Ejemplo de Mapa
1$colors: (
2 "primary": "#3498db",
3 "secondary": "#2ecc71"
4);
5
6@each $name, $color in $colors {
7 .text-#{$name} {
8 color: $color;
9 }
10}
Resultado Compilado
1.text-primary {
2 color: #3498db;
3}
4.text-secondary {
5 color: #2ecc71;
6}
- Este código es un ejemplo de cómo usar un mapa en SASS para asociar nombres de colores a valores y generar cada clase dinámicamente con la directiva
@each
.
Escape de Cadenas
Para utilizar de manera segura ciertas cadenas como identificadores CSS, puede ser necesario usar escapes.
1$special_character: "example\\@123";
2.#{$special_character} {
3 content: "This is a valid CSS class.";
4}
Resultado Compilado
1.example\@123 {
2 content: "This is a valid CSS class.";
3}
- Este código es un ejemplo de cómo tratar una cadena que contiene caracteres especiales como una variable en SASS, expandiéndola con
#{$variable}
y usándola como un nombre de clase válido en CSS.
Conclusión
Las operaciones con cadenas en SASS son más que simplemente escribir literales de cadena; son herramientas poderosas para construir estilos de forma dinámica. Al utilizar las operaciones y funciones básicas presentadas aquí, puedes mejorar la reutilización y el mantenimiento de tu CSS y diseñar estilos de manera más eficiente.
Puedes seguir el artículo anterior utilizando Visual Studio Code en nuestro canal de YouTube. Por favor, también revisa nuestro canal de YouTube.