tdc 2016 - sass: css com super-poderes

49
Globalcode – Open4education Trilha Web – Sass: CSS com super-poderes Rodrigo Amora [email protected] @RodrigoAmora

Upload: rodrigo-amora

Post on 11-Apr-2017

225 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Trilha Web – Sass: CSS com super-poderesRodrigo Amora

[email protected] @RodrigoAmora

Page 2: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Quem sou eu

Rodrigo Amora Sou formado em Sistemas de Informação pela Unigranrio. Sou Desenvolvedor Web desde 2009. Sou Desenvolvedor Mobile desde 2011.

Page 3: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Sócio e Dev

www.boxes-list.com

Page 4: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Contatos

[email protected] @RodrigoAmora

Page 5: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Agenda

Tipos de Dados Variáveis Mixin Nesting Imports Extends Operações Controles de Diretivas e Expressões Darken Lithen

Page 6: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Sass

Sass é um pré-processador CSS, criado com intuito de facilitar a criação e manutenção de arquivos CSS; Versão atual 3.4.22; Foi feito em Ruby;

Page 7: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Instalação no Linux e MacOS

gem install sass

Page 8: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Instalação no Windows

Toasty!!! Troque de S.O

Page 9: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Instalação no Windows

Baixar e executar o instalador o Ruby através do site: http://rubyinstaller.org/ Colocar o diretório do Ruby no path; Executar o comando: gem install sass;

Page 10: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

O Sass trabalha com arquivos .scss e os converte para arquivos .css normal

Page 11: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Tipos de Dados

O Sass trabalha os seguintes tipos de dados: Números (ex: 1.2, 13, 10px); Strings; Colors: blue, #04a3f9, rgba(255, 0, 0, 0.5); Boolean; Null; Listas de valores separados por espaço ou vírgula; Maps (ex: (key1: value1, key2: value2) )

Page 12: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Variáveis

Variáveis no Sass possuem o mesmo conceito da programação back-end e JS, ou seja serve para guarda valores;

Page 13: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Variáveis

a { color: #fff; }

.div { color: #fff; background-color: grey; border: 1px solid blue; border-radius: 5px; }

Page 14: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Variáveis

$cor-branca: #fff;a { color: $cor-branca; }

.div { color: $cor-branca; background-color: grey; border: 1px solid blue; border-radius: 5px; }

Page 15: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Variáveis

$cor-branca: #fff; $borda-azul: 1px solid blue;

.div { background-color: grey; border: $borda-azul; border-radius: 5px; color: $cor-branca; }

Page 16: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

sass estilos.scss:estilos.cssArquivo usado pelo Sass Arquivo gerado pelo Sass

Page 17: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Mais eu vou ter que executar esse comando para toda alteração que eu fizer?

Page 18: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

sass --watch estilos.scss:estilos.css

Page 19: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Mixin

Usado para guardar trechos de código CSS repetidos; É chamado através da diretiva @include;

Page 20: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Mixin

@mixin meu_mixin { -webkit-border-radius: $radius; border-radius: $radius; }

.minha_classe { @include meu_mixin; }

Page 21: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Mixin

@mixin meu_mixin($radius: 0.3em) { -webkit-border-radius: $radius; border-radius: $radius; }

.minha_classe { @include meu_mixin(2px); }

Page 22: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Nesting

Recurso do Sass para aninhar propriedades do CSS;

Page 23: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Nesting

.minha_classe { a { color: red; }

p { background-color: blue;

} }

Page 24: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Nesting

.minha_classe { } .minha_classe a { color: red } .minha_classe p {

background-color: blue; }

Page 25: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@import

Serve para importar arquivos dentro de outros arquivos; Funciona da mesma forma que a função include do PHP e require do JS;

Page 26: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@import

@import "header.scss"; @import "body.scss"; @import "footer.scss";

Page 27: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@import

Também pode usar sem a extensão

@import "header"; @import "body"; @import "footer";

Page 28: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@extend

Este é um dos recursos mais úteis do Sass. @extend permite herdar as propriedades de uma classe ou seletor. Ela ajuda a manter o seu .scss mais simples. Tem o mesmo conceito de Herança da Orientação a Objetos;

Page 29: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@extend

.message { border: 1px solid #ccc; padding: 10px; color: #333; }

.success { @extend .message; border-color: green; }

Page 30: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Interpolation

É recurso que permite encaixar valores dentro de outros valores; Usado através do simbolo #{}

Page 31: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Interpolation

$name: foo; $attr: border; p.#{$name} { #{$attr}-color: blue; }

p.foo { border-color: blue; }

Page 32: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@warn

A directiva @warn imprime o valor de uma expressão do Sass para o fluxo de saída de erro padrão.

@warn "Assuming #{$x} to be in pixels";

Page 33: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@debug

Tem a mesma função do @warn, só que em modo debug.

@debug 10em + 12em;

Page 34: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@error

Tem o mesmo objetivo de @warn, só que imprime mensagens quando acontece algum erro;

@error “mensagem….”;

Page 35: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Operações

O Sass tem suporte as operações matemáticas básicas (soma, subtração, divisão e multiplicação);

Page 36: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Operações - Soma

.minha_classe { width: 600px + 960px;

}

Page 37: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Operações - Subtração

.minha_classe { width: 600px - 960px;

}

Page 38: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Operações - Multiplicação

.minha_classe { width: 960px * 100%;

}

Page 39: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Operações - Divisão

.minha_classe { width: 600px / 960px * 100%;

}

Page 40: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Controle de Diretivas e Expressões

O Sass também tem suporte a Controle de Diretivas e Expressões Regulares com as funções: @if, @for, @each e @while;

Page 41: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@if

if(true, 1px, 2px) => 1px

Page 42: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@if

@Mixin meu_mixi($radius) { @if $radius > 5 {

//Implementação }

}

Page 43: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@while

$i: 6; @while $i > 0 { .item-#{$i} { width: 2em * $i; } $i: $i - 2; }

Page 44: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@for

@for $i from 1 through 3 { .item-#{$i} { width: 2em * $i; } }

Page 45: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

@each

@each $animal in tigre, cachorro, elefante, girafa { .#{$animal}-icon { background-image: url('/images/#{$animal}.png'); } }

Page 46: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Darken

Função do Sass para deixar a cor mais escura;

Sintaxe: darken(cor, porcentagem); -> darken(#0000FF, 20%);

Page 47: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Lighten

Função do Sass para deixar a cor mais clara;

Sintaxe: lighten(cor, porcentagem); -> lighten(#0000FF, 20%);

Page 48: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Referência

http://sass-lang.com

Page 49: TDC 2016 - Sass: CSS com super-poderes

Globalcode – Open4education

Obrigado! E-mail: [email protected] Twitter: @RodrigoAmora