44

CSS Grid layout - De volta para o futuro

Embed Size (px)

Citation preview

Page 1: CSS Grid layout - De volta para o futuro
Page 2: CSS Grid layout - De volta para o futuro

@afonsopacifer

Front-End Developer

Page 3: CSS Grid layout - De volta para o futuro

#WriteCodeEveryDay.

Page 4: CSS Grid layout - De volta para o futuro

I CSS

Page 5: CSS Grid layout - De volta para o futuro

CSS Grid Layout?

Um modulo CSS3 que define um grid otimizado para interfaces

CSS Grid Layout Module Level 1

O futuro!

Page 6: CSS Grid layout - De volta para o futuro

Flexbox

Interfaces simplesInterfaces complexas

Grid Layout

X É o presenteÉ o futuro

São diferentes e complementares!

Use os dois!

Page 7: CSS Grid layout - De volta para o futuro

https://github.com/afonsopacifer/awesome-flexbox

A curated list of CSS Flexible Box Layout Module or only Flexbox.

Page 8: CSS Grid layout - De volta para o futuro

AVISO!Working Draft

http://www.w3.org/TR/css-grid-1/

Page 9: CSS Grid layout - De volta para o futuro

Terminologia

Page 10: CSS Grid layout - De volta para o futuro

Grid LinesSão as linhas que dividem o grid.

Page 11: CSS Grid layout - De volta para o futuro

Grid TracksÉ o termo genérico para o espaço entre duas grid lines, verticais ou horizontais.

Page 12: CSS Grid layout - De volta para o futuro

Grid CellsTambém conhecida como grid item.

É o espaçamento entre duas line grids verticais e duas horizontais.

Page 13: CSS Grid layout - De volta para o futuro

Grid AreasUm ou mais grid items (grid cells)

Page 14: CSS Grid layout - De volta para o futuro

Show me the code

Page 15: CSS Grid layout - De volta para o futuro

<div class=“container”> <div class=“a”>A</div> <div class=“b”>B</div> <div class=“c”>C</div> <div class=“d”>D</div> <div class=“e”>E</div> <div class=“f”>F</div>

</div>

HTML

Page 16: CSS Grid layout - De volta para o futuro

Grid Container

Page 17: CSS Grid layout - De volta para o futuro

.container { display: grid;

}

.container { display: inline-grid;

}

Page 18: CSS Grid layout - De volta para o futuro

Line-based placement

Page 19: CSS Grid layout - De volta para o futuro

.container { display: inline-grid;

}

A B C

D E F

1 column 2 column 3 column

2 ro

w1

row

3 ro

w

grid-template-rows: 100px 100px;grid-template-columns: 120px 120px 120px;

100px;

Page 20: CSS Grid layout - De volta para o futuro

Line-based positioning

Page 21: CSS Grid layout - De volta para o futuro

.a {

}

B C

D

grid-column-start: 1;grid-column-end: 2;grid-row-start: 1;grid-row-end: 2;

A

E.f {

}

grid-column-start: 3;grid-column-end: 4;grid-row-start: 2;grid-row-end: 3;

F

Page 22: CSS Grid layout - De volta para o futuro

Line-based positioning Shorthand

Page 23: CSS Grid layout - De volta para o futuro

B C

D

A

E F.a {

}

grid-column: 1 / 2;grid-row: 1 / 2;

.a {

}

grid-column-start: 1;grid-column-end: 2;grid-row-start: 1;grid-row-end: 2;

.a {

}grid-area: 1 / 1 / 2 / 2;

Page 24: CSS Grid layout - De volta para o futuro

Responsive Web Design

Page 25: CSS Grid layout - De volta para o futuro

Redefinindo o grid

Page 26: CSS Grid layout - De volta para o futuro

C D

A

E F

.a {grid-area: 1 / 1 / 2 / 4;}

.b {grid-area: 2 / 1 / 3 / 2;}

.c {grid-area: 2 / 2 / 2 / 3;}

.d {grid-area: 2 / 3 / 2 / 4;}

.e {grid-area: 3 / 1 / 4 / 3;}

.d {grid-area: 3 / 3 / 4 / 4;}

B

@media screen and (max-width: 666px) {

}

.a {grid-area: 3 / 1 / 2 / 4;}

.e {grid-area: 1 / 1 / 2 / 3;}

.d {grid-area: 1 / 3 / 2 / 4;}

b c d

e f

A

Page 27: CSS Grid layout - De volta para o futuro

frA nova unidade de medida

flex

Page 28: CSS Grid layout - De volta para o futuro

A B C

.container { display: grid;

}

grid-template-rows: 100px;grid-template-columns: 100px auto 100px;

A B C

.container { display: grid;

}

grid-template-rows: 100px;grid-template-columns: 100px 1fr 100px;

Page 29: CSS Grid layout - De volta para o futuro

.container { display: grid;

}

grid-template-rows: 100px;grid-template-columns: 1fr 1fr 1fr;

.container { display: grid;

}

grid-template-rows: 100px;grid-template-columns: 2fr 1fr 1fr;

A B C

1 + 1 + 1 = 31 1 1

2 + 1 + 1 = 4

A B C

2 1 1

Page 30: CSS Grid layout - De volta para o futuro

Nomeando as areasModo Hardcore

Page 31: CSS Grid layout - De volta para o futuro

.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” “aside content content” “. . footer”;

}

main

header

content

aside

footer

Page 32: CSS Grid layout - De volta para o futuro

E muito mais

Page 33: CSS Grid layout - De volta para o futuro

Qual navegador suporta isso?

sintaxe antiga

Page 34: CSS Grid layout - De volta para o futuro

Browsers support

http://caniuse.com/css-grid

Page 35: CSS Grid layout - De volta para o futuro

Vale a pena aprender?

Page 36: CSS Grid layout - De volta para o futuro

Suporte dos navegadores visto por outro angulo

http://igalia.github.io/css-grid-layout/enable.html

Page 37: CSS Grid layout - De volta para o futuro

Revista W - 2013

Page 38: CSS Grid layout - De volta para o futuro

Best New Web Technology

https://thenetawards.com/vote/web-tech/css-grid-layout/

Page 39: CSS Grid layout - De volta para o futuro

Eu quero usar hoje!

Page 40: CSS Grid layout - De volta para o futuro

css-grid-polyfill

https://github.com/FremyCompany/css-grid-polyfill

Page 41: CSS Grid layout - De volta para o futuro

Onde posso aprender mais?

Page 42: CSS Grid layout - De volta para o futuro

Grid by Example

http://gridbyexample.com/

Page 43: CSS Grid layout - De volta para o futuro

https://github.com/afonsopacifer/learning-css-grid-layout

Learning CSS Grid Layout

Page 44: CSS Grid layout - De volta para o futuro

Obrigado :)