Slide 1

Slide 1 text

gotardo gonzález Sintactically Awsome Stylesheets una introducción rápida a viernes 27 de julio de 12

Slide 2

Slide 2 text

¿y si...? :root { ! var-main-color: blue; } h1 { ! color: $main-color; } CSS Variables Module Level 1 Editor's Draft 15 June 2012 http://dev.w3.org/csswg/css-variables/ ¿variables? ¿while? ¿for? ¿foreach? ¿class? ¿funciones? viernes 27 de julio de 12

Slide 3

Slide 3 text

Sass es un intérprete de sintaxis escrito en Ruby que nos permite utilizar recursos propios de los lenguajes de programación para facilitarnos la escritura y mantenimiento del código CSS. viernes 27 de julio de 12

Slide 4

Slide 4 text

instalación gem install sass mv style.css style.scss sass --watch style.scss:style.css viernes 27 de julio de 12

Slide 5

Slide 5 text

sintaxis SaSS vs. SCSS SaSS una sintaxis indentada similar a haml ya no tiene soporte SCSS bloques definidos en llaves idéntica a CSS ¡nos quedamos con scss! viernes 27 de julio de 12

Slide 6

Slide 6 text

nested rules #navbar { width: 80%; height: 23px; ul { list-style-type: none; } li { float: left; a { font-weight: bold; } } } Anidar selectores: #navbar { width: 80%; height: 23px; } #navbar ul { list-style-type: none; } #navbar li { float: left; } #navbar li a { font-weight: bold; } CSS SCSS viernes 27 de julio de 12

Slide 7

Slide 7 text

nested rules a { color: #ce4dd6; &:hover { color: #ffb3ff; } &:visited { color: #c458cb; } } Definir pseudoselectores con el operador ‘&’ de SaSS CSS SCSS a { color: #ce4dd6; } a:hover { color: #ffb3ff; } a:visited { color: #c458cb; } viernes 27 de julio de 12

Slide 8

Slide 8 text

variables :) SCSS $width: 960px; $margen: 12px; .wrapper { width: $width - $margen; margin: $margen * 2; padding: $margen; border-radius: $margen; } SCSS $color: #333; tr { color: $color - #111; } tr { color: darken($color, 25%); } viernes 27 de julio de 12

Slide 9

Slide 9 text

@import mi proyecto style.scss @import “reset”; @import “vars”; @import “mixins”; body { background-color: $bgcolor; color: $color; wrapper { width: $width; } } . .. _mixins.scss _reset.scss _vars.scss style.scss viernes 27 de julio de 12

Slide 10

Slide 10 text

mixins ! CSS SCSS .boton { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; behavior: url(radius.htc); /* ... */ } .widget { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; behavior: url(radius.htc); /* ... */ } @mixin borderRadius($radius) { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; behavior: url(radius.htc); } .boton { @include borderRadius(5px); } .widget { @include borderRadius(5px); } viernes 27 de julio de 12

Slide 11

Slide 11 text

extend !! SCSS SCSS .boton { @include border-radius(5px); } .guardar { @extend .boton; background-color: #369; } .borrar { @extend .boton; background-color: #a00; } viernes 27 de julio de 12

Slide 12

Slide 12 text

extend !! SCSS SCSS .boton { @include border-radius(5px); } .guardar { @extend .boton; background-color: #369; } .borrar { @extend .boton; background-color: #a00; } viernes 27 de julio de 12

Slide 13

Slide 13 text

functions !!!! :)_ SCSS $grid-width: 40px; $gutter-width: 10px; @function grid-width($n) { @return $n * $grid-width + ($n - 1) * $gutter-width; } #sidebar { width: grid-width(5); } Sayonara,
viernes 27 de julio de 12

Slide 14

Slide 14 text

y mucho más for @for $i from 1 through 3 { .item-#{$i} { width: 2em * $i; } } @each $animal in puma, sea-slug, egret, salamander { .#{$animal}-icon { background-image: url('/images/#{$animal}.png'); } } each while $i: 6; @while $i > 0 { .item-#{$i} { width: 2em * $i; } $i: $i - 2; } viernes 27 de julio de 12

Slide 15

Slide 15 text

y más, y más Depuración y control de errores: @debug @warn formatos de salida: :nested :expanded :compact :compressed viernes 27 de julio de 12

Slide 16

Slide 16 text

Frameworks! Foundation 3 tiene una edición escrita en Sass + Compass http://foundation.zurb.com/docs/gem-install.php 320 and Up incluye varias opciones de preprocesado (LESS, SaSS, SaSS + Compass, ScSS, ScSS + Compass ...) http://stuffandnonsense.co.uk/projects/320andup/ Compass Basado en SaSS, se puede instalar como gem http://compass-style.org/ viernes 27 de julio de 12

Slide 17

Slide 17 text

Para saber más... Pragmatic guide to SaSS http://pragprog.com/book/pg_sass/pragmatic-guide-to-sass SaSS Reference http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html viernes 27 de julio de 12

Slide 18

Slide 18 text

muchas gracias Gotardo González 27 / 7 / 2012 viernes 27 de julio de 12