SlideShare uma empresa Scribd logo
1 de 124
Baixar para ler offline
CSS bomba[do]
WTF am I? Andréa Zambrana
front-end @ Amil [multicanais]
@akfzambrana
http://andreazambrana.com.br
Pré-processadores
O que são? O.o
e para nós do front?
[Haml, Jade, Slim, Twig, ...]
HTML
JS
[CoffeScript, LiveScript, TypeScript, ...]
CSS
[Less, Sass, Stylus, ...]
Tá, mas pra que serve?
Fazer mais com menos
BEM, OOCSS, SMACSS, DRY
Melhor aplicação de
metodologias
OMFG *____*
Código escalável e
reutilizável
Melhor manutenção
Pré-processadores CSS
Agora sim =P
http://lesscss.org/ http://sass-lang.com/
https://learnboost.github.io/stylus/
[CSS-Crush, Myth, Rework, …]
E outros menos conhecidos
Dica da titia
A melhor ferramenta ou
tecnologia é aquela que
atende melhor ao seu
projeto
Syntactically Awesome Stylesheets
Sass
@hcatlin
Hampton Catlin
Natalie Weizenbaum
@nex3
Chris Eppstein
@chriseppstein
Sintaxes
Sim, é no plural mesmo =P
.sass
.scss
Sobre a instalação
http://sass-lang.com/install
Oh yeah! now we can play! =D
Arquivos _partial
vem ni mim! *__*
@import
Estrutura de arquivos
Architecture for a Sass Project do Hugo Giraudel
How to structure a Sass project do John W. Long
Now, cut to the chase!
Variável
Variable
Números
Incluindo suas unidades (em, px, rem, pt, etc)
utilizando aspas ou não, simples ou duplas
Strings
Hexadecimal, nome, rgb, rgba, etc
Cores
true / false
Booleanos
$nome: valor;
Sintaxe
O bom, o mau e o feio
Nem tudo é branco e preto
Manutenção
< esforço
> velocidade
Desenvolvimento
> velocidade
< esforço para lembrar
> padronização
Customização
> possibilidades
> esforço
< velocidade
Show me the code!!!
cssscss
Nesting
Aninhamento
Boring...
Questão de paternindade
Who is your daddy?!
.pai {
.filho { … }
.irmao {
.neto { … }
}
}
Sintaxe
O bom, o mau e o muito feio
Tenha cuidado pequeno gafanhoto O.o
Manutenção
< esforço
> leitura
Desenvolvimento
< esforço
> organização
> velocidade
cuidado!cuidado!
Um pouco de código
scss css
Não está tão ruim
Mas pode melhorar
cssscss
Boa prática
O próximo front pode ser um serial killer =P
Se tiver “bisnetos”, seu código ta ficando podre ¬¬’
Dois é bom, três é demais
Seu lindo *___*
Mixin
@mixin nome(argumento) {
propriedades, regras, etc
}
Sintaxe
E como usa?
Quero ver código!
cssscss
O bom, o mau e o feio
Nem tudo é cor de rosa
> velocidade
> organização
> reciclagem / reutilização
> padronização
Desenvolvimento
< performance
> esforço
Desenvolvimento
> facilidade
> velocidade
> danos colaterais
Manutenção
with power comes great responsibility...
Boa prática
Então não é mixin
Se não recebe argumentos
Herança de seletores
@extend
Concatenação, use com moderação =]
Classes
@extend .nome-classe;
Sintaxe
Exemplo?
scss css
Place... what?
Placeholder selector
Imagina que é uma classe
%nome-do-placeholder {
propriedades, regras, etc
}
Sintaxe
Mas, pra que preciso de uma classe que “não é uma classe”?
Entendi...
Não é compilado
Separa um lugar
E como funciona?
Bora pro código!
scss css
O bom, o bomzão e o difícil
Que a força esteja conosco!
> velocidade
< esforço
> padronização
Desenvolvimento
> componentização
> uso de qualquer metodologia CSS
> efeitos colaterais
Desenvolvimento
> prático
> fácil
< e > esforço
Manutenção
> leitura
> organização
Manutenção
Sim e não =/
OMG so tem coisa boa!
Literalmente, separa um
lugar...
!important venha cá, que vou lhe usar
scss css
This is a real problem :(
Media querie
scss console
cssscss
Operadores
+
-
*
/
%
Matemáticos
scss css
cssscss
and
or
not
Booleanos
Yeah baby!! m/
Estruturas de controle
@if
@if condição {
…
} @else if condição {
…
} @else {
…
}
Sintaxe
@for
@for variável from inicio through fim {
propriedades, regras, etc
}
Sintaxe
@each
@each variavel in lista/mapa {
propriedades, regras, etc
}
Sintaxe
@while
Sintaxe
@while condição {
propriedades, regras, etc.
}
Really? *.*
Funções
São muitas e muito legais =D
http://sass-lang.com/documentation/file.SASS_REFERENCE.html#functions
Nativas
Agora o “bagulho fica loko”
Customizadas
Só que bombados
São como mixins
@return
@function nome(argumento){
propriedades, regras, etc
@return valor;
}
Sintaxe
Não tem coisa ruim, serio!
O bom, o bomzão e o melhor
> velocidade
> dinámico
> lógica complexa
Desenvolvimento
O céu é o limite
Seja feliz!
Maps
Mapas
chave: valor
É uma lista super-poderosa
$map: (
chave: valor,
outra-chave: valor
);
Sintaxe
Legal ne?
só que essa é outra talk ;P
Para estudo
The Sass way - Blog
http://thesassway.com/
Hugo Giraudel - Blog
http://hugogiraudel.com/blog/
Curso de Loiane Groner - Canal Youtube
https://www.youtube.com/playlist?
list=PL3C05B7A66AC502CF
Referências
http://sass-lang.com/
http://alexplaza.co/scss/sass/preprocessors/2014/07/05/Porque-usar-un-preprocesador-
de-css/
https://en.wikipedia.org/wiki/Sass_(stylesheet_language)
https://es.wikipedia.org/wiki/Sass_(lenguaje_de_hojas_de_estilo)
http://www.sitepoint.com/architecture-sass-project/
http://cssguidelin.es/
http://slides.com/ridjohansen/gdb-2013_css-reciclavel-com-o-uso-de-metodologias#/
http://pt.slideshare.net/loumontano/sass-conferencia-csssp
Obrigada!FEMUG ABC #5
@akfzambrana | http://andreazambrana.com.br

Mais conteúdo relacionado

Mais procurados

SASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endSASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endAnderson Aguiar
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp RioFellyph Cintra
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações WebAnderson Aguiar
 
Frontend (RailsMG)
Frontend (RailsMG)Frontend (RailsMG)
Frontend (RailsMG)Daniel Lopes
 
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix Nayara Felix
 
Smacss e-css-faz-bem
Smacss e-css-faz-bemSmacss e-css-faz-bem
Smacss e-css-faz-bemJust Digital
 
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...Anyssa Ferreira
 
Introdução ao Sass - CSS com super poderes
Introdução ao Sass - CSS com super poderesIntrodução ao Sass - CSS com super poderes
Introdução ao Sass - CSS com super poderesNayama Rosa
 
SMACSS - Como estruturar CSS para projetos em larga escala
SMACSS - Como estruturar CSS para projetos em larga escalaSMACSS - Como estruturar CSS para projetos em larga escala
SMACSS - Como estruturar CSS para projetos em larga escalaRafael Lyra
 
Padrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designerPadrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designerDiego Eis
 
Repensando seu CSS - Boas práticas e performance
Repensando seu CSS - Boas práticas e performanceRepensando seu CSS - Boas práticas e performance
Repensando seu CSS - Boas práticas e performanceWilliam Bruno Moraes
 
Seis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressSeis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressTracto Content Marketing
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarTiago Antônio da Silva
 

Mais procurados (18)

SASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endSASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-end
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp Rio
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações Web
 
CSS
CSSCSS
CSS
 
Frontend (RailsMG)
Frontend (RailsMG)Frontend (RailsMG)
Frontend (RailsMG)
 
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix
Atualização da Palestra - Conheça o Sass, mehor amigo do seu CSS - Nayara Felix
 
Smacss e-css-faz-bem
Smacss e-css-faz-bemSmacss e-css-faz-bem
Smacss e-css-faz-bem
 
Dream 05
Dream 05Dream 05
Dream 05
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...
O que eu preciso saber para desenvolver temas? - Anyssa Ferreira - WordCamp S...
 
Introdução ao Sass - CSS com super poderes
Introdução ao Sass - CSS com super poderesIntrodução ao Sass - CSS com super poderes
Introdução ao Sass - CSS com super poderes
 
SMACSS - Como estruturar CSS para projetos em larga escala
SMACSS - Como estruturar CSS para projetos em larga escalaSMACSS - Como estruturar CSS para projetos em larga escala
SMACSS - Como estruturar CSS para projetos em larga escala
 
Padrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designerPadrões Web e algumas vantagens para o designer
Padrões Web e algumas vantagens para o designer
 
Repensando seu CSS - Boas práticas e performance
Repensando seu CSS - Boas práticas e performanceRepensando seu CSS - Boas práticas e performance
Repensando seu CSS - Boas práticas e performance
 
Seis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressSeis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpress
 
[Sass] aula 02
[Sass] aula 02[Sass] aula 02
[Sass] aula 02
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Desempenho web
Desempenho webDesempenho web
Desempenho web
 

Semelhante a Sass - css bomba[do]

CSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoCSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoAnyssa Ferreira
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASSLarissa Carvalho
 
CSS com SASS e SMACSS faz BEM
CSS com SASS e SMACSS faz BEMCSS com SASS e SMACSS faz BEM
CSS com SASS e SMACSS faz BEMWellington Dutra
 
Layout na web: um guia de css grid
Layout na web: um guia de css gridLayout na web: um guia de css grid
Layout na web: um guia de css gridCarol Soares
 
Aula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoAula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoJolvani Morgan
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSSKako Botasso
 
Aula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoAula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoJolvani Morgan
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-endertdc-globalcode
 
Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012Anderson de Castro
 
Boas Práticas de programação WordPress
Boas Práticas de programação WordPressBoas Práticas de programação WordPress
Boas Práticas de programação WordPressThiago Mendes
 
Unb 2012.1 - dweb - c - técnicas
Unb   2012.1 - dweb - c - técnicasUnb   2012.1 - dweb - c - técnicas
Unb 2012.1 - dweb - c - técnicasClaudenio Alberto
 
Como manter seu css escalável e organizado. - Eder Eduardo
Como manter seu css escalável  e organizado. - Eder EduardoComo manter seu css escalável  e organizado. - Eder Eduardo
Como manter seu css escalável e organizado. - Eder EduardoEder Eduardo
 

Semelhante a Sass - css bomba[do] (20)

CSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoCSS - Cansei de Ser Subestimado
CSS - Cansei de Ser Subestimado
 
CSS Mastigado
CSS MastigadoCSS Mastigado
CSS Mastigado
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASS
 
Css tutorial
Css tutorialCss tutorial
Css tutorial
 
CSS com SASS e SMACSS faz BEM
CSS com SASS e SMACSS faz BEMCSS com SASS e SMACSS faz BEM
CSS com SASS e SMACSS faz BEM
 
Layout na web: um guia de css grid
Layout na web: um guia de css gridLayout na web: um guia de css grid
Layout na web: um guia de css grid
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Html5
Html5Html5
Html5
 
Arquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEMArquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEM
 
Aula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoAula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externo
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSS
 
Aula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externoAula 03. utilização inline, incorporado e externo
Aula 03. utilização inline, incorporado e externo
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-ender
 
Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012
 
Front end - the right way
Front end - the right wayFront end - the right way
Front end - the right way
 
Boas Práticas de programação WordPress
Boas Práticas de programação WordPressBoas Práticas de programação WordPress
Boas Práticas de programação WordPress
 
Caipirinha CSS
Caipirinha CSSCaipirinha CSS
Caipirinha CSS
 
Unb 2012.1 - dweb - c - técnicas
Unb   2012.1 - dweb - c - técnicasUnb   2012.1 - dweb - c - técnicas
Unb 2012.1 - dweb - c - técnicas
 
Como manter seu css escalável e organizado. - Eder Eduardo
Como manter seu css escalável  e organizado. - Eder EduardoComo manter seu css escalável  e organizado. - Eder Eduardo
Como manter seu css escalável e organizado. - Eder Eduardo
 
como pensar front para wordpress
como pensar front para wordpresscomo pensar front para wordpress
como pensar front para wordpress
 

Mais de Andréa Zambrana

Version all the things - Workshop
Version all the things - WorkshopVersion all the things - Workshop
Version all the things - WorkshopAndréa Zambrana
 
Version all the things [Workflows com Git]
Version all the things [Workflows com Git]Version all the things [Workflows com Git]
Version all the things [Workflows com Git]Andréa Zambrana
 
Sass maps, my precious! 2.0
Sass maps, my precious! 2.0Sass maps, my precious! 2.0
Sass maps, my precious! 2.0Andréa Zambrana
 
Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)Andréa Zambrana
 
Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git Andréa Zambrana
 
Curso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitCurso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitAndréa Zambrana
 
Curso front-end - Aula 001
Curso front-end - Aula 001Curso front-end - Aula 001
Curso front-end - Aula 001Andréa Zambrana
 
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
 b ou strong eis a questão! HTML semântico, o santo graal do front-end =] b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]Andréa Zambrana
 
Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?Andréa Zambrana
 

Mais de Andréa Zambrana (12)

Version all the things - Workshop
Version all the things - WorkshopVersion all the things - Workshop
Version all the things - Workshop
 
Caipirinha CSS
Caipirinha CSSCaipirinha CSS
Caipirinha CSS
 
Viajando no front
Viajando no frontViajando no front
Viajando no front
 
Version all the things [Workflows com Git]
Version all the things [Workflows com Git]Version all the things [Workflows com Git]
Version all the things [Workflows com Git]
 
Sass maps, my precious! 2.0
Sass maps, my precious! 2.0Sass maps, my precious! 2.0
Sass maps, my precious! 2.0
 
Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)
 
Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git
 
Curso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitCurso front-end - Aula 002 - Git
Curso front-end - Aula 002 - Git
 
Curso front-end - Aula 001
Curso front-end - Aula 001Curso front-end - Aula 001
Curso front-end - Aula 001
 
Sass maps, my precious!
Sass maps, my precious!Sass maps, my precious!
Sass maps, my precious!
 
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
 b ou strong eis a questão! HTML semântico, o santo graal do front-end =] b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
 
Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?
 

Sass - css bomba[do]