Sass - Guía rápida

¿Qué es SASS?

SASS (Syntactically Awesome Stylesheet) es un preprocesador de CSS, que ayuda a reducir la repetición con CSS y ahorra tiempo. Es un lenguaje de extensión CSS más estable y potente que describe el estilo de un documento de forma limpia y estructural.

Inicialmente fue diseñado por Hampton Catlin y desarrollado por Natalie Weizenbaum en 2006. Más tarde, Weizenbaum y Chris Eppstein usó su versión inicial para extender el Sass con SassScript.

¿Por qué utilizar SASS?

  • Es un lenguaje de preprocesamiento que proporciona una sintaxis con sangría (su propia sintaxis) para CSS.

  • Proporciona algunas características, que se utilizan para crear hojas de estilo que permiten escribir código de manera más eficiente y fácil de mantener.

  • Es un superconjunto de CSS, lo que significa que contiene todas las características de CSS y es un preprocesador de código abierto, codificado en Ruby.

  • Proporciona el estilo del documento en un formato estructurado bueno que el CSS plano. Utiliza métodos reutilizables, declaraciones lógicas y algunas de las funciones integradas, como la manipulación del color, las matemáticas y las listas de parámetros.

Características de SASS

  • Es más estable, potente y compatible con versiones de CSS.

  • Es un superconjunto de CSS y está basado en JavaScript.

  • Se conoce como azúcar sintáctico para CSS, lo que significa que facilita que el usuario lea o exprese las cosas con mayor claridad.

  • Utiliza su propia sintaxis y se compila en CSS legible.

  • Puede escribir CSS fácilmente en menos código en menos tiempo.

  • Es un preprocesador de código abierto, que se interpreta en CSS.

Ventajas de SASS

  • Permite escribir CSS limpio en una construcción de programación.

  • Ayuda a escribir CSS rápidamente.

  • Es un superconjunto de CSS, que ayuda a los diseñadores y desarrolladores a trabajar de manera más eficiente y rápida.

  • Como Sass es compatible con todas las versiones de CSS, podemos usar cualquier biblioteca CSS disponible.

  • Es posible utilizar sintaxis anidada y funciones útiles como manipulación de color, matemáticas y otros valores.

Desventajas de SASS

  • Se necesita tiempo para que un desarrollador aprenda las nuevas funciones presentes en este preprocesador.

  • Si muchas personas están trabajando en el mismo sitio, entonces deberían usar el mismo preprocesador. Algunas personas usan Sass y algunas personas usan CSS para editar los archivos directamente. Por lo tanto, resulta difícil trabajar en el sitio.

  • Hay posibilidades de perder los beneficios del inspector de elementos integrado del navegador.

En este capítulo, aprenderemos el procedimiento paso a paso para instalar Ruby, que se utiliza para ejecutar los archivos SASS.

Requisitos del sistema para SASS

  • Operating System - multiplataforma

  • Browser Support - IE (Internet Explorer 8+), Firefox, Google Chrome, Safari, Opera

  • Programming Language - rubí

Instalación de Ruby

Step 1 - Abre el enlace https://www.ruby-lang.org/en/downloads/, verá una pantalla como se muestra a continuación:

Descargue la versión estable actual del archivo zip.

Step 2 - A continuación, ejecute la configuración para instalar Ruby en el sistema.

Step 3- A continuación, agregue la carpeta bin Ruby a su Variable de usuario PATH y Variable de sistema para trabajar con el comando gem.

Path User Variable -

  • Haga clic derecho en el My Computer icono.

  • Seleccione Properties.

  • A continuación, haga clic en el Advanced pestaña y haga clic en Environment Variables.

En la ventana de Variables de entorno , haga doble clic en la RUTA como se muestra en la captura de pantalla que se muestra a continuación:

Obtendrá un cuadro Editar variable de usuario como se muestra. Agregue la ruta de la carpeta ruby ​​bin en el campo Valor variable comoC:\Ruby\bin. Si la ruta ya está configurada para otros archivos, coloque un punto y coma después de eso y agregue la ruta de la carpeta Ruby como se muestra a continuación.

Haga clic en el OK botón.

System Variable -

  • Haga clic en el New botón.

A continuación, el New System Variable El bloque se muestra como se muestra a continuación.

  • Entrar RubyOpten el campo Nombre de variable yrubygemsen el campo Valor de variable . Después de escribir el nombre y el valor de la variable , haga clic en elOK botón.

Step 4 - Abra el símbolo del sistema en su sistema e ingrese la siguiente línea -

gem install sass

Step 5 - A continuación, verá la siguiente pantalla después de instalar SASS correctamente.

Ejemplo

El siguiente es un ejemplo simple de SASS.

<html>
   <head>
      <title> Import example of sass</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css"/>
   </head>

   <body>
      <h1>Simple Example</h1>
      <h3>Welcome to TutorialsPoint</h3>
   </body>
</html>

Ahora, crearemos un archivo como style.scss , que es bastante similar a CSS y la única diferencia es que se guardará con la extensión .scss. Los archivos .htm y .scss deben crearse dentro de la carpetaruby. Puede guardar su archivo .scss en la carpetaruby\lib\sass\ (antes de este proceso, cree una carpeta como sass en el directorio lib).

h1{
   color: #AF80ED;
}

h3{
   color: #DE5E85;
}

Puede decirle a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS, utilizando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

Cuando ejecute el comando anterior, creará el archivo style.css automáticamente. Siempre que cambie el archivo SCSS, el archivo style.css se actualizará automáticamente.

El archivo style.css tendrá el siguiente código cuando ejecute el comando anterior:

style.css

h1 {
   color: #AF80ED;
}
h3 {
   color: #DE5E85;
}

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código dado arriba en hello.html archivo.

  • Abra este archivo HTML en un navegador.

En este capítulo, estudiaremos sobre SASS Syntax. SASS admite dos sintaxis a saberSCSS y Indented syntax.

  • los SCSS (Sassy CSS)es una extensión de la sintaxis CSS. Esto significa que cada CSS válido es también un SCSS válido. SCSS facilita mucho el mantenimiento de hojas de estilo grandes y puede reconocer la sintaxis específica del proveedor. Muchos archivos CSS y SCSS usan la extensión.scss.

  • Indented - Esta es una sintaxis anterior y, a veces, simplemente se llama como SASS. Usando esta forma de sintaxis, CSS se puede escribir de forma concisa. Los archivos SASS usan la extensión.sass.

Sintaxis con sangría de SASS

La sintaxis con sangría SASS o simplemente SASS es una alternativa a la sintaxis SCSS basada en CSS.

  • Utiliza sangría en lugar de{ y } para delimitar bloques.

  • Para separar declaraciones, usa líneas nuevas en lugar de punto y coma (;) .

  • La declaración de propiedad y los selectores deben colocarse en su propia línea y las declaraciones dentro{ y }debe colocarse en una nueva línea y sangrar .

Por ejemplo, considere el siguiente código SCSS:

.myclass {
   color = red;
   font-size = 0.2em;
}

los indentedLa sintaxis es una sintaxis anterior, que no se recomienda para su uso en nuevos archivos Sass. Si usa este archivo, mostrará un error en el archivo CSS como lo hemos usado= en lugar de establecer propiedades y variables.

Compile el código dado anteriormente usando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

A continuación, ejecute el comando anterior; mostrará un error en el archivo style.css como se muestra a continuación:

Error: Invalid CSS after "  color = red": expected "{", was ";"
      on line 2 of C:\ruby\lib\sass\style17.scss

1:.myclass {
2:   color = red;
3:   font-size = 0.2em;
4:}

Diferencias de sintaxis de SASS

La mayoría de las sintaxis CSS y SCSS funcionan perfectamente en SASS. Sin embargo, existen algunas diferencias, que se explican en las siguientes secciones:

Sintaxis de propiedad

Las propiedades CSS se pueden declarar de dos formas:

  • Las propiedades se pueden declarar similares a CSS pero sin semicolon(;).

  • colon(:) se antepondrá a cada nombre de propiedad.

Por ejemplo, puede escribir como:

.myclass
   :color red
   :font-size 0.2em

Ambas formas anteriores (declaración de propiedades sin punto y coma y dos puntos prefijados al nombre de la propiedad) se pueden utilizar de forma predeterminada. Sin embargo, solo se permite especificar una sintaxis de propiedad cuando se usa la opción : property_syntax .

Selectores multilínea

En la sintaxis con sangría, los selectores se pueden colocar en una nueva línea siempre que aparezcan después commas.

Ejemplo

El siguiente ejemplo describe el uso de selectores multilínea en el archivo SCSS:

<html>
   <head>
      <title>Multiline Selectors</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css" />
      <link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
   </head>
   
   <body>
      <h2>Example using Multiline Selectors</h2 >
      <p class = "class1">Welcome to Tutorialspoint!!!</p>
      <p class = "class2">SASS stands for Syntactically Awesome Stylesheet...</p>
   </body>
</html>

A continuación, cree el archivo style.scss . Tenga en cuenta la extensión .scss .

style.scss

.class1,
.class2{
   color:red;
}

Puede decirle a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS, utilizando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

A continuación, ejecute el comando anterior, creará el archivo style.css automáticamente con el siguiente código:

El style.css generado es el que se muestra a continuación:

style.css

.class1,
.class2 {
   color: red;
}

Salida

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código html dado anteriormente en el archivo .html multiline_selectors .

  • Abra este archivo HTML en un navegador, se muestra una salida como se muestra a continuación.

Comentarios

Los comentarios ocupan una línea completa y encierran todo el texto anidado debajo de ellos. Están basados ​​en líneas en sintaxis con sangría. Para obtener más información sobre los comentarios, consulte este enlace .

@importar

En SASS el @importLa directiva se puede escribir con / sin comillas. A diferencia de SCSS, deben usarse con comillas.

Por ejemplo, en SCSS el @import La directiva se puede utilizar como:

@import "themes/blackforest";
@import "style.sass";

Esto se puede escribir en SASS como:

@import themes/blackforest
@import fontstyle.sass

Directivas Mixin

SASS admite taquigrafía para directivas como @mixin y @include. En vez de@mixin y @include puedes usar = y + caracteres, que requieren menos escritura y hacen que su código sea más simple y más fácil de leer.

Por ejemplo, puede escribir las directivas mixin como:

=myclass
   font-size: 12px;
p
   +myclass

El código anterior es el mismo que:

@mixin myclass
   font-size: 12px;
p
   @include myclass

Sintaxis obsoleta

SASS admite el uso de alguna sintaxis antigua. Sin embargo, usar esta sintaxis en SASS esnot recommended. Se mostrará una advertencia si usa esta sintaxis y se elimina en versiones posteriores. Algunas de las sintaxis antiguas se muestran en la siguiente tabla.

S. No. Operador y descripción
1

=

Se usó en lugar de: al establecer variables y propiedades en valores de SassScript.

2

||=

Se usó en lugar de: cada vez que asigna un valor predeterminado de una variable.

3

!

En lugar de $,! se utilizó como prefijo de variable. La funcionalidad no cambiará cuando se use en lugar de $.

SASS es más potente y estable que proporciona potencia al lenguaje básico mediante el uso de la extensión de CSS. Puede utilizar SASS de tres formas diferentes:

  • Como herramienta de línea de comandos
  • Como módulo Ruby
  • Como complemento para el marco de habilitación de Rack

Si está utilizando SASS en Windows, debe instalar Rubyprimero. Para obtener más información sobre la instalación de Ruby, consulte el capítulo Instalación de SASS .

La siguiente tabla muestra los comandos que se utilizan para ejecutar el código SASS:

S. No. Comando y descripción
1

sass input.scss output.css

Se utiliza para ejecutar el código SASS desde la línea de comandos.

2

sass --watch input.scss:output.css

Le informa a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS.

3

sass --watch app/sass:public/stylesheets

Se utiliza para observar el directorio completo, si SASS contiene muchos archivos en un directorio.

Complemento Rack / Rails / Merb

Rackes una interfaz de servidor web, que se utiliza para desarrollar aplicaciones web en Ruby. Para obtener información sobre Rack, visite este enlace .

Puede habilitar el SASS en el Rails 3 versión usando el environment.rb archivo presente bajo el configcarpeta. Habilite SASS para Rails 3 usando el siguiente código:

config.gem "sass"

Puede usar la siguiente línea para el Gemfile para Rails 3 (y la versión superior), como:

gem "sass"

Railses un marco web de código abierto que utiliza estándares web como JSON, HTML, CSS y JavaScript para mostrar la interfaz de usuario. Para trabajar con Rails, debe tener un conocimiento básico de Ruby y programación orientada a objetos. Obtenga más información sobre el marco de on Rails aquí .

Si desea habilitar el SASS en Rack aplicación, agregue las siguientes líneas a la config.ru archivo, que está presente en el directorio raíz de la aplicación -

require 'sass/plugin/rack'
use Sass::Plugin::Rack

Merbes un marco de aplicación web, que proporciona velocidad y modularidad a Rails. Para saber más sobre Merb, simplemente abra este enlace .

Puede habilitar el SASS en Merb agregando la siguiente línea al config/dependencies.rb archivo -

dependency "merb-haml"

Almacenamiento en caché

SASS almacena en caché documentos como plantillas y parciales, que se pueden reutilizar sin analizarlos a menos que hayan cambiado. Hace que la compilación de archivos SASS sea más rápida y funciona incluso mejor cuando las plantillas se dividen en archivos separados, que se importan todos en un archivo grande. Si elimina los archivos en caché, se volverán a generar la próxima vez que los compile.

Opciones

Puede configurar las opciones en el archivo environment.rb de Rails o en el archivo config.ru de la aplicación Rack usando la siguiente línea:

Sass::Plugin.options[:style] = :compact

También puede configurar opciones en el init.rb archivo de Merb utilizando la siguiente línea -

Merb::Plugin.config[:sass][:style] = :compact

Hay algunas opciones disponibles con SASS y SCSS como se describe en la tabla que se muestra a continuación:

S. No. Opción y descripción
1

:style

Muestra el estilo de la salida.

2

:syntax

Puede usar sintaxis con sangría para sass y sintaxis de extensión CSS para scss .

3

:property_syntax

Utiliza sintaxis con sangría para hacer uso de propiedades. Si no es correcto, arrojará un error. Por ejemplo, considere "background: # F5F5F5" en el que background es un nombre de propiedad y # F5F5F5 es su valor de propiedad. Debe utilizar dos puntos después del nombre de la propiedad.

4

:cache

Acelera la compilación de archivos SASS. Se establece en verdadero de forma predeterminada.

5

:read_cache

Solo lee archivos SASS si la caché no está configurada y read_cache está configurada.

6

:cache_store

Se puede usar para almacenar y acceder al resultado en caché configurándolo en una instancia de Sass :: CacheStores :: Base .

7

:never_update

Nunca debería actualizar el archivo CSS si los archivos de plantilla cambian. De forma predeterminada, se establece en falso.

8

:always_update

Debería actualizar el archivo CSS cada vez que cambien los archivos de plantilla.

9

:always_check

Debe buscar las actualizaciones cada vez que se inicia el servidor. Volverá a compilar y sobrescribirá el archivo CSS, si hay una actualización en el archivo de plantilla SASS.

10

:poll

Utiliza el backend de sondeo para Sass :: Plugin :: Compiler # watch (que observa la plantilla y la actualización de los archivos CSS) configurándolo en verdadero.

11

:full_exception

Muestra la descripción del error cada vez que ocurre una excepción en el código SASS dentro del archivo CSS generado. Muestra un número de línea donde ocurrió un error junto con la fuente en el archivo CSS.

12

:template_location

Proporciona la ruta para el directorio de plantillas en la aplicación.

13

:css_location

Proporciona la ruta para las hojas de estilo CSS en la aplicación.

14

:unix_newlines

Proporciona nuevas líneas al estilo Unix al escribir archivos configurándolo en verdadero.

15

:filename

Es el nombre del archivo que se muestra y se utiliza para informar errores.

dieciséis

:line

Especifica la primera línea de la plantilla SASS y muestra los números de línea para los errores.

17

:load_paths

Se utiliza para cargar las rutas de la plantilla SASS que se incluyen mediante la directiva @import .

18

:filesystem_importer

Se utiliza para importar archivos desde el sistema de archivos que usa la subclase Sass :: Importers :: Base para manejar rutas de carga de cadenas.

19

:sourcemap

Genera mapas de origen que instruyen al navegador a encontrar los estilos SASS. Utiliza tres valores:

  • :auto- Contiene URI relativos. Si no hay un URI relativo, entonces usa "file:" URI.

  • :file - Utiliza "file:" URI, que funcionan localmente, no en un servidor remoto.

  • :inline - Contiene texto de origen en el mapa de origen que se utiliza para crear archivos de mapas de origen de gran tamaño.

20

:line_numbers

Muestra el número de línea de los errores informados en el archivo CSS configurándolo en verdadero.

21

:trace_selectors

Ayuda a rastrear los selectores de importaciones y mixins cuando se establece en verdadero.

22

:debug_info

Proporciona información de depuración del archivo SASS utilizando el número de línea y el archivo cuando se establece en verdadero.

23

:custom

Hace que los datos estén disponibles para las funciones SASS en las aplicaciones separadas.

24

:quiet

Deshabilita las advertencias configurándolo en verdadero.

Selección de sintaxis

Puede determinar qué sintaxis está utilizando en la plantilla SASS utilizando la herramienta de línea de comandos de SASS. De forma predeterminada, SASS utiliza una sintaxis con sangría que es una alternativa a la sintaxis SCSS basada en CSS. Puede usar el programa de línea de comandos SCSS, que es similar al programa SASS, pero por defecto, considera que la sintaxis es SCSS.

Codificaciones

SASS utiliza la codificación de caracteres de las hojas de estilo especificando las siguientes especificaciones CSS:

  • Primero, verifica el byte Unicode, luego la declaración @charset y luego la codificación de cadena Ruby.

  • A continuación, si no se establece nada, entonces considera la codificación del juego de caracteres como UTF-8 .

  • Determine la codificación de caracteres de forma explícita mediante la declaración @charset . Simplemente use "@charset encoding name" al comienzo de la hoja de estilo y SASS asumirá que esta es la codificación de caracteres dada.

  • Si el archivo de salida de SASS contiene caracteres que no son ASCII, usará la declaración @charset .

En este capítulo, estudiaremos sobre CSS Extensions. Las extensiones CSS se pueden utilizar para mejorar la funcionalidad de las páginas web. La siguiente tabla enumera algunas de las extensiones CSS utilizadas en SASS:

S. No. Extensión y descripción CSS
1 Reglas anidadas

Es una forma de combinar varias reglas CSS entre sí.

2 Hacer referencia a los selectores de padres: &

Es el proceso de seleccionar el selector principal mediante el & personaje.

3 Propiedades anidadas

Permite el anidamiento de propiedades en otras propiedades, lo que conduce a la agrupación de otro código relacionado.

4 Selectores de marcador de posición

Sass admite el selector de marcador de posición mediante el selector de clase o id haciendo uso de la directiva @extend .

En este capítulo, estudiaremos sobre Sass Comments. Los comentarios son declaraciones no ejecutables, que se colocan en el código fuente. Los comentarios facilitan la comprensión del código fuente. SASS admite dos tipos de comentarios.

  • Multiline comments- Estos se escriben usando / * y * /. Los comentarios de varias líneas se conservan en la salida CSS.

  • Single line comments - Estos están escritos usando //seguido de comentarios. Los comentarios de una sola línea no se conservan en la salida CSS.

Ejemplo

El siguiente ejemplo demuestra el uso de comentarios en el archivo SCSS:

<html>
   <head>
      <title>SASS comments</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css"/>
   </head>

   <body>
      <h1>Welcome to TutorialsPoint</h1>
      <a href = "http://www.tutorialspoint.com/">TutorialsPoint</a>
   </body>
</html>

A continuación, cree el archivo style.scss .

style.scss

/* This comment is
 * more than one line long
 * since it uses the CSS comment syntax,
 * it will appear in the CSS output. */
body { color: black; }

// These comments are in single line
// They will not appear in the CSS output,
// since they use the single-line comment syntax.
a { color: blue; }

Puede decirle a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS, utilizando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

A continuación, ejecute el comando anterior, creará el archivo style.css automáticamente con el siguiente código:

style.css

/* This comment is
 * more than one line long
 * since it uses the CSS comment syntax,
 * it will appear in the CSS output. */
body {
   color: black; }

a {
   color: blue; }

Salida

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código html dado anteriormente en sass_comments.html archivo.

  • Abra este archivo HTML en un navegador, se muestra una salida como se muestra a continuación.

Para estudiar sobre la interpolación en comentarios de varias líneas, haga clic en este enlace .

Sass - Interpolación en comentarios multilínea

Descripción

La interpolación dentro de los comentarios de varias líneas se resuelve en el CSS resultante. Puede especificar variables o nombres de propiedades entre llaves.

Sintaxis

$var : "value";
/* multiline comments #{$var} */

Ejemplo

El siguiente ejemplo demuestra el uso de la interpolación en comentarios de varias líneas en el archivo SCSS:

<html>
   <head>
      <title>SASS comments</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css"/>
   </head>

   <body>
      <h1>Welcome to TutorialsPoint</h1>
      <p>This is an example for Interpolation in SASS.</p>
   </body>
</html>

A continuación, cree el archivo style.scss .

style.css

$version: "7.8";
/* Framework version for the generated CSS is #{$version}. */

Puede decirle a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS, utilizando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

A continuación, ejecute el comando anterior; creará el archivo style.css automáticamente con el siguiente código

style.css

/* Framework version for the generated CSS is 7.8. */

Salida

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código html dado anteriormente en sass_comments_interpolation.htm archivo.

  • Abra este archivo HTML en un navegador, se muestra una salida como se muestra a continuación.

SASS utiliza un pequeño conjunto de extensiones conocidas como SassScript que se pueden incluir en los documentos de SASS para calcular variables a partir de valores de propiedad y utiliza propiedades de variables, aritmética y otras funciones. SassScript también se puede usar con selectores y nombres de propiedades mientras se usan mixins (Mixins permite reutilizar estilos CSS en toda la hoja de estilo).

La siguiente tabla enumera algunas de las extensiones CSS utilizadas en SASS:

S. No. Extensión y descripción CSS
1 Shell interactivo

Evalúa la expresión de SassScript mediante la línea de comandos.

2 Variables

Representa los datos como valores numéricos, caracteres o direcciones de memoria.

3 Tipos de datos

Declara el tipo de datos para cada objeto de datos.

4 Operaciones

Proporciona operaciones como operaciones numéricas, de color, de cadena, booleanas y de lista.

5 Paréntesis

Es un par de signos que suelen estar marcados con corchetes () o corchetes [].

6 Funciones

Es compatible con el uso de funciones proporcionando algunos argumentos de palabras clave.

7 Interpolación

Proporciona variables de SassScript y nombres de propiedades mediante #{ } sintaxis.

8 y en SassScript

Permite el anidamiento de propiedades en otras propiedades, lo que conduce al grupo de otro código relacionado.

9 Valores predeterminados variables

Permite el anidamiento de propiedades en otras propiedades, lo que conduce al grupo de otro código relacionado.

La siguiente tabla enumera todas las reglas y directivas que puede utilizar en SASS.

S. No. Directivas y descripción
1 @importar

Importa los archivos SASS o SCSS, directamente toma el nombre del archivo para importar.

2 @medios de comunicación

Establece la regla de estilo para diferentes tipos de medios.

3 @ampliar

La directiva @extend se usa para compartir reglas y relaciones entre selectores.

4 @ en la raíz

La directiva @ at-root es una colección de reglas anidadas, que pueden crear un bloque de estilo en la raíz del documento.

5 @depurar

La directiva @debug detecta los errores y muestra los valores de expresión de SassScript en el flujo de salida de error estándar.

6 @advertir

La directiva @warn se utiliza para dar consejos de precaución sobre el problema; muestra los valores de expresión de SassScript en el flujo de salida de error estándar.

7 @error

La directiva @error muestra el valor de la expresión de SassScript como error fatal.

En este capítulo, estudiaremos sobre Control Directives & Expressions. El estilo basado en algunas condiciones o la aplicación del mismo estilo muchas veces con variaciones se puede lograr mediante el uso de directivas y expresiones de control, que son compatibles con SassScript. Estas directivas de control son opciones avanzadas que se utilizan principalmente en mixins. Requieren una flexibilidad considerable, ya que forman parte de las bibliotecas de Compass.

La siguiente tabla enumera las directivas y expresiones de control utilizadas en SASS:

S. No. Directiva de control y expresión con descripción
1 Si()

Según la condición, la función if () devuelve solo un resultado de dos resultados posibles.

2 @Si

La directiva @if acepta expresiones de SassScript y usa los estilos anidados siempre que el resultado de la expresión no sea falso o nulo .

3 @para

La directiva @for le permite generar estilos en un bucle.

4 @cada

En @each directiva, se define una variable que contiene el valor de cada elemento en una lista.

5 @mientras

Toma expresiones de SassScript y, hasta que la declaración se evalúa como falsa, genera estilos anidados de forma iterativa.

Los mixins permiten crear un grupo de estilos, que son reutilizables en toda su hoja de estilo sin necesidad de recreación de clases no semánticas. En CSS, los mixins pueden almacenar múltiples valores o parámetros y llamar a la función; ayuda a evitar escribir códigos repetitivos. Los nombres de Mixin pueden usar guiones bajos y guiones indistintamente. Las siguientes son las directivas presentes en Mixins:

S. No. Directiva y descripción
1 Definiendo un Mixin

La directiva @mixin se usa para definir el mixin.

2 Incluyendo un Mixin

La directiva @include se usa para incluir los mixins en el documento.

3 Argumentos

Los valores de SassScript se pueden tomar como argumentos en mixins, que se dan cuando se incluye mixin y está disponible como variable dentro de mixin.

4 Pasar bloques de contenido a un mixin

El bloque de estilos se pasa al mixin.

En este capítulo, estudiaremos sobre Function Directives. En SASS, puede crear su propia función y usarlas en el contexto de su script o puede usarse con cualquier valor. Las funciones se llaman mediante el nombre de la función y con cualquier parámetro.

Ejemplo

El siguiente ejemplo demuestra el uso de la directiva de función en el archivo SCSS:

function_directive.htm

<html>
   <head>
      <title>Nested Rules</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css" />
      <link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
   </head>

   <body>
      <div class = "container" id = "set_width">
         <h2>Example for Function directives</h2>
         <p>SASS stands for Syntactically Awesome Stylesheet. </p>
      </div>
   </body>
</html>

A continuación, cree el archivo style.scss .

style.scss

$first-width: 5px;
$second-width: 5px;

@function adjust_width($n) {
   @return $n * $first-width + ($n - 1) * $second-width;
}

#set_width { padding-left: adjust_width(10); }

Puede decirle a SASS que observe el archivo y actualice el CSS cada vez que cambie el archivo SASS, utilizando el siguiente comando:

sass --watch C:\ruby\lib\sass\style.scss:style.css

A continuación, ejecute el comando anterior; creará el archivo style.css automáticamente con el siguiente código:

style.css

#set_width {
   padding-left: 95px; 
}

Salida

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código html dado anteriormente en function_directive.html archivo.

  • Abra este archivo HTML en un navegador, se muestra una salida como se muestra a continuación.

En la salida, puede ver que se está aplicando el relleno izquierdo.

Al igual que mixin, la función también puede acceder a variables definidas globalmente y también puede aceptar parámetros. Debe llamar al valor de retorno de la función usando@return. Podemos llamar a las funciones definidas por SASS usando parámetros de palabras clave.

Llame a la función anterior como se muestra a continuación.

#set_width { padding-left: adjust_width($n: 10); }

Convenciones de nombres

Para evitar conflictos de nombres, los nombres de las funciones pueden tener un prefijo para que puedan diferenciarse fácilmente. Al igual que los mixins, los argumentos de variables también son compatibles con funciones definidas por el usuario. Las funciones y otros identificadores SASS pueden usar guiones bajos (_) y guiones (-) indistintamente.

Por ejemplo, si una función se define como adjust_width, se puede utilizar como adjust-width, y viceversa.

En este capítulo, estudiaremos sobre SASS Output Style. El archivo CSS que genera el SASS consta de un estilo CSS predeterminado, que refleja la estructura del documento. El estilo CSS predeterminado es bueno, pero puede que no sea adecuado para todas las situaciones; por otro lado, SASS admite muchos otros estilos.

Admite los siguientes estilos de salida diferentes:

:anidado

El estilo anidado es el estilo predeterminado de SASS. Esta forma de estilo es muy útil cuando se trata de archivos CSS de gran tamaño. Hace que la estructura del archivo sea más legible y fácil de entender. Cada propiedad tiene su propia línea y la sangría de cada regla se basa en qué tan profundamente está anidada.

Por ejemplo, podemos anidar el código en el archivo SASS como se muestra a continuación:

#first {
   background-color: #00FFFF;
   color: #C0C0C0; 
}

#first p {
   width: 10em; 
}

.highlight {
   text-decoration: underline;
   font-size: 5em;
   background-color: #FFFF00; 
}

:expandido

En el tipo expandido de estilo CSS, cada propiedad y regla tiene su propia línea. Toma más espacio en comparación con el estilo CSS anidado. La sección Reglas consta de propiedades, todas ellas previstas dentro de las reglas, mientras que las reglas no siguen ninguna sangría.

Por ejemplo, podemos expandir el código en el archivo SASS como se muestra a continuación:

#first {
   background-color: #00FFFF;
   color: #C0C0C0;
}

#first p {
   width: 10em;
}

.highlight {
   text-decoration: underline;
   font-size: 5em;
   background-color: #FFFF00;
}

:compacto

El estilo CSS compacto ocupa menos espacio de forma competitiva que Expanded y Nested. Se centra principalmente en los selectores más que en sus propiedades. Cada selector ocupa una línea y sus propiedades también se colocan en la misma línea. Las reglas anidadas se colocan una al lado de la otra sin una nueva línea y los grupos de reglas separados tendrán nuevas líneas entre ellos.

Por ejemplo, podemos compactar el código en el archivo SASS como se muestra a continuación:

#first { 
   background-color: #00FFFF; color: #C0C0C0; 
}

#first p { 
   width: 10em; 
}

.highlight { 
   text-decoration: underline; font-size: 5em; background-color: #FFFF00; 
}

:comprimido

El estilo CSS comprimido ocupa la menor cantidad de espacio en comparación con todos los demás estilos discutidos anteriormente. Proporciona espacios en blanco solo para separar selectores y una nueva línea al final del archivo. Esta forma de diseñar es confusa y no es fácil de leer.

Por ejemplo, podemos comprimir el código en el archivo SASS como se muestra a continuación:

#first { 
   background-color:#00FFFF;color:#C0C0C0
} 

#first p { 
   width:10em 
} 

.highlight { 
   text-decoration:underline;font-size:5em;background-color:#FFFF00 
}

Puede ampliar la funcionalidad de SASS para proporcionar diferentes tipos de funciones y personalizaciones para los usuarios. Para hacer uso de estas funciones, el usuario debe tener conocimientos de Ruby.

Definición de funciones SASS personalizadas

Puede definir sus propias funciones SASS mientras usa Ruby API. Puede agregar sus funciones personalizadas agregándolas a los métodos de Ruby como se muestra en el siguiente código:

module Sass::Script::Functions
   def reverse(string)
      assert_type string, :String
      Sass::Script::Value::String.new(string.value.reverse)
   end
   declare :reverse, [:string]
end

En el código que puede ver, la función, declare, especifica los nombres de los argumentos para la función. Si falla, no aceptará ningún argumento incluso si la función está funcionando y también acepta argumentos de palabra clave arbitrarios. Puede obtener valores de Ruby utilizando el descriptor de acceso de valor y acceder a los objetos de color utilizando rgb, rojo, verde o azul .

Almacenes de caché

SASS almacena la caché de los documentos analizados, que se pueden reutilizar sin volver a analizar. Usos de SASS:cache_locationpara escribir archivos de caché en el sistema de archivos. Hace que la compilación de archivos SASS sea más rápida y, si elimina los archivos en caché, se volverán a generar la próxima vez que los compile. Puede definir su propio almacén de caché configurando el:cache_storeopción. Esto escribirá archivos de caché en el sistema de archivos o compartirá archivos de caché en procesos o máquinas de ruby. SASS usa una instancia de la subclase de Sass :: CacheStores :: Base para almacenar y recuperar los resultados de la caché.

Importadores personalizados

SASS usa @import para importar archivos SCSS y SASS y pasa rutas a la regla @import para encontrar un código de ruta apropiado para rutas especificadas. Los importadores de SASS usan el sistema de archivos para cargar el código y lo agregan a la carga usando una base de datos o un esquema de nombres de archivos diferente.

El importador único puede cargar un solo archivo y puede colocarse en la matriz : load_paths junto con las rutas del sistema de archivos. Mientras usa @import , SASS busca rutas cargadas, que importan la ruta para el importador. Cuando se encuentra la ruta, se utiliza el archivo importado. Un usuario puede heredar los importadores deSass::Importers::Base.