Modern Layouts: Flexbox, CSS Grid, and Beyond

A presentation at Front End PDX July Meetup in July 2018 in Portland, OR, USA by mJordan Brady

Slide 1

Slide 1

Modern L ay out s: Modern L ay out s: F l e x b o x ,

C S S

G r i d ,

a n d

B e y o n d F l e x b o x ,

C S S

G r i d ,

a n d

B e y o n d m i c h e l l e j l . c om m i c h e l l e j l . c om m i c h e l l e @ m i c h e l l e j l . c om m i c h e l l e @ m i c h e l l e j l . c om @ m i c h e l l e j l e v i n e @ m i c h e l l e j l e v i n e

Slide 2

Slide 2

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 3

Slide 3

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 4

Slide 4

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 5

Slide 5

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 6

Slide 6

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 7

Slide 7

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me?

Slide 8

Slide 8

Who am I? Why Should You Listen to Me? Who am I? Why Should You Listen to Me? m i c h e l l e jl . c o m m i c h e l l e @ m i c h e l l e jl . c o m @ m i c h e l l e jl e v i n e @ m i c h e l l e jl

Slide 9

Slide 9

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 h t t p: / / i n fo . c e rn . c h / @ m i c h e l l e jl e v i n e

Slide 10

Slide 10

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 h t t p: / / i n fo . c e rn . c h / @ m i c h e l l e jl e v i n e

Slide 11

Slide 11

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 @ m i c h e l l e jl e v i n e

Slide 12

Slide 12

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 @ m i c h e l l e jl e v i n e

Slide 13

Slide 13

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 @ m i c h e l l e jl e v i n e

Slide 14

Slide 14

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 Håk on Wium Lie published the first dr aft of the Cascading HTML Style Sheets proposal 1994 @ m i c h e l l e jl e v i n e

Slide 15

Slide 15

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 Håk on Wium Lie published the first dr aft of the Cascading HTML Style Sheets proposal 1994 The W orld Wide W eb Consortium (W3C) became oper ational 1995 1 9 9 5 @ m i c h e l l e jl e v i n e

Slide 16

Slide 16

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 Håk on Wium Lie published the first dr aft of the Cascading HTML Style Sheets proposal 1994 The W orld Wide W eb Consortium (W3C) became oper ational 1995 1996 CSS le v el 1 emerged as a W3C Recommendation 1 9 9 5 1 9 9 6 @ m i c h e l l e jl e v i n e

Slide 17

Slide 17

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 Håk on Wium Lie published the first dr aft of the Cascading HTML Style Sheets proposal 1994 The W orld Wide W eb Consortium (W3C) became oper ational 1995 1996 CSS le v el 1 emerged as a W3C Recommendation 1998 CSS le v el 2 accepted as W3C Recommendation 1 9 9 5 1 9 9 6 1 9 9 8 @ m i c h e l l e jl e v i n e

Slide 18

Slide 18

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 8 2 0 1 2 @ m i c h e l l e jl e v i n e

Slide 19

Slide 19

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 8 2 0 1 2 @ m i c h e l l e jl e v i n e

Slide 20

Slide 20

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 8 2 0 1 2 Color L e v el 3 @ m i c h e l l e jl e v i n e

Slide 21

Slide 21

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 8 2 0 1 2 Color L e v el 3 @ m i c h e l l e jl e v i n e Namespaces

Slide 22

Slide 22

A Brie f History of the We b A Brie f History of the We b 1 9 9 1 1 9 9 2 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 8 2 0 1 2 Color L e v el 3 @ m i c h e l l e jl e v i n e Namespaces Selectors L e v el 3

Slide 23

Slide 23

@ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s

Slide 24

Slide 24

< t a b l e

  @ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s

Slide 25

Slide 25

< t a b l e

  @ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s {   d i s p l a y   :   t a b l e   }

Slide 26

Slide 26

< t a b l e

  @ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s {   f l o a t   :   r i g h t   }   {   d i s p l a y   :   t a b l e   }

Slide 27

Slide 27

< t a b l e

  @ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s {   f l o a t   :   r i g h t   }   {   p o s i t i o n   :   a b s o l u t e   }   {   d i s p l a y   :   t a b l e   }

Slide 28

Slide 28

< t a b l e

  @ m i c h e l l e jl e v i n e L ay out s are b a sic ally a me s s L ay out s are b a sic ally a me s s {   f l o a t   :   r i g h t   }   {   p o s i t i o n   :   a b s o l u t e   }   {   d i s p l a y   :   t a b l e   }

Slide 29

Slide 29

@ m i c h e l l e jl e v i n e

Slide 30

Slide 30

@ m i c h e l l e jl e v i n e

Slide 31

Slide 31

@ m i c h e l l e jl e v i n e

Slide 32

Slide 32

@ m i c h e l l e jl e v i n e

Slide 33

Slide 33

@ m i c h e l l e jl e v i n e

Slide 34

Slide 34

@ m i c h e l l e jl e v i n e

Slide 35

Slide 35

@ m i c h e l l e jl e v i n e

Slide 36

Slide 36

@ m i c h e l l e jl e v i n e

Slide 37

Slide 37

@ m i c h e l l e jl e v i n e

Slide 38

Slide 38

@ m i c h e l l e jl e v i n e

Slide 39

Slide 39

@ m i c h e l l e jl e v i n e

Slide 40

Slide 40

@ m i c h e l l e jl e v i n e How c an we How c an we a void div soup? a void div soup?

Slide 41

Slide 41

{ displa y: fle x } @ m i c h e l l e jl e v i n e

Slide 42

Slide 42

{ displa y: fle x } T h e F l e x i b l e Bo x M o d u l e , u s u a l l y re fe rre d t o a s fle x b o x ,

w a s

d e s i g n e d

a s

a

o n e

d i m e n s i o n a l

l a y o u t

m o d e l ,

a n d

a s

a

m e t h o d t h a t

c o u l d

o ffe r s pa c e

d i s t ri b u t i o n

b e t w e e n i t e m s

i n

a n

i n t e rfa c e

a n d

po w e rfu l a l i g n m e n t c a pa b i l i t i e s . @ m i c h e l l e jl e v i n e

Slide 43

Slide 43

@ m i c h e l l e jl e v i n e C an I St art C an I St art Today? Today?

Slide 44

Slide 44

h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x @ m i c h e l l e jl e v i n e

Slide 45

Slide 45

h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x @ m i c h e l l e jl e v i n e

Slide 46

Slide 46

h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x h t t ps : / / c a n i u s e . c o m /

s e a r c h

f l e x b o x @ m i c h e l l e jl e v i n e

Slide 47

Slide 47

Fle x box Vo c a b ulary Fle x box Vo c a b ulary @ m i c h e l l e jl e v i n e

Slide 48

Slide 48

Fle x box Vo c a b ulary Fle x box Vo c a b ulary . c o n t a i n e r   {       d i s p l a y :   f l e x ;       f l e x ­ d i r e c t i o n :   r o w   |   c o l u m n ;       f l e x ­ w r a p :   w r a p ;       j u s t i f y ­ c o n t e n t :   s p a c e ­ b e t w e e n ;       a l i g n ­ i t e m s :   s t r e t c h ;   } @ m i c h e l l e jl e v i n e

Slide 49

Slide 49

Fle x box Vo c a b ulary Fle x box Vo c a b ulary . c o n t a i n e r   {       d i s p l a y :   f l e x ;       f l e x ­ d i r e c t i o n :   r o w   |   c o l u m n ;       f l e x ­ w r a p :   w r a p ;       j u s t i f y ­ c o n t e n t :   s p a c e ­ b e t w e e n ;       a l i g n ­ i t e m s :   s t r e t c h ;   } . i t e m   {       o r d e r :   1 ;       f l e x ­ g r o w :   4 ;       f l e x ­ s h r i n k :   1 ;       f l e x ­ b a s i s :   5 e m ;       a l i g n ­ s e l f :   f l e x ­ e n d ;   } @ m i c h e l l e jl e v i n e

Slide 50

Slide 50

Fle x box Vo c a b ulary Fle x box Vo c a b ulary . c o n t a i n e r   {       d i s p l a y :   f l e x ;       f l e x ­ d i r e c t i o n :   r o w   |   c o l u m n ;       f l e x ­ w r a p :   w r a p ;       j u s t i f y ­ c o n t e n t :   s p a c e ­ b e t w e e n ;       a l i g n ­ i t e m s :   s t r e t c h ;   } . i t e m   {       o r d e r :   1 ;       f l e x ­ g r o w :   4 ;       f l e x ­ s h r i n k :   1 ;       f l e x ­ b a s i s :   5 e m ;       a l i g n ­ s e l f :   f l e x ­ e n d ;   } f l e x :   0   1   a u t o ; @ m i c h e l l e jl e v i n e

Slide 51

Slide 51

bit.ly/michellejl-grid bit.ly/michellejl-grid @ m i c h e l l e jl e v i n e Let's Try It! Let's Try It! F l e x b o x   N a v B a r

Slide 52

Slide 52

c s s

t ri c k s . c o m / s n i p p e t s / c s s / a

g u i d e

t o -fle x b o x /fle x b o x f ro g g y . c o m / b e n n e t t f e e l y . c o m /fle x p l o re r/ More Fle x box! More Fle x box!

Slide 53

Slide 53

{ displa y: grid } @ m i c h e l l e jl e v i n e

Slide 54

Slide 54

{ displa y: grid } C SS G r i d

L a y o u t

e x c e l s

a t

d i v i d i n g

a

pa g e i n t o

ma jo r re g i o n s

o r d efin i n g

t h e re l a t i o n s h i p i n

t e rm s

o f s i z e ,

po s i t i o n ,

a n d l a y e r ,

b e t w e e n

pa rt s

o f a

c o n t ro l

b u i l t

fro m H T M L

pri m i t i v e s .

G ri d

i s

fo r w o rk i n g

i n

t w o

d i m e n s i o n s . @ m i c h e l l e jl e v i n e

Slide 55

Slide 55

@ m i c h e l l e jl e v i n e C an I St art C an I St art Today? Today?

Slide 56

Slide 56

@ m i c h e l l e jl e v i n e h t t ps : / / c a n i u s e . c o m /

s e a rc h

g ri d

Slide 57

Slide 57

@ m i c h e l l e jl e v i n e h t t ps : / / c a n i u s e . c o m /

s e a rc h

g ri d

Slide 58

Slide 58

@ m i c h e l l e jl e v i n e h t t ps : / / c a n i u s e . c o m /

s e a rc h

g ri d

Slide 59

Slide 59

@ m i c h e l l e jl e v i n e F allb ack s for F allb ack s for Older Brow ser s Older Brow ser s h t t ps : / / h a c k s . m o z i l l a . o rg / 2 0 1 6 / 0 8 / u s i n g -fe a t u re -q u e ri e s -i n -c s s / L a y o u t L a n d : R e s i l i e n t C SS

Slide 60

Slide 60

@ m i c h e l l e jl e v i n e .grid {

display : grid;

}

Slide 61

Slide 61

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

}

Slide 62

Slide 62

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

}

Slide 63

Slide 63

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

}

Slide 64

Slide 64

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

}

Slide 65

Slide 65

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

}

Slide 66

Slide 66

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

}

Slide 67

Slide 67

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

}

Slide 68

Slide 68

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

}

Slide 69

Slide 69

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

grid-gap-columns : 10px ;

grid-gap-rows : 5px ;

}

Slide 70

Slide 70

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

grid-gap-columns : 10px ;

grid-gap-rows : 5px ;

}

Slide 71

Slide 71

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

grid-gap-columns : 10px ;

grid-gap-rows : 5px ;

}

Slide 72

Slide 72

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

grid-gap-columns : 10px ;

grid-gap-rows : 5px ;

}

Slide 73

Slide 73

@ m i c h e l l e jl e v i n e .grid {

display : grid;

grid-template-columns : repeat (4, 1fr);

grid-template-rows : 100px

200px ;

grid-gap-columns : 10px ;

grid-gap-rows : 5px ;

}

Slide 74

Slide 74

bit.ly/michellejl-grid bit.ly/michellejl-grid @ m i c h e l l e jl e v i n e Let's Try It! Let's Try It! G r i d   L a y o u t   1

Slide 75

Slide 75

@ m i c h e l l e jl e v i n e Ne w Grid Unit s Ne w Grid Unit s

Slide 76

Slide 76

@ m i c h e l l e jl e v i n e Ne w Grid Unit s Ne w Grid Unit s m i n ­ c o n t e n t

Slide 77

Slide 77

@ m i c h e l l e jl e v i n e Ne w Grid Unit s Ne w Grid Unit s m i n ­ c o n t e n t m a x ­ c o n t e n t

Slide 78

Slide 78

@ m i c h e l l e jl e v i n e Ne w Grid Unit s Ne w Grid Unit s m i n ­ c o n t e n t m a x ­ c o n t e n t fr

Slide 79

Slide 79

@ m i c h e l l e jl e v i n e Ne w Grid Unit s Ne w Grid Unit s m i n ­ c o n t e n t m a x ­ c o n t e n t fr m i n m a x ( )

Slide 80

Slide 80

@ m i c h e l l e jl e v i n e E xplicit Grid v s . Implicit Grid E xplicit Grid v s . Implicit Grid h t t ps : / / c s s -t ri c k s . c o m / d i ffe re n c e -e x pl i c i t -i m pl i c i t -g ri d s /

Slide 81

Slide 81

@ m i c h e l l e jl e v i n e E xplicit Grid v s . Implicit Grid E xplicit Grid v s . Implicit Grid h t t ps : / / c s s -t ri c k s . c o m / d i ffe re n c e -e x pl i c i t -i m pl i c i t -g ri d s /

Slide 82

Slide 82

@ m i c h e l l e jl e v i n e

Slide 83

Slide 83

@ m i c h e l l e jl e v i n e

Slide 84

Slide 84

@ m i c h e l l e jl e v i n e

Slide 85

Slide 85

@ m i c h e l l e jl e v i n e 1

Slide 86

Slide 86

@ m i c h e l l e jl e v i n e 1 2

Slide 87

Slide 87

@ m i c h e l l e jl e v i n e 1 2 3

Slide 88

Slide 88

@ m i c h e l l e jl e v i n e 1 2 3 4

Slide 89

Slide 89

@ m i c h e l l e jl e v i n e 1 -4 2 -3 3 -2 4 -1

Slide 90

Slide 90

bit.ly/michellejl-grid bit.ly/michellejl-grid @ m i c h e l l e jl e v i n e Let's Try It! Let's Try It! G r i d   L a y o u t   2 :   C e l l s G r i d   L a y o u t   3 :   N a m e d   L i n e s G r i d   L a y o u t   5 :   O v e r l a y

Slide 91

Slide 91

.grid {

display : grid;

grid-template-columns : repeat (3, 1fr);

grid-template-rows : repeat (4, 25px);

grid-template-areas : "a a a"

"b b c"

"b b c"

"d d d" ;

}

Slide 92

Slide 92

.grid {

display : grid;

grid-template-columns : repeat (3, 1fr);

grid-template-rows : repeat (4, 25px);

grid-template-areas : "a a a"

"b b c"

"b b c"

"d d d" ;

}

Slide 93

Slide 93

.grid {

display : grid;

grid-template-columns : repeat (3, 1fr);

grid-template-rows : repeat (4, 25px);

grid-template-areas : "a a a"

"b b c"

"b b c"

"d d d" ;

}

Slide 94

Slide 94

.grid {

display : grid;

grid-template-columns : repeat (3, 1fr);

grid-template-rows : repeat (4, 25px);

grid-template-areas : "a a a"

"b b c"

"b b c"

"d d d" ;

}

Slide 95

Slide 95

.grid {

display : grid;

grid-template-columns : repeat (3, 1fr);

grid-template-rows : repeat (4, 25px);

grid-template-areas : "a a a"

"b b c"

"b b c"

"d d d" ;

}

Slide 96

Slide 96

bit.ly/michellejl-grid bit.ly/michellejl-grid @ m i c h e l l e jl e v i n e Let's Try It! Let's Try It! G r i d   L a y o u t   4 :   G r i d   A r e a

Slide 97

Slide 97

bit.ly/michellejl-grid bit.ly/michellejl-grid @ m i c h e l l e jl e v i n e Let's Try It! Let's Try It! G r i d   L a y o u t   4 :   G r i d   A r e a

Slide 98

Slide 98

http:/ /labs.jensimmons.com/2016/ e xamples/ spices-1.html @ m i c h e l l e jl e v i n e No More No More Media Querie s? Media Querie s?

Slide 99

Slide 99

http:/ /labs.jensimmons.com/2016/ e xamples/ spices-1.html @ m i c h e l l e jl e v i n e

Slide 100

Slide 100

http:/ /labs.jensimmons.com/2016/ e xamples/ spices-1.html @ m i c h e l l e jl e v i n e

Slide 101

Slide 101

@ m i c h e l l e jl e v i n e Grid or Fle x box? Grid or Fle x box? h t t ps : / / r a c h e l a n d re w . c o . u k / a rc h i v e s / 2 0 1 6 / 0 3 / 3 0 / s h o u l d -i -u s e -g ri d -o r-fl e x b o x /

Slide 102

Slide 102

@ m i c h e l l e jl e v i n e Grid or Fle x box? Grid or Fle x box? h t t ps : / / r a c h e l a n d re w . c o . u k / a rc h i v e s / 2 0 1 6 / 0 3 / 3 0 / s h o u l d -i -u s e -g ri d -o r-fl e x b o x / or floats??

Slide 103

Slide 103

@ m i c h e l l e jl e v i n e Re al E x ample s Ple a se! Re al E x ample s Ple a se!

Slide 104

Slide 104

h t t p: / / l a b s . je n s i m m o n s . c o m / @ m i c h e l l e jl e v i n e

Slide 105

Slide 105

h t t p: / / l a b s . je n s i m m o n s . c o m / 2 0 1 7 / 0 3 -0 0 8 . h t m l @ m i c h e l l e jl e v i n e

Slide 106

Slide 106

h t t p: / / l a b s . je n s i m m o n s . c o m / 2 0 1 7 / 0 1 -0 1 1 . h t m l @ m i c h e l l e jl e v i n e

Slide 107

Slide 107

h t t ps : / / c s s g ri d . d e s i g n / @ m i c h e l l e jl e v i n e More CSS Grid in the Wild: More CSS Grid in the Wild:

Slide 108

Slide 108

R achel Andre w R achel Andre w Jen Simmons Jen Simmons jensimmons.com/ r achelandrew .co.uk/ @ jensimmons @ r achelandrew gridb y e xample.com/ thecssworkshop.com/ Know these humans. The y are AMAZING. Read their blogs, newsletters, and books, check out their code, learn from their videos. y outube.com/la y outland cssla y out.news/

Slide 109

Slide 109

skl.sh/ r achel

Slide 110

Slide 110

m o n k i k F re e pi k I c o n s

f r o m

I c o n s

f r o m

w w w . f l a t i c o n . c o m w w w . f l a t i c o n . c o m Sm a s h i c o n s F re e pi k P ro s y m b o l s F re e pi k F re e pi k F re e pi k F re e pi k F re e pi k pre t t y c o n s Sm a s h i c o n s A l fre d o H e rn a n d e z @ m i c h e l l e jl e v i n e s ri p F re e pi k ph o t o 3 i d e a _ s t u d i o

Slide 111

Slide 111

Link s Link s C E R N :

B i rt h

o f

t h e

W e b

h t t ps : / / h o m e . c e rn / t o pi c s / b i r t h

w e b F i rs t

W e b s i t e

h t t p: / / i n f o . c e rn . c h / L i n e

M o d e

B ro w s e r -->

h t t p: / / l i n e

m o d e . c e rn . c h / A

B r i e f

H i s t or y

of

t h e

W e b A

B r i e f

H i s t or y

of

t h e

W e b A

b ri e f

h i s t o ry

o f

C SS u n t i l

2 0 1 6

h t t ps : / / w w w . w 3 . o rg / St y l e / C SS2 0 / h i s t o ry . h t m l W o rl d

W i d e

W e b

C o n s o rt i u m

h t t ps : / / w w w . w 3 . o rg / W 3 C

R e c o m m e n d a t i o n

T r a c k

h t t ps : / / w w w . w 3 . o rg / 2 0 0 4 / 0 2 / P ro c e s s

2 0 0 4 0 2 0 5 / t r . h t m l B o o t s t r a p -->

h t t ps : / / g e t b o o t s t r a p. c o m / Z e rb

F o u n d a t i o n

h t t ps : / / f o u n d a t i o n . z u rb . c o m / M a t e ri a l i z e

h t t ps : / / m a t e ri a l i z e c s s . c o m / B u l m a

h t t ps : / / b u l m a . i o / P u re C SS -->

h t t ps : / / pu re c s s . i o / M i l l i g r a m

h t t ps : / / m i l l i g r a m . i o / C SS F r a m e w o rk s B l a z e

U I

h t t ps : / / w w w . b l a z e u i . c o m / B o u rb o n

h t t ps : / / b o u rb o n . i o / B o u rb o n

N e a t

h t t ps : / / n e a t . b o u rb o n . i o / @ m i c h e l l e jl e v i n e

Slide 112

Slide 112

Link s Link s C o m pl e t e

G u i d e

t o

F l e x b o x

h t t ps : / / c s s

t ri c k s . c o m / s n i ppe t s / c s s / a

g u i d e

t o -fle x b o x / M D N

F l e x b o x

C o n c e pt s

h t t ps : / / d e v e l o pe r . m o z i l l a . o rg / e n

U S/ d o c s / W e b / C SS/ C SS_ F l e x i b l e _ B o x _ L a y o u t / B a s i c _ C o n c e pt s _ o f _ F l e x b o x F l e x b o x M D N

F l e x b o x

I n t ro

h t t ps : / / d e v e l o pe r . m o z i l l a . o rg / e n

U S/ d o c s / L e a rn / C SS/ C SS_ l a y o u t / F l e x b o x C SS R e f e re n c e

h t t ps : / / c s s re f e re n c e . i o /fle x b o x / W 3 C

F l e x i b l e

B o x

Spe c s

h t t ps : / / w w w . w 3 . o rg / T R / c s s -fle x b o x

1 / C o u rs e :

W h a t

T h e

F l e x b o x ? -

h t t ps : / /fle x b o x . i o / F l e x b o x

F ro g g y

h t t ps : / /fle x b o x f ro g g y . c o m / @ m i c h e l l e jl e v i n e

Slide 113

Slide 113

@ m i c h e l l e jl e v i n e C o m pl e t e

G u i d e

t o

C SS G ri d

h t t ps : / / c s s

t ri c k s . c o m / s n i ppe t s / c s s / c o m pl e t e

g u i d e

g ri d / M D N

G ri d

L a y o u t

h t t ps : / / d e v e l o pe r . m o z i l l a . o rg / e n

U S/ d o c s / W e b / C SS/ C SS_ G ri d _ L a y o u t C SS R e f e re n c e

h t t ps : / / c s s re f e re n c e . i o / c s s

g r i d / W 3 C

G ri d

L a y o u t

Spe c s

h t t ps : / / w w w . w 3 . o rg / T R / c s s

g ri d

1 / C o u rs e :

C SS G ri d

h t t ps : / / c s s g ri d . i o / G ri d

G a rd e n

h t t ps : / / c s s g ri d g a rd e n . c o m / C SS G ri d L e a rn

C SS G ri d

h t t ps : / / l e a rn c s s g ri d . c o m / G ri d

B y

E x a m pl e

h t t ps : / / g ri d b y e x a m pl e . c o m / L a y o u t

L a n d

h t t ps : / / w w w . y o u t u b e . c o m / l a y o u t l a n d F l e x b o x

o r G ri d

h t t ps : / / r a c h e l a n d re w . c o . u k / a rc h i v e s / 2 0 1 6 / 0 3 / 3 0 / s h o u l d

i

u s e

g ri d

o r-fl e x b o x / Link s Link s I m pl i c i t

&

E x pl i c i t

G ri d

h t t ps : / / c s s

t ri c k s . c o m / d i f f e re n c e

e x pl i c i t

i m pl i c i t

g ri d s /