Slide 1

Slide 1 text

Manipulando CSS Em produção com JS @simoneas02

Slide 2

Slide 2 text

Simone Amorim Mother, WWcode Leader, Organizer of FEMUGPE, Front-End Engineer and CSS Evangelist <3 I love running and ride a bike! @samorim02 @simoneas02 simoneas02.github.io

Slide 3

Slide 3 text

Javascript para Web Front V.S Back

Slide 4

Slide 4 text

Front-End O que dá para fazer? Regras de negócio Offline Consumir dados Rotas Mais…

Slide 5

Slide 5 text

Qual a real finalidade? Por que fazemos isso?

Slide 6

Slide 6 text

Criar interfaces Entre o usuário e a informação

Slide 7

Slide 7 text

Especificamente Vamos focar em CSS e JS

Slide 8

Slide 8 text

O que dá para fazer? Unindo CSS e JS

Slide 9

Slide 9 text

Exemplo

Slide 10

Slide 10 text

Exemplo

Slide 11

Slide 11 text

Como faz? Apenas trocar classes?

Slide 12

Slide 12 text

Podemos ir além! Mas, precisamos conhecer o poder do CSS

Slide 13

Slide 13 text

Variables CSS Custom Properties for Cascading Variables Module Level 1 http://www.w3.org/TR/css-variables/

Slide 14

Slide 14 text

.teste { --cor: #000; --tamanho: 200px; background-color: var(--cor); width: var(--tamanho); }

Slide 15

Slide 15 text

:root { --cor: #000; } .teste-1 { background-color: var(--cor); } .teste-2 { background-color: var(--cor); }

Slide 16

Slide 16 text

Pré-processadores? Não existem em produção!

Slide 17

Slide 17 text

Exemplo

Slide 18

Slide 18 text

Soportado caniuse.com/#feat=css-variables Suporte

Slide 19

Slide 19 text

CSS Grid Layout!

Slide 20

Slide 20 text

A
B
C
D
E
F
HTML básico

Slide 21

Slide 21 text

Definindo um Grid

Slide 22

Slide 22 text

.container { display: grid; } .container { display: inline-grid; }

Slide 23

Slide 23 text

Line-base placement

Slide 24

Slide 24 text

.container { display: inline-grid; } grid-template-rows: 100px 100px; grid-template-columns: 120px 120px 120px; 100px; A B C D E F 1 column 2 column 3 column 2 row 1 row 3 row

Slide 25

Slide 25 text

Line-base positioning

Slide 26

Slide 26 text

.a { } grid-column-start: 1; grid-column-end: 2; grid-row-start: 1; grid-row-end: 2; .f { } grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; grid-row-end: 3; B C D A E F

Slide 27

Slide 27 text

Area naming

Slide 28

Slide 28 text

.a {grid-area: header;} .b {grid-area: aside;} .c {grid-area: main;} .d {grid-area: footer;} .container { display: grid; grid-template-rows: auto; grid-template-columns: auto; grid-template-areas: “header header header” “aside main main” “aside content content” “footer footer footer”; } main header content aside footer

Slide 29

Slide 29 text

Responsive Web Design

Slide 30

Slide 30 text

main header content aside footer @media screen and (max-width: 666px) { } … grid-template-areas: “header header header” “aside main main” “aside content content” “footer footer footer”; … .container { grid-template-areas: “aside header header” “aside main main” “aside main main” “content footer footer”; } main header content aside footer

Slide 31

Slide 31 text

bit.ly/aprendendo-grid-layout

Slide 32

Slide 32 text

Soportado caniuse.com/#feat=css-grid Suporte

Slide 33

Slide 33 text

Muito mais! CSS Filters, Blend Modes, etc...

Slide 34

Slide 34 text

Vá além de trocar classes!

Slide 35

Slide 35 text

Com apenas CSS e um pouco de Javascript Demo

Slide 36

Slide 36 text

Obrigada! @simoneas02