css moderno. as diversas formas do · 13/06/2019  · smacss oocss bem pré-processadores: sass...

35
AS DIVERSAS FORMAS DO CSS Moderno. Uriell Viana

Upload: others

Post on 24-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

AS DIVERSAS FORMAS DO

CSS Moderno.Uriell Viana

Page 2: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules
Page 3: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Antes do CSS:

Page 4: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules
Page 5: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Só que, alguns dosproblemas da época, acontecem até hoje.

Page 6: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

3 Problemaspersistentes do CSS:

Namespace global•Arquivos muitograndes

Isolamento•

Page 7: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Mas como esses problemas foram resolvidos?

Page 8: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Metodologiascomumenteutilizadas:

SMACSSGuia & boas práticasEscalável & modular

OOCSSEstrutura !== aparênciaPrincípio de responsabilidade única

BEMEscopo controladoEstrutura simples e robusta

Page 9: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Veio a necessidade de fazer MORE with LESS

Page 10: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Pré-processamento de CSS:

SASS sass-lang.com

LESS lesscss.org

Stylus stylus-lang.com

Page 11: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Com isso veio o hype devariáveis, aninhamento,mixins e funções.

Page 12: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Mas nós acabamos duplicando código

Page 13: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Por exemplo...

Page 14: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

HTML estruturado com o BEM:

Page 15: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

CSS feito na sintaxe do SASS:

Page 16: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Resultado do SASS anterior:

Page 17: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Então, precisamos reduzir nossos estilos!

Page 18: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Pós-processamento de CSS:

PurgeCSSRemoção de código não utilizado.

StylelintAnálise estática de código.Indica potenciais problemas.

PostCSSUm mundo de transformações eplugins pra estender seu CSS.

Page 19: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Mas então...

Metodologias, pré & pós processadoresresolveram os 3 problemas, certo?

Page 20: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Sim, mas e na prática?

Page 21: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

CSS no Vue:

Page 22: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

CSS Inline no React:

Page 23: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Trazendo pro lado do React, o que é mais popular?

Page 24: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Exemplo do JSS:

Page 25: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Resultado gerado pelo CSS Modules:

Page 26: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

github.com/stereobooster/css-in-js-101

Page 27: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

CSS in JS:

Page 28: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

O que o CSS Funcional resolve:

Page 29: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Agora abra sua mente, essa proposta é umaquebra de paradigmas.

Page 30: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

A proposta do CSS Funcional:

Page 31: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Mas nenhuma é melhor que a outra.

Page 32: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

E podem ser combinadas:

Page 33: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Concluindo, qual foi o ganho?

Atacamos 3 dos maioresproblemas em qualqueraplicação;

Conhecemos a maioriadas soluções relevantesno mercado pra CSS;

Descobrimos algunsprós, contras e pontos deatenção na hora deaplicar.

Page 34: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Links:Metodologias:

SMACSS

OOCSS

BEM

Pré-processadores:

SASS

LESS

Stylus

Pós-processadores:

PurgeCSS

Stylelint

PostCSS

Bibliotecas:

CSS Modules

CSS in JS 101

CSS Funcional

Page 35: CSS Moderno. AS DIVERSAS FORMAS DO · 13/06/2019  · SMACSS OOCSS BEM Pré-processadores: SASS LESS Stylus Pós-processadores: PurgeCSS Stylelint PostCSS Bibliotecas: CSS Modules

Obrigado!in.uriell.devgithub.uriell.devmodern-css.uriell.dev