171
FUNKA 2015 ADAPTIVE IM A G ES IN RESPONSIVE WEB DESIGN CHRISTOPHER SCHMITT @teleject

[funka] Adaptive Images in Responsive Web Design

Embed Size (px)

Citation preview

Page 1: [funka] Adaptive Images in Responsive Web Design

FUNKA 2015

ADAPTIVE IMAGES IN RESPONSIVE WEB DESIGN

CHRISTOPHER SCHMITT @teleject

Page 2: [funka] Adaptive Images in Responsive Web Design

CHRISTOPHER SCHMITT@teleject

Page 3: [funka] Adaptive Images in Responsive Web Design

@teleject

Page 4: [funka] Adaptive Images in Responsive Web Design

@teleject

Responsive Media Course http://goo.gl/fKgZ6I

Page 5: [funka] Adaptive Images in Responsive Web Design

@teleject

http://CSSDevConf.com/

Page 6: [funka] Adaptive Images in Responsive Web Design
Page 7: [funka] Adaptive Images in Responsive Web Design
Page 8: [funka] Adaptive Images in Responsive Web Design
Page 9: [funka] Adaptive Images in Responsive Web Design
Page 10: [funka] Adaptive Images in Responsive Web Design
Page 11: [funka] Adaptive Images in Responsive Web Design

y

x

Page 12: [funka] Adaptive Images in Responsive Web Design
Page 13: [funka] Adaptive Images in Responsive Web Design
Page 14: [funka] Adaptive Images in Responsive Web Design
Page 15: [funka] Adaptive Images in Responsive Web Design
Page 16: [funka] Adaptive Images in Responsive Web Design
Page 17: [funka] Adaptive Images in Responsive Web Design
Page 18: [funka] Adaptive Images in Responsive Web Design

WHY DON’T WE ASK THE BROWSER?

(cc) flic.kr/p/vUBHv

Page 19: [funka] Adaptive Images in Responsive Web Design

alert("User-agent header sent: " + navigator.userAgent);

Page 20: [funka] Adaptive Images in Responsive Web Design

alert("User-agent header sent: " + navigator.userAgent);

Page 21: [funka] Adaptive Images in Responsive Web Design

Mozilla/1.0 (Win3.1)

http://www.useragentstring.com/

(cc) flic.kr/p/vUBHv

Page 22: [funka] Adaptive Images in Responsive Web Design

Mozilla/1.0 (Win3.1)Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

(cc) flic.kr/p/vUBHv

http://www.useragentstring.com/

Page 23: [funka] Adaptive Images in Responsive Web Design

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3

(cc) flic.kr/p/vUBHv

http://www.useragentstring.com/

Page 24: [funka] Adaptive Images in Responsive Web Design

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3http://webaim.org/blog/user-agent-string-history/

(cc) flic.kr/p/vUBHv

Page 25: [funka] Adaptive Images in Responsive Web Design

FEATURE TESTINGvs. BROWSER SNIFFING

1

2

3

Page 26: [funka] Adaptive Images in Responsive Web Design

FEATURE TESTINGvs. BROWSER SNIFFING

1 Browser width

2

3

Page 27: [funka] Adaptive Images in Responsive Web Design

A scripting approach var myWidth = 0, myHeight = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement &&

( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {

//IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; }

http://www.howtocreate.co.uk/tutorials/javascript/browserwindow

Page 28: [funka] Adaptive Images in Responsive Web Design

The jQuery approach

// returns width of browser viewport $(window).width(); // returns height of browser viewport $(window).height();

// returns width of HTML document $(document).width(); // returns height of HTML document $(document).height();

http://api.jquery.com/width/ & http://api.jquery.com/height/

Page 29: [funka] Adaptive Images in Responsive Web Design

CSS media queries

// default, mobile-1st CSS rules devices go here

@media screen and (min-width: 480px) { ... }

@media screen and (min-width: 600px) { ... }

@media screen and (min-width: 768px) { ... }

@media screen and (min-width: 910px) { ... }

Page 30: [funka] Adaptive Images in Responsive Web Design

(cc) flic.kr/p/8Lo5Gk

Page 31: [funka] Adaptive Images in Responsive Web Design

BROWSER WIDTH GIVES US FRAME, NOT THE CANVAS

Page 32: [funka] Adaptive Images in Responsive Web Design

FEATURE TESTINGvs. BROWSER SNIFFING

1 Browser width

2 Screen resolution

3

Page 33: [funka] Adaptive Images in Responsive Web Design

72PPIHAS

(cc) flic.kr/p/6tjjRP

Page 34: [funka] Adaptive Images in Responsive Web Design

72 points-per-inch = 72 pixels-per-inch

Page 35: [funka] Adaptive Images in Responsive Web Design

96PPIIF A

Page 36: [funka] Adaptive Images in Responsive Web Design

72 points-per-inch x [1+(1/3)] = 96 PPI

Page 37: [funka] Adaptive Images in Responsive Web Design

78μm

goo.gl/zpkFy78μm

“RETINA” DISPLAYS300ppi at 12 inches from the eyes

Page 38: [funka] Adaptive Images in Responsive Web Design
Page 39: [funka] Adaptive Images in Responsive Web Design

[In 2013, Intel sees their product line] offer a higher resolution experience than a top-of-the-line 1080p HDTV.”

http://liliputing.com/2012/04/intel-retina-laptop-desktop-displays-coming-in-2013.html

Page 40: [funka] Adaptive Images in Responsive Web Design
Page 41: [funka] Adaptive Images in Responsive Web Design

72 PPI

Page 42: [funka] Adaptive Images in Responsive Web Design

240

Page 43: [funka] Adaptive Images in Responsive Web Design

240 PPI

Page 44: [funka] Adaptive Images in Responsive Web Design

240 PPI

Page 45: [funka] Adaptive Images in Responsive Web Design

72 PPI

Page 46: [funka] Adaptive Images in Responsive Web Design
Page 47: [funka] Adaptive Images in Responsive Web Design

RETINA DISPLAYS = LARGER IMAGES, LARGER FILE SIZES

Page 48: [funka] Adaptive Images in Responsive Web Design

FEATURE TESTINGvs. BROWSER SNIFFING

1 Browser width

2 Screen resolution

3 Bandwidth

Page 49: [funka] Adaptive Images in Responsive Web Design

(cc) flic.kr/p/4DziUN

SPEED TESTS HINDER SPEED, USER EXPERIENCE

Page 50: [funka] Adaptive Images in Responsive Web Design

Testing for speed of an internet connection is like stepping in front of a car to see how fast it is.”

(cc) flic.kr/p/4DziUN

Page 51: [funka] Adaptive Images in Responsive Web Design

Testing for speed of an internet connection is like stepping in front of a car to see how fast it is.”

“But, Christopher, you only have to test it once.”“

(cc) flic.kr/p/4DziUN

Page 52: [funka] Adaptive Images in Responsive Web Design

Speed test image

https://github.com/adamdbradley/foresight.js

Page 53: [funka] Adaptive Images in Responsive Web Design

Speed test image

+50k

https://github.com/adamdbradley/foresight.js

Page 54: [funka] Adaptive Images in Responsive Web Design

Native speed test

// @Modernizr's network-connection.js connection = navigator.connection || {

type: 0 }, // polyfill

isSlowConnection = connection.type == 3 || connection.type == 4

| /^[23]g$/.test(connection.type);

http://davidbcalhoun.com/2010/using-navigator-connection-android

Page 55: [funka] Adaptive Images in Responsive Web Design

FEATURE TESTINGvs. BROWSER SNIFFING

1 Browser width

2 Screen resolution

3 Bandwidth

Page 56: [funka] Adaptive Images in Responsive Web Design

1 HiSRC and others

2

3

GIMME THAT OLD SCHOOLIMG

Page 57: [funka] Adaptive Images in Responsive Web Design

SERIES OF CHECKS TO FIND OUT RESPONSIVE PATH FOR IMAGES...

Page 58: [funka] Adaptive Images in Responsive Web Design

DO NATIVE SPEED TEST FOR MOBILE DEVICES FIRST...

http://davidbcalhoun.com/2010/using-navigator-connection-android

Page 59: [funka] Adaptive Images in Responsive Web Design

$.hisrc.devicePixelRatio = 1; if(window.devicePixelRatio !== undefined) {

$.hisrc.devicePixelRatio = window.devicePixelRatio

};

Check pixel density...

https://gist.github.com/2428356

Page 60: [funka] Adaptive Images in Responsive Web Design

+50k

https://github.com/adamdbradley/foresight.js

Force speed test

Page 61: [funka] Adaptive Images in Responsive Web Design

LESS THAN 4G MEANS MOBILE IMAGES LEFT IN PLACE

Page 62: [funka] Adaptive Images in Responsive Web Design

BETWEEN 4G &300 Kbps MEANS REGULAR DESKTOP IMAGES SWAPPED IN

Page 63: [funka] Adaptive Images in Responsive Web Design

FAST SPEED & HIGH DENSITY, RETINA IMAGES SWAPPED IN

https://github.com/crdeutsch/hisrc/tree/v2

Page 64: [funka] Adaptive Images in Responsive Web Design

BRINGING PROBLEMSBRINGING THE PAIN

1

2

3

Page 65: [funka] Adaptive Images in Responsive Web Design

BRINGING PROBLEMS1 Double Taxation

2

3

BRINGING THE PAIN

Page 66: [funka] Adaptive Images in Responsive Web Design

http://css-tricks.com/which-responsive-images-solution-

should-you-use/

Page 67: [funka] Adaptive Images in Responsive Web Design

24+http://css-tricks.com/which-responsive-images-solution-

should-you-use/

Page 68: [funka] Adaptive Images in Responsive Web Design

http://css-tricks.com/which-responsive-images-solution-

should-you-use/

ALL SOLUTIONS HAVE 2x +

Page 69: [funka] Adaptive Images in Responsive Web Design

http://css-tricks.com/which-responsive-images-solution-

should-you-use/

2x = MORE TIME COSTS

Page 70: [funka] Adaptive Images in Responsive Web Design

https://github.com/crdeutsch/hisrc/tree/v2

BRINGING THE PAIN1 Double Taxation

2 Browser Preloader

3

BRINGING THE PAIN

Page 71: [funka] Adaptive Images in Responsive Web Design

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4

“A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy.”

Page 72: [funka] Adaptive Images in Responsive Web Design

https://developer.yahoo.com/blogs/ydn/high-performance-sites-rule-6-move-scripts-bottom-7200.html

Page 73: [funka] Adaptive Images in Responsive Web Design

https://developer.yahoo.com/blogs/ydn/high-performance-sites-rule-6-move-scripts-bottom-7200.html

Page 74: [funka] Adaptive Images in Responsive Web Design

http://www.stevesouders.com/blog/2013/04/26/i/

MODERN BROWSERS NOW USE PRELOADER

Page 75: [funka] Adaptive Images in Responsive Web Design

http://www.stevesouders.com/blog/2013/04/26/i/

PRELOADS IMAGES BEFORE PAGE FULLY DOWNLOADS

Page 76: [funka] Adaptive Images in Responsive Web Design
Page 77: [funka] Adaptive Images in Responsive Web Design

BRINGING PROBLEMS1 Double Taxation

2

One Image, Still Not Ready3

Browser Preloader

BRINGING THE PAIN

Page 79: [funka] Adaptive Images in Responsive Web Design
Page 83: [funka] Adaptive Images in Responsive Web Design

#rwdimg

<link rel="shortcut icon" href="/assets/favicon.ico" />

Favicon

Page 84: [funka] Adaptive Images in Responsive Web Design

#rwdimg

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144-precomposed.png" />

<link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114-precomposed.png" />

<link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png" />

<link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png" />

Mobile iOS Bookmarks

Page 86: [funka] Adaptive Images in Responsive Web Design

https://github.com/igrigorik/http-client-hints

Page 87: [funka] Adaptive Images in Responsive Web Design

1

2

3

RWD IMAGESMEET THE NEW IMAGE ELEMENTS

Page 88: [funka] Adaptive Images in Responsive Web Design

1

2

3

RWD IMAGESMEET THE NEW IMAGE ELEMENTS

srcset

Page 89: [funka] Adaptive Images in Responsive Web Design

Basic Image Swap

<img src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 90: [funka] Adaptive Images in Responsive Web Design

Image Fuel

<img srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 91: [funka] Adaptive Images in Responsive Web Design

Image Fuel

<img srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 92: [funka] Adaptive Images in Responsive Web Design

Image Fuel

<img srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 93: [funka] Adaptive Images in Responsive Web Design

Image Fuel

<img srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 94: [funka] Adaptive Images in Responsive Web Design

1

2

3

RWD IMAGESMEET THE NEW IMAGE ELEMENTS

srcset attribute

sizes attribute

Page 95: [funka] Adaptive Images in Responsive Web Design

Basic Image Swap

<img sizes="(min-width: 30em) 100vw, (min-width: 50em) 50vw, 200px" srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 96: [funka] Adaptive Images in Responsive Web Design

Basic Image Swap

<img sizes="(min-width: 30em) 100vw, (min-width: 50em) 50vw, 200px" srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 97: [funka] Adaptive Images in Responsive Web Design

Basic Image Swap

<img sizes="(min-width: 30em) 100vw, (min-width: 50em) 50vw, 200px" srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 98: [funka] Adaptive Images in Responsive Web Design

Basic Image Swap

<img sizes="(min-width: 30em) 100vw, (min-width: 50em) 50vw, 200px" srcset="swing-200.jpg 200w, swing-400.jpg 400w, swing-800.jpg 800w, swing-1600.jpg 1600w" src="swing-400.jpg" alt="Kettlebell Swing">

https://dev.opera.com/articles/native-responsive-images/

Page 99: [funka] Adaptive Images in Responsive Web Design

IT’S STILL UP TO BROWSER TO PICK WHICH IMAGE TO USE

Page 100: [funka] Adaptive Images in Responsive Web Design
Page 101: [funka] Adaptive Images in Responsive Web Design

1

2

3 <picture>

srcset attribute

sizes attribute

RWD IMAGESMEET THE NEW IMAGE ELEMENTS

Page 102: [funka] Adaptive Images in Responsive Web Design
Page 103: [funka] Adaptive Images in Responsive Web Design
Page 104: [funka] Adaptive Images in Responsive Web Design

<picture>

<img src="small.jpg" alt=“That awesome Saints’ touchdown.">

Page 105: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 106: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 107: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 108: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 109: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 110: [funka] Adaptive Images in Responsive Web Design

<picture>

<picture> <source media="(min-width: 45em)" srcset="large.jpg"> <source media="(min-width: 32em)" srcset="cropped.jpg"> <img src="small.jpg" alt=“That awesome Saints’ touchdown."> </picture>

Page 111: [funka] Adaptive Images in Responsive Web Design

USE <PICTURE> FOR FINER CONTROL, ART DIRECTION

Page 112: [funka] Adaptive Images in Responsive Web Design

OTHERWISE, KEEP USING SRCSET & SIZES

Page 113: [funka] Adaptive Images in Responsive Web Design
Page 114: [funka] Adaptive Images in Responsive Web Design

http://responsivedesign.is/resources/images/picture-fill

Page 115: [funka] Adaptive Images in Responsive Web Design

https://wordpress.org/plugins/ricg-responsive-images/

Page 116: [funka] Adaptive Images in Responsive Web Design

1

2

3 <picture>

srcset attribute

sizes attribute

RWD IMAGESMEET THE NEW IMAGE ELEMENTS

Page 117: [funka] Adaptive Images in Responsive Web Design
Page 118: [funka] Adaptive Images in Responsive Web Design

THANK YOU! CHRISTOPHER SCHMITT

Newsletter - http://eepurl.com/TQAer

Page 119: [funka] Adaptive Images in Responsive Web Design

WORKAROUNDS TRICKS in CONTEXT

1

2

3

&

(cc) flic.kr/p/64fGf6

Page 120: [funka] Adaptive Images in Responsive Web Design

WORKAROUNDS TRICKS

1 background-size: 100%

2

3

&

(cc) flic.kr/p/64fGf6

Page 122: [funka] Adaptive Images in Responsive Web Design
Page 123: [funka] Adaptive Images in Responsive Web Design

background-size: 100%<a href="example.com/link">Download on Github</a>

.download a { padding: .095em .8em; background: url(../img/arrow.png) no-repeat; background-size: 100%; margin-left: .4em; -webkit-transition: margin 0.15s ease-out; -moz-transition: margin 0.15s ease-out; text-decoration: none;

}

9+5+9+ 11.6+17+

Page 124: [funka] Adaptive Images in Responsive Web Design

WORKAROUNDS TRICKS in CONTEXT

1 background-size: auto

2 SVG

3

&

(cc) flic.kr/p/64fGf6

Page 125: [funka] Adaptive Images in Responsive Web Design

SVG

Page 126: [funka] Adaptive Images in Responsive Web Design
Page 127: [funka] Adaptive Images in Responsive Web Design
Page 128: [funka] Adaptive Images in Responsive Web Design

Native SVG

http://caniuse.com/#search=SVG%20in%20HTML%20img%20element

Page 129: [funka] Adaptive Images in Responsive Web Design

PNG SVG

9+5+9+ 11.6+17+

Page 130: [funka] Adaptive Images in Responsive Web Design

http://petercollingridge.appspot.com/svg-optimiser

Page 133: [funka] Adaptive Images in Responsive Web Design

HTML5 Boilerplate<!doctype html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> <head>

Page 134: [funka] Adaptive Images in Responsive Web Design

Modernizr checkif(!Modernizr.svg){ var images = document.getElementsByTagName("img"); for(var i = 0; i < images.length; i++){ var src = images[i].src.split("."); images[i].src = src[0] + ".png"; } }

http://stackoverflow.com/questions/12846852/svg-png-extension-switch

Page 135: [funka] Adaptive Images in Responsive Web Design

https://github.com/filamentgroup/grunticon/

Page 136: [funka] Adaptive Images in Responsive Web Design

https://wordpress.org/plugins/scalable-vector-graphics-svg/

Page 137: [funka] Adaptive Images in Responsive Web Design

WORKAROUNDS TRICKS in CONTEXT

1 background-size: auto

2 SVG

3 font-based solutions

&

(cc) flic.kr/p/64fGf6

Page 138: [funka] Adaptive Images in Responsive Web Design

...if you use <meta charset="utf-8"> (you should be for HTML5), you’re adding common Unicode characters like ♫ and ✆, and you don’t need a specific font’s version... just copy and paste them into your HTML.”

Page 139: [funka] Adaptive Images in Responsive Web Design
Page 140: [funka] Adaptive Images in Responsive Web Design

Font-based RWD

http://ilovetypography.com/2012/04/11/designing-type-systems/

Page 141: [funka] Adaptive Images in Responsive Web Design

Font-based RWD

http://ilovetypography.com/2012/04/11/designing-type-systems/

avg file size 40kb

Page 142: [funka] Adaptive Images in Responsive Web Design

http://css-tricks.com/examples/IconFont/

Page 145: [funka] Adaptive Images in Responsive Web Design

Font-based icons

<style> [data-icon]:before { font-family: 'icon-font'; content: attr(data-icon); } </style>

<a href="http://example.com/cloud/save/"> <span data-icon="C" aria-hidden="true"></span> Save to Cloud </a>

Page 146: [funka] Adaptive Images in Responsive Web Design

WORKAROUNDS TRICKS in CONTEXT

1 background-size: 100%

2 SVG

3 font-based solutions

&

(cc) flic.kr/p/64fGf64 compressed JPEGs

Page 147: [funka] Adaptive Images in Responsive Web Design
Page 148: [funka] Adaptive Images in Responsive Web Design
Page 149: [funka] Adaptive Images in Responsive Web Design
Page 150: [funka] Adaptive Images in Responsive Web Design
Page 151: [funka] Adaptive Images in Responsive Web Design
Page 152: [funka] Adaptive Images in Responsive Web Design

iCloud iOS 5 OSX Lion iPad 2 iPhone

OSThe world’s most advanced desktop operating system advances even further.

With over 250 new features including Multi-Touch gestures, Mission Control, full-screen apps, and Launchpad, OS X Lion takes the Mac further than ever.

Learn More

X Lion

Page 153: [funka] Adaptive Images in Responsive Web Design

iCloud iOS 5 OSX Lion iPad 2 iPhone

OSThe world’s most advanced desktop operating system advances even further.

With over 250 new features including Multi-Touch gestures, Mission Control, full-screen apps, and Launchpad, OS X Lion takes the Mac further than ever.

Learn More

X Lion!

" ←↑

Page 154: [funka] Adaptive Images in Responsive Web Design

iCloud iOS 5 OSX Lion iPad 2 iPhone

OSThe world’s most advanced desktop operating system advances even further.

With over 250 new features including Multi-Touch gestures, Mission Control, full-screen apps, and Launchpad, OS X Lion takes the Mac further than ever.

Learn More

X Lion↑

← "!

Page 155: [funka] Adaptive Images in Responsive Web Design

iCloud iOS 5 OSX Lion iPad 2 iPhone

OSThe world’s most advanced desktop operating system advances even further.

With over 250 new features including Multi-Touch gestures, Mission Control, full-screen apps, and Launchpad, OS X Lion takes the Mac further than ever.

Learn More

X Lion! ↙

" ← ←↗ ↑ ↖

↑ ↖

Page 156: [funka] Adaptive Images in Responsive Web Design

iCloud iOS 5 OSX Lion iPad 2 iPhone

OSThe world’s most advanced desktop operating system advances even further.

With over 250 new features including Multi-Touch gestures, Mission Control, full-screen apps, and Launchpad, OS X Lion takes the Mac further than ever.

Learn More

X Lion↑ ↗

← " "↙ ! ↘

! ↘

Page 157: [funka] Adaptive Images in Responsive Web Design

(cc) flic.kr/p/64fGf6

Page 158: [funka] Adaptive Images in Responsive Web Design
Page 159: [funka] Adaptive Images in Responsive Web Design

446kb < 8,755.2kb

(cc) flic.kr/p/64fGf6

0% vs 100%

Page 160: [funka] Adaptive Images in Responsive Web Design

<picture> Patch <picture alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia"> <!-- <source src="small.jpg"> --> <source src="small.jpg"> <!-- <source src="medium.jpg" media="(min-width: 400px)"> --> <source src="medium.jpg" media="(min-width: 400px)"> <!-- <source src="large.jpg" media="(min-width: 800px)"> --> <source src="large.jpg" media="(min-width: 800px)"> <!-- Fallback content for non-JS browsers. Same src as the initial source element. --> <noscript><img src="small.jpg" alt="A giant stone face at The Bayon temple in Angkor Thom, Cambodia"></noscript> </picture>

http://www.w3.org/community/respimg/2012/03/15/polyfilling-picture-without-the-overhead/

Page 161: [funka] Adaptive Images in Responsive Web Design

Size Type Dimensions Display Px Density File Size

Extreme 2276x1400 1x & 2x 446kb

Extra Large

1024x1536 2x 1,745kb

512x768 1x 503kb

Large640x960 2x 746kb

320x480 1x 223kb

Medium500x750 2x 485kb

250x375 1x 145kb

Page 162: [funka] Adaptive Images in Responsive Web Design

Size Type Dimensions Display Px Density File Size

Extreme 2276x1400 1x & 2x 446kb

Extra Large

1024x1536 2x 1,745kb

512x768 1x 503kb

Large640x960 2x 746kb

320x480 1x 223kb

Medium500x750 2x 485kb

250x375 1x 145kb

Page 163: [funka] Adaptive Images in Responsive Web Design

Size Type Dimensions Display Px Density File Size

Extreme 2276x1400 1x & 2x 446kb

Extra Large

1024x1536 2x 1,745kb

512x768 1x 503kb

Large640x960 2x 746kb

320x480 1x 223kb

Medium500x750 2x 485kb

250x375 1x 145kb

Page 164: [funka] Adaptive Images in Responsive Web Design

<img src="rock-climber.jpg" alt="" />

One Image, One IMG

Page 165: [funka] Adaptive Images in Responsive Web Design

(cc) flic.kr/p/64fGf6

EXTREMELYCOMPRESSED PROBLEMS

Page 166: [funka] Adaptive Images in Responsive Web Design
Page 167: [funka] Adaptive Images in Responsive Web Design
Page 168: [funka] Adaptive Images in Responsive Web Design

(cc) flic.kr/p/64fGf6

COMBO MOVESHIGHLY COMPRESSED JPEGS

Page 169: [funka] Adaptive Images in Responsive Web Design

<img src="rock-climbing-400px.jpg" srcset="rock-climbing-400px.jpg 400w, rock-climbing-compressed.jpg 600w" sizes="100vw" alt="Mountain Climber" />

http://codepen.io/teleject/full/qpxmr/

Page 170: [funka] Adaptive Images in Responsive Web Design

http://codepen.io/teleject/full/qpxmr/

Page 171: [funka] Adaptive Images in Responsive Web Design

THANK YOU! CHRISTOPHER SCHMITT