SlideShare uma empresa Scribd logo
By Wellington Dutra
Web Developer
CSS
SASS
SMACSS
BEM!
com
e
faz
Wellington Dutra |
● Web Developer há 8 anos
● Ativo como backend (PHP, Ruby), mas prefiro frontend
● Apaixonado por CSS e JS
● Não gosto de Twitter, não me procurem por lá!
CSS pode ser uma bagunça!
O resultado final quase sempre é...
• Não importa o quanto você acha o seu código limpo,
organizado;
• Se você usa SASS, LESS, PostCSS ou se você acredita em
Deus;
… uma bagunça
Qual a solução?
Organizar seu Projeto Frontend.
Como organizar?
Existem algumas técnicas:
● OOCSS
● DRY CSS
● BEM
● SMACSS
● Atomic Design
BEM e SMACSS
Mas antes, para o seu
BEM, conheça a
Abstração
Abstraindo um layout em componentes/módulos
● Não levar em conta a página como um todo;
● Encontrar padrões de design e disposição de elementos;
● Aplicar estilos orientados a componentes.
Who the f*ck is BEM?
BEM
BEM - O que significa? De onde vem?
Block Element Modifier é um padrão de nomenclatura
para seletores CSS, criado pelos caras da Yandex, uma
empresa de internet famosa na Europa.
BEM - Benefícios
● Facilita a compreensão da função de um seletor CSS,
simplesmente interpretando o nome desse seletor;
● Ótimo para quem trabalha em times;
● Manutenção facilitada, mesmo depois de muito tempo
sem contato com o código;
● Pequenas mudanças não alteram o que já está
implementando, diminuindo a chance de BUGs;
BEM - Estrutura .block__element--modifier
● .block é o nível de abstração mais alto de um componente.
O que podemos entender como o container, wrapper. É a
classe pai de um componente.
Exemplos
.article{...}
.slide{...}
.box{...}
BEM - Estrutura .block__element--modifier
● __element é o elemento filho de um componente. Podemos
ter mais de um elemento, e ainda elementos dentro de
elementos.
Exemplos
.artigo__titulo{...}
.slide__imagem__creditos{...}
.box__texto{...}
BEM - Estrutura .block__element--modifier
● --modifier é uma característica que um elemento ou bloco
pode ter que o diferencia do padrão estabelecido.
Exemplos
.artigo__titulo--destaque{...}
.slide__imagem__creditos--topo{...}
.box__texto--azul{...}
BEM - Estrutura .block__element--modifier
● __ Dois underscores são usados para separar a classe pai
de seus elementos filho;
● -- Dois hífens são usados para separar a classe pai ou um
elemento filho de um modificador;
Exemplos
.artigo__titulo--destaque{...}
.slide__imagem__creditos--topo{...}
.box__texto--azul{...}
BEM - Exemplo
.head {}
.head__eyes {}
.head__eyes__eye {}
.head__eyes__eye--red {}
.head__eyes__eye--green {}
BEM, sem limites!
Não há limites para o nome de uma classe, e o equilíbrio
depende do nível de abstração que você aplicar ao seu
componente.
BEM - Como usar, na prática
Após a abstração dos componentes de um layout, o próximo passo é
criar a marcação e as classes:
● Quanto mais abstração, melhor;
● Quanto mais independente for o componente do contexto em
que está, melhor;
Essas regras são essenciais, pois o componente pode ser reutilizado
em qualquer contexto com pouca ou nenhuma modificação de
estrutura.
BEM - Como usar, na prática | Blocos e Elementos
.articles {}
.articles__article {}
.articles__article__title {}
.articles__article__subtitle {}
.articles__article__image {}
.articles__article__summary {}
.articles__article__more {}
BEM - Como usar, na prática | Modificadores
.articles--short {}
.articles--short__article {}
.articles--short__article__image {}
.articles--short__article__summary {}
BEM - Como usar, na prática | HTML
Parece muita coisa pra escrever...
BEM - Como usar, na prática
Como usar o BEM com SASS?
BEM - Como usar, na prática | SASS
.articles {
&__article {
&__title {}
&__subtitle {}
&__image {}
&__summary {}
&__more {}
}
&--short {
&__article {
&__title {}
&__image {}
&__summary {}
}
}
}
Tá tranquilo, tá favorável...
BEM - Como usar, na prática
É possível facilitar um pouco mais!
Como?
Usando @mixins!
BEM - Como usar, na prática | @mixin
@mixin element($element) {
&__#{$element} {
@content;
}
}
@mixin modifier($modifier) {
&--#{$modifier} {
@content;
}
}
BEM - Como usar, na prática | @mixin
.articles {
@include element(article) {
@include element(title) {}
@include element(subtitle) {}
@include element(image) {}
@include element(summary) {}
@include element(more) {}
}
@include modifier(short) {
@include element(article) {
@include element(title) {}
@include element(image) {}
@include element(summary) {}
}
}
}
BEM - Contradição?
Mas e quanto a esses seletores profundamente
aninhados?
Esse sujeito de BEM não respeita a regra de
especificidade máxima de 3 níveis para um seletor CSS?
BEM - Contradição?
RESPEITA! MAIS DO QUE VOCÊ!
#fkdk
BEM - CSS compilado.
BEM - Conclusão
BEM é a melhor forma de estruturar componentes e
estilos. É flexível, de fácil entendimento e sua
implementação não é complexa.
A lot of SMACSS!
SMACSS - Smacks?! <3
● Scalable and Modular Architecture for CSS não é um
framework, nem uma biblioteca, mas sim um guia para
estruturar estilos de maneira inteligente e
escalonável;
● Não importa o tamanho do projeto, esse padrão de
organização combinado com o BEM pode facilitar e
agilizar ainda mais o desenvolvimento e manutenção
do seu código.
SMACSS - Estrutura
Estrutura de diretórios usando SMACSS:
SMACSS - Estrutura | Diretório base
base: Neste diretório, são colocados os arquivos com os
estilos para elementos base, por exemplo: body, p, a, ul,
span. Arquivos de CSS reset também devem ser colocados
aqui.
SMACSS - Estrutura | Diretório base
SMACSS - Estrutura | Diretório layout
layout: Estilos relacionados a estrutura de templates, por
exemplo, um sistema de grid, estilos de regiões genéricas
da página, como .header, .footer, .articles, .secondary-
articles, .wrapper, .sidebar.
SMACSS - Estrutura | Diretório layout
SMACSS - Estrutura | Diretório modules/components
modules/components:
● Subdiretórios podem ser definidos para separar cada
componente;
● Depende do nível de abstração que você aplicar.
Quanto mais complexo o componente, mais sentido
faz usar subdiretórios para dividí-lo em partes.
SMACSS - Estrutura | Diretório modules/components
SMACSS - Estrutura | Diretório states
states: Diretório opcional. Estilos referentes aos estados
de cada um de seus componentes. :hover, :active,
disabled, focus…
SMACSS - Estrutura | Diretório states
SMACSS - Estrutura | Diretório themes
themes: Diretório opcional. Estilos de fontes e cores. Você
pode dividir os temas por pasta.
SMACSS - Estrutura | Diretório themes
SMACSS - Estrutura | Diretório utilities
utilities: Diretório opcional.
@mixins, @functions e @extends
SMACSS - Estrutura | Diretório utilities
SMACSS - Estrutura | Diretório shame
shame: Diretório opcional. Hacks para o IE, !important e
coisas vergonhosas que temos que fazer de vez
enquando. xD
SMACSS - Como compilar tudo num CSS boladão?
Usando uma ruby gem chamada sass-globbing
● Na raiz do seu diretório sass, crie um arquivo .scss que importará os
arquivos de todas as pastas criadas seguindo o modelo do SMACSS;
● Uma das desvantagens é o tempo que
a compilação pode levar, dependendo
da quantidade de arquivos.
São segundos, mas se você usa
livereload, vai sentir a diferença.
SMACSS - Como compilar tudo num CSS boladão?
Usando arquivos de índice:
● Dentro de cada um dos diretórios definidos seguindo o SMACSS, crie uma
_partial chamada _index.scss, e nesse arquivo, importe todos as outras
_partials onde se encontra;
● Na raiz do diretório sass, crie um arquivo styles.scss e importe todos as
parciais _index.scss de cada um dos diretórios.
SMACSS - Como compilar tudo num CSS boladão?
Get started BEM, SMACSS and SASS
Exemplo no Github
Link da palestra
CSS com SASS e SMACSS faz BEM
Conclusão
Organizar para agilizar!
Organização é a chave para evitar problemas graves em projetos de
Frontend. A maioria dos BUGs gerados são por falta de organização e
padronização dos projetos.
Isso é tudo, pessoal!
Follow us
www.justdigital.com.br
blog.justdigital.com.br
instagram.com/justdigitalbr
facebook.com/eusigoajust
slideshare.com/justdigital
@justdigital
youtube.com/justdigitalbr
follow.justdigital.com.br
flickr.com/.justdigital
CSS com SASS e SMACSS faz BEM

Mais conteúdo relacionado

Mais procurados

Aprendendo libras alfabeto manual e números
Aprendendo libras alfabeto manual e númerosAprendendo libras alfabeto manual e números
Aprendendo libras alfabeto manual e númerosthiagomagro
 
Cruzadinha - Expressões numéricas
Cruzadinha - Expressões numéricas Cruzadinha - Expressões numéricas
Cruzadinha - Expressões numéricas
Mary Alvarenga
 
Tabuada de pitágoras padrões e regularidades
Tabuada de pitágoras   padrões e regularidadesTabuada de pitágoras   padrões e regularidades
Tabuada de pitágoras padrões e regularidades
Goretti Silva
 
Progressão aritmética
Progressão aritméticaProgressão aritmética
Progressão aritmética
brenoerossi
 
Juro simples e compostos - definições e exercícios - AP 09
Juro simples e compostos - definições e exercícios - AP 09Juro simples e compostos - definições e exercícios - AP 09
Juro simples e compostos - definições e exercícios - AP 09
Secretaria de Estado de Educação do Pará
 
Lista de exercícios 2 operações com números naturais
Lista de exercícios 2   operações com números naturaisLista de exercícios 2   operações com números naturais
Lista de exercícios 2 operações com números naturais
Everton Moraes
 
Apostila de Libras
Apostila de LibrasApostila de Libras
Apostila de Libras
Hijo Noleto
 
Lista 03 1º ano logarítmos
Lista 03 1º ano   logarítmosLista 03 1º ano   logarítmos
Lista 03 1º ano logarítmos
Hélio Rocha
 

Mais procurados (10)

Aprendendo libras alfabeto manual e números
Aprendendo libras alfabeto manual e númerosAprendendo libras alfabeto manual e números
Aprendendo libras alfabeto manual e números
 
Cruzadinha - Expressões numéricas
Cruzadinha - Expressões numéricas Cruzadinha - Expressões numéricas
Cruzadinha - Expressões numéricas
 
Tabuada de pitágoras padrões e regularidades
Tabuada de pitágoras   padrões e regularidadesTabuada de pitágoras   padrões e regularidades
Tabuada de pitágoras padrões e regularidades
 
Progressão aritmética
Progressão aritméticaProgressão aritmética
Progressão aritmética
 
05 area das figuras planas
05 area das figuras planas05 area das figuras planas
05 area das figuras planas
 
Juro simples e compostos - definições e exercícios - AP 09
Juro simples e compostos - definições e exercícios - AP 09Juro simples e compostos - definições e exercícios - AP 09
Juro simples e compostos - definições e exercícios - AP 09
 
Lista de exercícios 2 operações com números naturais
Lista de exercícios 2   operações com números naturaisLista de exercícios 2   operações com números naturais
Lista de exercícios 2 operações com números naturais
 
Ativ. 8 ano
Ativ. 8 anoAtiv. 8 ano
Ativ. 8 ano
 
Apostila de Libras
Apostila de LibrasApostila de Libras
Apostila de Libras
 
Lista 03 1º ano logarítmos
Lista 03 1º ano   logarítmosLista 03 1º ano   logarítmos
Lista 03 1º ano logarítmos
 

Semelhante a CSS com SASS e SMACSS faz BEM

Arquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEMArquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEM
Danielle Cristina Soldera
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
Rafael Rinaldi
 
CSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoCSS - Cansei de Ser Subestimado
CSS - Cansei de Ser Subestimado
Anyssa Ferreira
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
Rodrigo Bueno Santa Maria, BS, MBA
 
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
Carol Soares
 
Arquitetura CSS - Uma rápida introdução
Arquitetura CSS - Uma rápida introduçãoArquitetura CSS - Uma rápida introdução
Arquitetura CSS - Uma rápida introdução
Matheus Lucca do Carmo
 
Css tutorial
Css tutorialCss tutorial
Css tutorial
Cezar Bruno
 
Aula 07 Css - Parte 1
Aula 07   Css - Parte 1Aula 07   Css - Parte 1
Aula 07 Css - Parte 1
Professor Samuel Ribeiro
 
Apostila completa de css
Apostila completa de cssApostila completa de css
Apostila completa de css
Heitor Victorio
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
Léo Dias
 
Um guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + LessUm guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + Less
Bruno Said
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
 
2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf
RubenManhia
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASS
Larissa Carvalho
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
Eliene Resende
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
Eliene Resende
 
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
 
Css cascading style sheet
Css cascading style sheetCss cascading style sheet
Css cascading style sheet
Morvana Bonin
 
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
André Paulovich
 

Semelhante a CSS com SASS e SMACSS faz BEM (20)

Arquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEMArquitetura CSS - SMACSS + OOCS + BEM
Arquitetura CSS - SMACSS + OOCS + BEM
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
CSS Mastigado
CSS MastigadoCSS Mastigado
CSS Mastigado
 
CSS - Cansei de Ser Subestimado
CSS - Cansei de Ser SubestimadoCSS - Cansei de Ser Subestimado
CSS - Cansei de Ser Subestimado
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
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
 
Arquitetura CSS - Uma rápida introdução
Arquitetura CSS - Uma rápida introduçãoArquitetura CSS - Uma rápida introdução
Arquitetura CSS - Uma rápida introdução
 
Css tutorial
Css tutorialCss tutorial
Css tutorial
 
Aula 07 Css - Parte 1
Aula 07   Css - Parte 1Aula 07   Css - Parte 1
Aula 07 Css - Parte 1
 
Apostila completa de css
Apostila completa de cssApostila completa de css
Apostila completa de css
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
 
Um guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + LessUm guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + Less
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)
 
2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf
 
Facilitando sua vida com SASS
Facilitando sua vida com SASSFacilitando sua vida com SASS
Facilitando sua vida com SASS
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
 
Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012Desenvolvimento Front End minicurso UNIDERP 2012
Desenvolvimento Front End minicurso UNIDERP 2012
 
Css cascading style sheet
Css cascading style sheetCss cascading style sheet
Css cascading style sheet
 
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
CSS´s Dinâmicos com LESS e SASS - SEMCOMP 2012
 

CSS com SASS e SMACSS faz BEM

  • 1. By Wellington Dutra Web Developer CSS SASS SMACSS BEM! com e faz
  • 2. Wellington Dutra | ● Web Developer há 8 anos ● Ativo como backend (PHP, Ruby), mas prefiro frontend ● Apaixonado por CSS e JS ● Não gosto de Twitter, não me procurem por lá!
  • 3. CSS pode ser uma bagunça! O resultado final quase sempre é... • Não importa o quanto você acha o seu código limpo, organizado; • Se você usa SASS, LESS, PostCSS ou se você acredita em Deus;
  • 7. Como organizar? Existem algumas técnicas: ● OOCSS ● DRY CSS ● BEM ● SMACSS ● Atomic Design
  • 9. Mas antes, para o seu BEM, conheça a Abstração
  • 10. Abstraindo um layout em componentes/módulos ● Não levar em conta a página como um todo; ● Encontrar padrões de design e disposição de elementos; ● Aplicar estilos orientados a componentes.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Who the f*ck is BEM? BEM
  • 19. BEM - O que significa? De onde vem? Block Element Modifier é um padrão de nomenclatura para seletores CSS, criado pelos caras da Yandex, uma empresa de internet famosa na Europa.
  • 20. BEM - Benefícios ● Facilita a compreensão da função de um seletor CSS, simplesmente interpretando o nome desse seletor; ● Ótimo para quem trabalha em times; ● Manutenção facilitada, mesmo depois de muito tempo sem contato com o código; ● Pequenas mudanças não alteram o que já está implementando, diminuindo a chance de BUGs;
  • 21. BEM - Estrutura .block__element--modifier ● .block é o nível de abstração mais alto de um componente. O que podemos entender como o container, wrapper. É a classe pai de um componente. Exemplos .article{...} .slide{...} .box{...}
  • 22. BEM - Estrutura .block__element--modifier ● __element é o elemento filho de um componente. Podemos ter mais de um elemento, e ainda elementos dentro de elementos. Exemplos .artigo__titulo{...} .slide__imagem__creditos{...} .box__texto{...}
  • 23. BEM - Estrutura .block__element--modifier ● --modifier é uma característica que um elemento ou bloco pode ter que o diferencia do padrão estabelecido. Exemplos .artigo__titulo--destaque{...} .slide__imagem__creditos--topo{...} .box__texto--azul{...}
  • 24. BEM - Estrutura .block__element--modifier ● __ Dois underscores são usados para separar a classe pai de seus elementos filho; ● -- Dois hífens são usados para separar a classe pai ou um elemento filho de um modificador; Exemplos .artigo__titulo--destaque{...} .slide__imagem__creditos--topo{...} .box__texto--azul{...}
  • 25. BEM - Exemplo .head {} .head__eyes {} .head__eyes__eye {} .head__eyes__eye--red {} .head__eyes__eye--green {}
  • 26. BEM, sem limites! Não há limites para o nome de uma classe, e o equilíbrio depende do nível de abstração que você aplicar ao seu componente.
  • 27. BEM - Como usar, na prática Após a abstração dos componentes de um layout, o próximo passo é criar a marcação e as classes: ● Quanto mais abstração, melhor; ● Quanto mais independente for o componente do contexto em que está, melhor; Essas regras são essenciais, pois o componente pode ser reutilizado em qualquer contexto com pouca ou nenhuma modificação de estrutura.
  • 28. BEM - Como usar, na prática | Blocos e Elementos .articles {} .articles__article {} .articles__article__title {} .articles__article__subtitle {} .articles__article__image {} .articles__article__summary {} .articles__article__more {}
  • 29. BEM - Como usar, na prática | Modificadores .articles--short {} .articles--short__article {} .articles--short__article__image {} .articles--short__article__summary {}
  • 30. BEM - Como usar, na prática | HTML
  • 31. Parece muita coisa pra escrever...
  • 32. BEM - Como usar, na prática Como usar o BEM com SASS?
  • 33. BEM - Como usar, na prática | SASS .articles { &__article { &__title {} &__subtitle {} &__image {} &__summary {} &__more {} } &--short { &__article { &__title {} &__image {} &__summary {} } } }
  • 34. Tá tranquilo, tá favorável...
  • 35. BEM - Como usar, na prática É possível facilitar um pouco mais! Como? Usando @mixins!
  • 36. BEM - Como usar, na prática | @mixin @mixin element($element) { &__#{$element} { @content; } } @mixin modifier($modifier) { &--#{$modifier} { @content; } }
  • 37. BEM - Como usar, na prática | @mixin .articles { @include element(article) { @include element(title) {} @include element(subtitle) {} @include element(image) {} @include element(summary) {} @include element(more) {} } @include modifier(short) { @include element(article) { @include element(title) {} @include element(image) {} @include element(summary) {} } } }
  • 38. BEM - Contradição? Mas e quanto a esses seletores profundamente aninhados? Esse sujeito de BEM não respeita a regra de especificidade máxima de 3 níveis para um seletor CSS?
  • 39. BEM - Contradição? RESPEITA! MAIS DO QUE VOCÊ! #fkdk
  • 40. BEM - CSS compilado.
  • 41. BEM - Conclusão BEM é a melhor forma de estruturar componentes e estilos. É flexível, de fácil entendimento e sua implementação não é complexa.
  • 42. A lot of SMACSS!
  • 43. SMACSS - Smacks?! <3 ● Scalable and Modular Architecture for CSS não é um framework, nem uma biblioteca, mas sim um guia para estruturar estilos de maneira inteligente e escalonável; ● Não importa o tamanho do projeto, esse padrão de organização combinado com o BEM pode facilitar e agilizar ainda mais o desenvolvimento e manutenção do seu código.
  • 44. SMACSS - Estrutura Estrutura de diretórios usando SMACSS:
  • 45. SMACSS - Estrutura | Diretório base base: Neste diretório, são colocados os arquivos com os estilos para elementos base, por exemplo: body, p, a, ul, span. Arquivos de CSS reset também devem ser colocados aqui.
  • 46. SMACSS - Estrutura | Diretório base
  • 47. SMACSS - Estrutura | Diretório layout layout: Estilos relacionados a estrutura de templates, por exemplo, um sistema de grid, estilos de regiões genéricas da página, como .header, .footer, .articles, .secondary- articles, .wrapper, .sidebar.
  • 48. SMACSS - Estrutura | Diretório layout
  • 49. SMACSS - Estrutura | Diretório modules/components modules/components: ● Subdiretórios podem ser definidos para separar cada componente; ● Depende do nível de abstração que você aplicar. Quanto mais complexo o componente, mais sentido faz usar subdiretórios para dividí-lo em partes.
  • 50. SMACSS - Estrutura | Diretório modules/components
  • 51. SMACSS - Estrutura | Diretório states states: Diretório opcional. Estilos referentes aos estados de cada um de seus componentes. :hover, :active, disabled, focus…
  • 52. SMACSS - Estrutura | Diretório states
  • 53. SMACSS - Estrutura | Diretório themes themes: Diretório opcional. Estilos de fontes e cores. Você pode dividir os temas por pasta.
  • 54. SMACSS - Estrutura | Diretório themes
  • 55. SMACSS - Estrutura | Diretório utilities utilities: Diretório opcional. @mixins, @functions e @extends
  • 56. SMACSS - Estrutura | Diretório utilities
  • 57. SMACSS - Estrutura | Diretório shame shame: Diretório opcional. Hacks para o IE, !important e coisas vergonhosas que temos que fazer de vez enquando. xD
  • 58. SMACSS - Como compilar tudo num CSS boladão? Usando uma ruby gem chamada sass-globbing ● Na raiz do seu diretório sass, crie um arquivo .scss que importará os arquivos de todas as pastas criadas seguindo o modelo do SMACSS; ● Uma das desvantagens é o tempo que a compilação pode levar, dependendo da quantidade de arquivos. São segundos, mas se você usa livereload, vai sentir a diferença.
  • 59. SMACSS - Como compilar tudo num CSS boladão? Usando arquivos de índice: ● Dentro de cada um dos diretórios definidos seguindo o SMACSS, crie uma _partial chamada _index.scss, e nesse arquivo, importe todos as outras _partials onde se encontra; ● Na raiz do diretório sass, crie um arquivo styles.scss e importe todos as parciais _index.scss de cada um dos diretórios.
  • 60. SMACSS - Como compilar tudo num CSS boladão?
  • 61. Get started BEM, SMACSS and SASS Exemplo no Github Link da palestra CSS com SASS e SMACSS faz BEM
  • 63. Organizar para agilizar! Organização é a chave para evitar problemas graves em projetos de Frontend. A maioria dos BUGs gerados são por falta de organização e padronização dos projetos.
  • 64. Isso é tudo, pessoal!