Download - Responsive Web Design - Devoxx UK - 2014-06-13

Transcript
Page 1: Responsive Web Design - Devoxx UK - 2014-06-13

Responsive Web Design

Frédéric Harper Sr. Technical Evangelist @ Mozilla @fharper | outofcomfortzone.net

2014-06-12

Page 2: Responsive Web Design - Devoxx UK - 2014-06-13

public class Main {

public static void main(String[] args) {

System.out.print(”I don’t speak Java!");

}

}

Page 3: Responsive Web Design - Devoxx UK - 2014-06-13

In a

not so far way galaxy

Page 4: Responsive Web Design - Devoxx UK - 2014-06-13

Creative Commons: http://j.mp/TJsDTi

Page 5: Responsive Web Design - Devoxx UK - 2014-06-13

Creative Commons: http://j.mp/1gP4X4K

Page 6: Responsive Web Design - Devoxx UK - 2014-06-13

MIT: http://j.mp/1kKuced

Anti-patterns

Page 7: Responsive Web Design - Devoxx UK - 2014-06-13

Creative Commons: http://xkcd.com/773/

Page 8: Responsive Web Design - Devoxx UK - 2014-06-13

Responsive

Design Web

Page 9: Responsive Web Design - Devoxx UK - 2014-06-13
Page 10: Responsive Web Design - Devoxx UK - 2014-06-13

Responsive Web Design

ü  Thinking of the user’s needs instead of ours.

ü  Adapt to various device capabilities instead of configurations.

ü  Help future-proof our sites.

Page 11: Responsive Web Design - Devoxx UK - 2014-06-13

MIT: http://j.mp/1kKuced

That’s the way

Page 12: Responsive Web Design - Devoxx UK - 2014-06-13

RWD Secret sauce

1.  A flexible, grid-based layout,

2.  Flexible images and media,

3.  Media queries.

Page 13: Responsive Web Design - Devoxx UK - 2014-06-13

Flexible

Layout Grid-based

Page 14: Responsive Web Design - Devoxx UK - 2014-06-13

So what’s the problem?

•  Non-responsive sites are no fun.

•  Fixed-width sites are not the best experiences.

•  Not thinking about to new web platforms

Page 15: Responsive Web Design - Devoxx UK - 2014-06-13

Pixels to Ems Algorithm

Page 16: Responsive Web Design - Devoxx UK - 2014-06-13

Pixels to Ems Algorithm

target   context   result  

Page 17: Responsive Web Design - Devoxx UK - 2014-06-13

h1 { font-size: 24px; }

24 / 16 = 1.5 h1 { font-size: 1.5em; }

h1 a { font-size: 11px; }

11 / 24 = 0.45833333+ h1 a { font: 0.45833333+; }

Responsive  Web  Design  READ  MORE  >>  

em  

%  

target   context   result  

Page 18: Responsive Web Design - Devoxx UK - 2014-06-13

What about the grid? #p

age  

.main   .other  .blog  

body  

Page 19: Responsive Web Design - Devoxx UK - 2014-06-13

#page {

width: 960px;

}

.blog {

width: 900px;

}

.blog .main {

width: 566px;

}

.blog .other {

width: 331px;

}

#page {

width: 960/1024;

}

.blog {

width: 900/960;

}

.blog .main {

width: 566/900;

}

.blog .other {

width: 331/900;

}

#page {

width: 93.75%;

}

.blog { /* 900/960 */

width: 93.75%;

}

.blog .main {

width: 62.88+%;

}

.blog .other {

width: 36.77+%;

}

Page 20: Responsive Web Design - Devoxx UK - 2014-06-13

Flexible

& Media Images

Page 21: Responsive Web Design - Devoxx UK - 2014-06-13

A simple solution

/* Works on other media like <video> */

img {

max-width: 100%;

}

Page 22: Responsive Web Design - Devoxx UK - 2014-06-13

Media Queries

Page 23: Responsive Web Design - Devoxx UK - 2014-06-13

Not so long ago… •  We could define media types: screen and print.

•  But not easily respond to the user’s display.

•  Lots of grunt work.

•  Didn’t spend much time thinking about mobile devices.

Page 24: Responsive Web Design - Devoxx UK - 2014-06-13

CSS3 Media Queries

The CSS3 Media Queries Module specifies methods to enable web

developers to scope a style sheet to a set of precise device

capabilities.

Page 25: Responsive Web Design - Devoxx UK - 2014-06-13

Simple Example @media screen and (max-width: 600px) {

body {

font-size: 80%;

}

}

Page 26: Responsive Web Design - Devoxx UK - 2014-06-13

Other queries @media screen and (min-width:320px) and (max-width:480px) { /* add your code here */ }

@media not print and (max-width:600px) {

/* add your code here */ }

@media screen (x) and (y), print (a) and (b) { /* add your code here */ }

Page 27: Responsive Web Design - Devoxx UK - 2014-06-13

Can be declared…

@import url(mq.css) only screen

and (max-width:600px)

<link rel=“stylesheet”

media=“only screen and (max-width:800px)” href=“mq.css”>

Page 28: Responsive Web Design - Devoxx UK - 2014-06-13

Supported Media Properties •  min/max-width

•  min/max-height

•  device-width

•  device-height

•  orientation

•  aspect-ratio

•  device-aspect-ratio

•  color

•  color-index

•  monochrome

•  resolution

Page 29: Responsive Web Design - Devoxx UK - 2014-06-13

MIT: http://j.mp/1kKuced

Little Pea

Bakery

Page 30: Responsive Web Design - Devoxx UK - 2014-06-13

What about old browsers?

Page 31: Responsive Web Design - Devoxx UK - 2014-06-13

The picture element

<picture>

<source media="(min-width: 40em)" srcset="big.jpg 1x, big-hd.jpg 2x">

<source srcset="small.jpg 1x, small-hd.jpg 2x">

<img src="fallback.jpg" alt="">

</picture>

Page 32: Responsive Web Design - Devoxx UK - 2014-06-13
Page 33: Responsive Web Design - Devoxx UK - 2014-06-13

Common Patterns

Page 34: Responsive Web Design - Devoxx UK - 2014-06-13
Page 35: Responsive Web Design - Devoxx UK - 2014-06-13

Mostly fluid

Copyright: http://j.mp/1pA8tpJ

Page 36: Responsive Web Design - Devoxx UK - 2014-06-13

Column drop

Copyright: http://j.mp/1pA8tpJ

Page 37: Responsive Web Design - Devoxx UK - 2014-06-13

Layout shifter

Copyright: http://j.mp/1pA8tpJ

Page 38: Responsive Web Design - Devoxx UK - 2014-06-13

Tiny tweaks

Copyright: http://j.mp/1pA8tpJ

Page 39: Responsive Web Design - Devoxx UK - 2014-06-13
Page 40: Responsive Web Design - Devoxx UK - 2014-06-13

Ressources

Page 41: Responsive Web Design - Devoxx UK - 2014-06-13
Page 42: Responsive Web Design - Devoxx UK - 2014-06-13
Page 43: Responsive Web Design - Devoxx UK - 2014-06-13
Page 44: Responsive Web Design - Devoxx UK - 2014-06-13

Resources •  http://www.alistapart.com/articles/responsive-web-design/

•  http://scottjehl.github.io/picturefill/

•  https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

•  http://stunningcss3.com/code/bakery/

•  http://www.lukew.com/ff/entry.asp?1514

•  http://mediaqueri.es/

•  http://getbootstrap.com/

•  http://www.abookapart.com/products/responsive-web-design

•  http://responsiveimages.org/

Page 45: Responsive Web Design - Devoxx UK - 2014-06-13

Be

responsive responsible

Page 46: Responsive Web Design - Devoxx UK - 2014-06-13

In the end! •  Is it best that all sites are responsive?

•  Do we start with mobile-first?

•  Do we go Adaptive Web Design instead?

•  Do we need or want to do visual comps for every device?

•  Don’t dismiss mobile as walking and looking something up.

Page 47: Responsive Web Design - Devoxx UK - 2014-06-13

Having a web app or game?

Please let me know!

Page 48: Responsive Web Design - Devoxx UK - 2014-06-13

Frédéric Harper

[email protected]

@fharper

http://hacks.mozilla.com

http://outofcomfortzone.net