SlideShare una empresa de Scribd logo
Entra en:
sngular.team
Sngular - Sass: Vitamina tu CSS
Fundada en 1995, Sngular
es una compañía de
tecnología, que cuenta
con todas las
competencias digitales
clave (DKCs) para
impulsar la
transformación digital en
sus clientes
Sngular - Sass: Vitamina tu CSS
3Grow
1Learn
2Build
1Learn
Recabamos información a partir de big
data y tendencias, combinando varias
de nuestras Key Digital Capabilities
tales como Cognitive Computing,
Innovation as a Service o Mobile
Dataset; con nuestra experiencia de
negocio para identificar oportunidades
y ventajas basadas en tecnología.
2Build
Definimos el conjunto de tecnologías, talento y
requerimientos para construir cada solución
desde un enfoque que pone al usuario en el
centro del proyecto y permite en el menor
plazo testarla con quien debe utilizarla.
Nuestros equipos practican desarrollo ágil,
involucrando a especialistas en testing en el
equipo de desarrollo, en un proceso iterativo y
sostenible, adaptado al ciclo de vida de las
aplicaciones.
3Grow
Lanzamos productos y servicios
digitales, captamos usuarios
segmentados y aceleramos la
adopción, apoyados en plataformas
y operaciones que permiten escalar
e incrementar las ventas.
Alfred es nuestro compañero virtual, un asistente en forma
de chatbot, que nos ayuda a mejorar la productividad,
eliminando las tareas aburridas y repetitivas.
Por ejemplo, puedes pedirle las vacaciones, que impute tus
dedicaciones, la clave de la wifi, y algunas dudas sobre las
políticas internas.
Puedes hablar con él a través de Hangouts y Slack.
¿Quién es Alfred?
sngular.com/eventos/
Eventos
sHub Sevilla
Sngular - Sass: Vitamina tu CSS
Sngular - Sass: Vitamina tu CSS
Nuestro
programa
Bootcamps
Sngular - Sass: Vitamina tu CSS
Nuevo
SevillasHUB
Nuevo
SevillasHUB
Spain | Mexico | United States
www.sngular.team
inmaculada.rodriguez@sngular.com
Vitamina tu CSS
¿Qué vamos a ver?
1. Conociendo Sass
2. Instalación
3. Tipos y conversión de ficheros
4. Organización e importación
5. Definiendo variables
6. Herencia con ‘@extends’
7. Uso y definición de ‘mixins’
8. Programando con SassScript
a. Variables II
b. Tipos de datos
c. Directivas de Control
9. Recursos útiles
De cero a fantSasstico
Conociendo Sass
Click to edit Master title style
● Preprocesador CSS
● DRY
● Mejor organización del código
● Compatible con CSS
Anidado
Variables
Operadores
Mixins
Extends
Funciones
...
¿Qué es Sass?
Release Actuales
LibSassDart Sass Ruby Sass
Instalación
Instalación
npm install -g sassDescarga Dart Sass o LibSass:
https://github.com/sass/
export PATH="tu-directorio:$PATH"
choco install sass
brew install
sass/sass/sass
sass --version
Comprobar la versión instalada
GITHUB
NPM
OTRAS
Tipos y
conversión de
ficheros
¿Sass o Scss?
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
nav
ul
margin: 0
padding: 0
list-style: none
li
display: inline-block
a
display: block
padding: 6px 12px
text-decoration: none
Css
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Conversión entre tipos:
sass-convert style.sass style.scss
a CSS:
sass style.sass style.css
sass --watch sass/style.sass:css/style.css
Organización e
importación
Ejemplo de estructura básica
sass/
|-- base/ # Código que no exporta CSS
| |-- _fonts.sass # Tipografías
| |-- _style-utilities.sass # Mixins, funciones, etc.
| |-- _variables.sass # Variables
|
|-- partials/ # Partials
| |-- _structure.sass # Estructura base
| |-- _buttons.sass # Botones
| |-- _forms.sass # Formulario
| |-- _reset.sass # Reset
| ...
|
|-- vendors/ # Componentes externos
| |-- _jquery.ui.core.scss
| ...
|
`-- main.sass # Fichero principal
main.sass
// Base utilities
@import "base/fonts"
@import "base/variables"
@import "base/style-utilities"
// Partials
@import "partials/reset"
@import "partials/structure"
@import "partials/buttons"
@import "partials/forms"
...
// Vendors
@import "vendor/jquery.ui.core"
...
Definiendo
variables
Variables
// Fuentes
$font: ‘Open Sans’, sans-serif
$font-title: Montserrat, sans-serif
// Colores
$green: #63D297
$gray: #666666
$primary-color: $green
// Otros valores
$box-shadow: 3px 3px 5px $gray
// Componentes
$accordion-border: $primary-color
Almacenaremos en ellas cualquier tipo de información.
.accordion
box-shadow: $box-shadow
&-title
font-family: $font-title
border-bottom: $accordion-border
.accordion {
box-shadow: 3px 3px 5px #666666;
}
.accordion-title {
font-family: Montserrat, sans-serif;
border-bottom: #63D297;
}
CSS
Uso_variables.sass
Herencia con
@extends
%button-secondary
background-color: #ffffff
padding: 10px
color: #333333
border: 1px solid
%button-2col
float: left
display: block
width: 50%
Extends: Definición y uso
button
@extend %button-secondary
!optional
.btn-success
@extend %button-secondary
border-color: green
.btn-cancel
@extend %button-secondary
border-color: red
Podemos compartir las propiedades CSS de un selector a otro.
UsoDefinición
button, .btn-success, .btn-cancel {
background-color: #ffffff;
padding: 10px;
color: #333333;
border: 1px solid;
}
.btn-success {
border-color: green;
}
.btn-cancel {
border-color: red;
}
Extends: Definición y uso
CSS
Uso y definición
de mixins
=transform($property)
-webkit-transform: $property
-ms-transform: $property
transform: $property
.box
+transform(rotate(30deg))
Mixins: Definición y uso
Conjunto de propiedades para reutilizar a las que ¡podemos pasarle parámetros!
@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.box {
@include transform(rotate(30deg));
}
SASS SCSS
=bullets($bullet-ico, $position: center, $padding: 14px)
margin-left: 0
li
padding-left: $padding
background-image: image-url($bullet-ico) no-repeat $position
list-style-type: none
ul
+bullets('ico-bullet.png', $padding: 16px)
Mixins: Definición y uso
DEFINICIÓN
USO
ul {
margin-left: 0;
}
ul li {
padding-left: 16px;
background: url('/images/ico-bullet.png') no-repeat center;
list-style-type: none;
}
Mixins: Definición y uso
CSS
Programando con
SassScript
$content: "Primer contenido"
$content: "¿Segundo contenido?" !default
#main
content: $content
Variables: default!
Nos permite mantener el valor original de la variable.
#main {
content: "Primer contenido";
}
SASS CSS
.title
$primary-color: pink !global
color: $primary-color
a
color: $primary_color
Variables: global!
Se definen al nivel en el que son declaradas, aunque podemos hacer uso de
!global.
.title {
color: pink;
}
a {
color: pink;
}
SASS CSS
$name: foo
$attr: border
p.#{$name}
#{$attr}-color: blue
Variables: interpolación
Podremos usar el valor de nuestras variables en nombres de selectores y
propiedades.
p.foo {
border-color: blue;
}
SASS CSS
● Números
● Cadenas de texto
● Colores
● Booleanos
● Valores nulos
● Listas de valores
● Mapas (clave: valor)
Tipos de Datos
Soportados por CSS
● Caracteres unicode
● !important
● ...
● @if
● @for
● @each
● @while
Directivas de Control
$type: unicorn
p
@if $type == horse
color: blue
@else if $type == pony
color: yellow
@else if $type == unicorn
color: pink
@else
color: black
Directivas: @if
Solo muestra los estilos en caso de que cumpla la condición.
p {
color: pink;
}
SASS CSS
@for $i from 1 through 3
.item-#{$i}
width: 2em * $i
@for $i from 1 to 3
.item-#{$i}
width: 2em * $i
Directivas: @for
Muestra los estilos indicados para las iteraciones marcadas.
.item-1 {
width: 2em;
}
.item-2 {
width: 4em;
}
.item-3 {
width: 6em;
}
SASS CSS
$rrss: fb tw yt
@each $item in $rrss
.box-#{$item}
background-image: url('ico-#{$item}.svg')
Directivas: @each
Aplica los estilos a cada elemento de una lista o mapa.
.box-fb {
background-image: url("ico-fb.svg");
}
.box-tw {
background-image: url("ico-tw.svg");
}
.box-yt {
background-image: url("ico-yt.svg");
}
SASS CSS
$i: 6
@while $i > 0
.item-#{$i}
width: 2em * $i
$i: $i - 2
Directivas: @while
Se añadirán los estilos mientras se cumpla una condición
.item-6 {
width: 12em;
}
.item-4 {
width: 8em;
}
.item-2 {
width: 4em;
}
SASS CSS
Recursos Útiles
Sass: Utilidades
SassDocSassmeister SassMe The Sass Way
We create digital
advantages that boost
our client´s success.
RECOMENDACIONES:
Ajustar la estructura Sass a los
componentes del proyecto
No usar más de tres niveles de
selectores
Usar metodologías como BEM para la
nomenclatura de clases
Diferenciar el uso de extends y mixins
Añadir variables para los distintos
componentes
OOCSS
Spain | Mexico | United States
www.sngular.team
carmen.garcia@sngular.com

Más contenido relacionado

PDF
Intro a Sass
PDF
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
ODP
Estilo & CSS3
PDF
Introducción CSS
PDF
Adaptando CSS a los programadores: SASS y Compass
PPTX
PDF
Semana 3 Maquetación CSS
PDF
Arquitectura frontend para proyectos con preprocesadores CSS
Intro a Sass
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
Estilo & CSS3
Introducción CSS
Adaptando CSS a los programadores: SASS y Compass
Semana 3 Maquetación CSS
Arquitectura frontend para proyectos con preprocesadores CSS

Similar a Sngular - Sass: Vitamina tu CSS (20)

PPTX
Sass - Preprocesador de CSS
PDF
Introducción a los Frameworks CSS
PDF
Frameworks CSS
PPTX
Portabilidad y transportabilidad
PPTX
PHPVigo #09: Preprocesadores CSS/SASS por Sergio Carracedo
PPTX
Css: bases y buenas prácticas
PDF
Semana 3 Responsive Design y Media Queries
PDF
Variables nativas CSS, Front-End con superpoderes para tu WordPress
PPTX
06_Nuevas reglas.pptx
PDF
Maquetacion
PDF
Desarrollo web inteligente
PPTX
LayeRs Dyv
PDF
Guia N3 Proyectos Web Php Css, Js
PPT
PDF
"CSS Preprocessors Time!" por @nahuelsotelo
PPTX
Presentacióin tema 6
PDF
Hojas de Estilo en Cascada - CSS
PDF
Front end basics - Sass
PPTX
Diseño de Paginas Web modelo de caja y contenedores caja
Sass - Preprocesador de CSS
Introducción a los Frameworks CSS
Frameworks CSS
Portabilidad y transportabilidad
PHPVigo #09: Preprocesadores CSS/SASS por Sergio Carracedo
Css: bases y buenas prácticas
Semana 3 Responsive Design y Media Queries
Variables nativas CSS, Front-End con superpoderes para tu WordPress
06_Nuevas reglas.pptx
Maquetacion
Desarrollo web inteligente
LayeRs Dyv
Guia N3 Proyectos Web Php Css, Js
"CSS Preprocessors Time!" por @nahuelsotelo
Presentacióin tema 6
Hojas de Estilo en Cascada - CSS
Front end basics - Sass
Diseño de Paginas Web modelo de caja y contenedores caja
Publicidad

Último (9)

PPTX
Control de seguridad en los sitios web.pptx
PPTX
Implementación equipo monitor12.08.25.pptx
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Fundamentos de Python - Curso de Python dia 1
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PDF
Presentacion de compiladores e interpretes
Control de seguridad en los sitios web.pptx
Implementación equipo monitor12.08.25.pptx
AutoCAD Herramientas para el futuro, Juan Fandiño
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Conceptos basicos de Base de Datos y sus propiedades
Fundamentos de Python - Curso de Python dia 1
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
Presentacion de compiladores e interpretes
Publicidad

Sngular - Sass: Vitamina tu CSS

  • 3. Fundada en 1995, Sngular es una compañía de tecnología, que cuenta con todas las competencias digitales clave (DKCs) para impulsar la transformación digital en sus clientes
  • 6. 1Learn Recabamos información a partir de big data y tendencias, combinando varias de nuestras Key Digital Capabilities tales como Cognitive Computing, Innovation as a Service o Mobile Dataset; con nuestra experiencia de negocio para identificar oportunidades y ventajas basadas en tecnología.
  • 7. 2Build Definimos el conjunto de tecnologías, talento y requerimientos para construir cada solución desde un enfoque que pone al usuario en el centro del proyecto y permite en el menor plazo testarla con quien debe utilizarla. Nuestros equipos practican desarrollo ágil, involucrando a especialistas en testing en el equipo de desarrollo, en un proceso iterativo y sostenible, adaptado al ciclo de vida de las aplicaciones.
  • 8. 3Grow Lanzamos productos y servicios digitales, captamos usuarios segmentados y aceleramos la adopción, apoyados en plataformas y operaciones que permiten escalar e incrementar las ventas.
  • 9. Alfred es nuestro compañero virtual, un asistente en forma de chatbot, que nos ayuda a mejorar la productividad, eliminando las tareas aburridas y repetitivas. Por ejemplo, puedes pedirle las vacaciones, que impute tus dedicaciones, la clave de la wifi, y algunas dudas sobre las políticas internas. Puedes hablar con él a través de Hangouts y Slack. ¿Quién es Alfred?
  • 17. Spain | Mexico | United States www.sngular.team inmaculada.rodriguez@sngular.com
  • 19. ¿Qué vamos a ver? 1. Conociendo Sass 2. Instalación 3. Tipos y conversión de ficheros 4. Organización e importación 5. Definiendo variables 6. Herencia con ‘@extends’ 7. Uso y definición de ‘mixins’ 8. Programando con SassScript a. Variables II b. Tipos de datos c. Directivas de Control 9. Recursos útiles
  • 20. De cero a fantSasstico Conociendo Sass
  • 21. Click to edit Master title style ● Preprocesador CSS ● DRY ● Mejor organización del código ● Compatible con CSS Anidado Variables Operadores Mixins Extends Funciones ... ¿Qué es Sass?
  • 24. Instalación npm install -g sassDescarga Dart Sass o LibSass: https://github.com/sass/ export PATH="tu-directorio:$PATH" choco install sass brew install sass/sass/sass sass --version Comprobar la versión instalada GITHUB NPM OTRAS
  • 26. ¿Sass o Scss? nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } nav ul margin: 0 padding: 0 list-style: none li display: inline-block a display: block padding: 6px 12px text-decoration: none
  • 27. Css nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; }
  • 28. Conversión entre tipos: sass-convert style.sass style.scss a CSS: sass style.sass style.css sass --watch sass/style.sass:css/style.css
  • 30. Ejemplo de estructura básica sass/ |-- base/ # Código que no exporta CSS | |-- _fonts.sass # Tipografías | |-- _style-utilities.sass # Mixins, funciones, etc. | |-- _variables.sass # Variables | |-- partials/ # Partials | |-- _structure.sass # Estructura base | |-- _buttons.sass # Botones | |-- _forms.sass # Formulario | |-- _reset.sass # Reset | ... | |-- vendors/ # Componentes externos | |-- _jquery.ui.core.scss | ... | `-- main.sass # Fichero principal
  • 31. main.sass // Base utilities @import "base/fonts" @import "base/variables" @import "base/style-utilities" // Partials @import "partials/reset" @import "partials/structure" @import "partials/buttons" @import "partials/forms" ... // Vendors @import "vendor/jquery.ui.core" ...
  • 33. Variables // Fuentes $font: ‘Open Sans’, sans-serif $font-title: Montserrat, sans-serif // Colores $green: #63D297 $gray: #666666 $primary-color: $green // Otros valores $box-shadow: 3px 3px 5px $gray // Componentes $accordion-border: $primary-color Almacenaremos en ellas cualquier tipo de información. .accordion box-shadow: $box-shadow &-title font-family: $font-title border-bottom: $accordion-border .accordion { box-shadow: 3px 3px 5px #666666; } .accordion-title { font-family: Montserrat, sans-serif; border-bottom: #63D297; } CSS Uso_variables.sass
  • 35. %button-secondary background-color: #ffffff padding: 10px color: #333333 border: 1px solid %button-2col float: left display: block width: 50% Extends: Definición y uso button @extend %button-secondary !optional .btn-success @extend %button-secondary border-color: green .btn-cancel @extend %button-secondary border-color: red Podemos compartir las propiedades CSS de un selector a otro. UsoDefinición
  • 36. button, .btn-success, .btn-cancel { background-color: #ffffff; padding: 10px; color: #333333; border: 1px solid; } .btn-success { border-color: green; } .btn-cancel { border-color: red; } Extends: Definición y uso CSS
  • 38. =transform($property) -webkit-transform: $property -ms-transform: $property transform: $property .box +transform(rotate(30deg)) Mixins: Definición y uso Conjunto de propiedades para reutilizar a las que ¡podemos pasarle parámetros! @mixin transform($property) { -webkit-transform: $property; -ms-transform: $property; transform: $property; } .box { @include transform(rotate(30deg)); } SASS SCSS
  • 39. =bullets($bullet-ico, $position: center, $padding: 14px) margin-left: 0 li padding-left: $padding background-image: image-url($bullet-ico) no-repeat $position list-style-type: none ul +bullets('ico-bullet.png', $padding: 16px) Mixins: Definición y uso DEFINICIÓN USO
  • 40. ul { margin-left: 0; } ul li { padding-left: 16px; background: url('/images/ico-bullet.png') no-repeat center; list-style-type: none; } Mixins: Definición y uso CSS
  • 42. $content: "Primer contenido" $content: "¿Segundo contenido?" !default #main content: $content Variables: default! Nos permite mantener el valor original de la variable. #main { content: "Primer contenido"; } SASS CSS
  • 43. .title $primary-color: pink !global color: $primary-color a color: $primary_color Variables: global! Se definen al nivel en el que son declaradas, aunque podemos hacer uso de !global. .title { color: pink; } a { color: pink; } SASS CSS
  • 44. $name: foo $attr: border p.#{$name} #{$attr}-color: blue Variables: interpolación Podremos usar el valor de nuestras variables en nombres de selectores y propiedades. p.foo { border-color: blue; } SASS CSS
  • 45. ● Números ● Cadenas de texto ● Colores ● Booleanos ● Valores nulos ● Listas de valores ● Mapas (clave: valor) Tipos de Datos Soportados por CSS ● Caracteres unicode ● !important ● ...
  • 46. ● @if ● @for ● @each ● @while Directivas de Control
  • 47. $type: unicorn p @if $type == horse color: blue @else if $type == pony color: yellow @else if $type == unicorn color: pink @else color: black Directivas: @if Solo muestra los estilos en caso de que cumpla la condición. p { color: pink; } SASS CSS
  • 48. @for $i from 1 through 3 .item-#{$i} width: 2em * $i @for $i from 1 to 3 .item-#{$i} width: 2em * $i Directivas: @for Muestra los estilos indicados para las iteraciones marcadas. .item-1 { width: 2em; } .item-2 { width: 4em; } .item-3 { width: 6em; } SASS CSS
  • 49. $rrss: fb tw yt @each $item in $rrss .box-#{$item} background-image: url('ico-#{$item}.svg') Directivas: @each Aplica los estilos a cada elemento de una lista o mapa. .box-fb { background-image: url("ico-fb.svg"); } .box-tw { background-image: url("ico-tw.svg"); } .box-yt { background-image: url("ico-yt.svg"); } SASS CSS
  • 50. $i: 6 @while $i > 0 .item-#{$i} width: 2em * $i $i: $i - 2 Directivas: @while Se añadirán los estilos mientras se cumpla una condición .item-6 { width: 12em; } .item-4 { width: 8em; } .item-2 { width: 4em; } SASS CSS
  • 53. We create digital advantages that boost our client´s success. RECOMENDACIONES: Ajustar la estructura Sass a los componentes del proyecto No usar más de tres niveles de selectores Usar metodologías como BEM para la nomenclatura de clases Diferenciar el uso de extends y mixins Añadir variables para los distintos componentes OOCSS
  • 54. Spain | Mexico | United States www.sngular.team carmen.garcia@sngular.com

Notas del editor

  • #23: Dart Sass: La última implementación, se ha reescrito por el autor original en Dart, lenguaje desarrollado por Google. LibSass: Migración a C++ Ruby Sass: La versión original, deja de tener soporte en 2019, un año después del lanzamiento de Dart Sass
  • #25: Github: no tiene ninguna dependencia. Debe añadirse en la última fila del bashrc (Linux) .bash_profile (Mac) o dentro de variables del sistema (Windows), al principio de la nueva variable, seguido de un ‘;’. Tanto NPM como Chocolatey & Homebrew instalarán Dart Sass, que es actualmente la release principal.
  • #27: SASS: Sintaxis indentada. No usa llaves ni ;. SCSS: Sassy CSS. Toda la sintaxis valida en CSS es valida en SCSS. Admite la mayoria de vendors. Contiene llaves y ;
  • #31: Partials: aquellos ficheros que contienen _ antes de su nombre. Es la forma de componentizar nuestros estilos. No se compilaran como nuevo fichero. Esta estructura puede modificarse al gusto. Por ejemplo, podría crear ficheros para las distintas regiones, separar regiones de componentes, etc...
  • #34: Organización Facilidad al modificar el diseño
  • #36: El primer bloque de código se mostrará porque está extendido. El segundo al no ser usado, no se mostrará. También se pueden extender clases. Sass soporta herencia múltiple Por otro lado con la directiva @media solo podremos extender lo que haya dentro de la directiva
  • #40: Podemos añadir valores por defecto a los parámetros SI tienen un valor por defecto, podemos saltarlo en la declaración siempre que pongamos el nombre del parámetro que vamos a declarar tras él
  • #42: Interactive shell: sass -i
  • #43: !global podemos alternar - y _ en el uso y definición.
  • #44: !global podemos alternar - y _ en el uso y definición.
  • #45: Se puede usar interpolacion en valores de propiedades, es mejor usar solo la variable, pero usando la interpolacion interpretaremos las operaciones cerca como codigo CSS.
  • #46: Números con decimales marcados por el punto o seguidos de unidades como px, em... Cadenas de texto con o sin comillas simples o dobles Colores (valores, hexadecimal, rgba, hsla...) Valores lógicos o booleanos (true, false) Valores nulos (null) Listas de valores, separados por espacios en blanco o comas (1.5em 1em 0 2em, Helvetica, Arial, sans-serif) Pares clave: valor ( (key1: value1, key2: value2)) Los soportados por CSS no se tratan de forma especial, Sass los considera cadena de texto.
  • #49: contador inicio y fin deben ser numeros enteros
  • #50: Tambien se puede incluir la lista directamente en el each