Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Responsive Images using <picture> and srcset/sizes
Search
Matt Steele
July 02, 2014
Programming
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Responsive Images using <picture> and srcset/sizes
Matt Steele
July 02, 2014
More Decks by Matt Steele
See All by Matt Steele
Upgrading to Angular 2 using ngUpgrade
mattdsteele
0
1.2k
Reactive Programming with RxJS
mattdsteele
0
130
GET TO THE CHOPVAR
mattdsteele
0
210
Using Source Maps in 2015
mattdsteele
0
1.1k
The Decorator Pattern
mattdsteele
0
96
Diving Into the Device API
mattdsteele
1
920
Unit Testing JavaScript when you're Afraid of JavaScript
mattdsteele
3
900
What Zelda Taught Me about Front End Engineering
mattdsteele
5
1.2k
Other Decks in Programming
See All in Programming
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
680
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Simple Storage Service(S3) is not simple
iwatsukayura
0
230
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
350
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
mrbgem 三角測量 開発
ogom
0
220
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
160
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8k
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
170
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.6k
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Facilitating Awesome Meetings
lara
57
7.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Documentation Writing (for coders)
carmenintech
77
5.6k
Rails Girls Zürich Keynote
gr2m
96
14k
Everyday Curiosity
cassininazir
0
350
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Utilizing Notion as your number one productivity tool
mfonobong
4
610
Skip the Path - Find Your Career Trail
mkilby
1
250
Transcript
Responsive Images @mattdsteele
THIS IS WHY YOU’RE FAT
We’ve put on a little weight.
http://httparchive.org/trends.php#bytesTotal&reqTotal
http://httparchive.org/trends.php#bytesTotal&reqTotal Total Page Weight File Size (KB) 1400 1550 1700
1850 July August September October NovemberDecember January February March April May June
http://httparchive.org/trends.php#bytesTotal&reqTotal Total Page Weight File Size (KB) 1400 1550 1700
1850 July August September October NovemberDecember January February March April May June 1485kb 1521kb 1551kb 1590kb 1614kb 1701kb 1681kb 1710kb 1728kb 1762kb 1775kb 1808kb
http://httparchive.org/interesting.php Bytes Per Page by Content Type
http://httparchive.org/interesting.php Images Bytes Per Page by Content Type
http://httparchive.org/interesting.php HTML Other Flash Stylesheets Scripts Images Bytes Per Page
by Content Type
RETINA- POCALYPSE
None
iPhone 3GS
320x480 iPhone 3GS
320x480 iPhone 3GS iPhone 4
320x480 640x960 (2x) iPhone 3GS iPhone 4
HTC One
1920x1080 (3x) HTC One
“Let’s make it responsive!”
Nexus 10
2560x1600 (2x) Nexus 10
2880x1800 (1.6x) MacBook Pro with Retina Display
None
None
None
320x213 41kb
320x213 41kb
320x213 41kb 640x425 137kb
None
1280x852 400kb
72% Responsive sites serve the same content to desktop &
mobile http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/
Ugh.
Shortcut: <SVG>
<img src="logo.svg">
9+ SVG
Grunticon github.com/filamentgroup/grunticon
"Vectors are for chumps. I need bitmaps."
None
<picture>
<picture> <img src="fallback.png"> </picture>
<picture> <source media="(min-width: 1000px)" srcset="large.png"> <source media="(min-width: 640px)" srcset="medium.png"> <img
src="fallback.png"> </picture>
<picture> <source media="(min-width: 1000px)" srcset="large.webp" type="image/webp"> <source media="(min-width: 1000px)" srcset="large.png">
<source media="(min-width: 640px)" srcset="medium.png"> <img src="fallback.png"> </picture>
None
None
None
Art Direction
<picture> 38 33 Under Consideration
None
None
Screen Size ⊆ What You Need
None
Viewport Size
Viewport Size Screen Density
Viewport Size Rendered Size Screen Density
Viewport Size Rendered Size Screen Density Image Dimensions
Viewport Size Rendered Size Screen Density Image Dimensions Browser knows?
Viewport Size Rendered Size Screen Density Image Dimensions Browser knows?
✓
Viewport Size Rendered Size Screen Density Image Dimensions Browser knows?
✓ ✓
Viewport Size Rendered Size Screen Density Image Dimensions Browser knows?
✓ ✓ ✗
Viewport Size Rendered Size Screen Density Image Dimensions Browser knows?
✓ ✓ ✗ ✗
Viewport Size Rendered Size Screen Density Image Dimensions
Viewport Size Rendered Size Screen Density Image Dimensions Author knows?
Viewport Size Rendered Size Screen Density Image Dimensions Author knows?
✗ ✗ ✓ ✓
srcset & sizes
Image dimensions srcset="large.jpg 1200w, medium.jpg 640w, small.jpg 320w"
Image dimensions URL srcset="large.jpg 1200w, medium.jpg 640w, small.jpg 320w"
Image dimensions Width URL srcset="large.jpg 1200w, medium.jpg 640w, small.jpg 320w"
Rendered Size sizes="(min-width: 1024px) 300px, (min-width: 640px) 50vw, 100vw"
Rendered Size For this MQ: sizes="(min-width: 1024px) 300px, (min-width: 640px)
50vw, 100vw"
Rendered Size For this MQ: Image renders this big sizes="(min-width:
1024px) 300px, (min-width: 640px) 50vw, 100vw"
Rendered Size For this MQ: Image renders this big Default
sizes="(min-width: 1024px) 300px, (min-width: 640px) 50vw, 100vw"
<img src="small.jpg" alt="A responsive image" srcset="large.jpg 1200w, medium.jpg 640w, small.jpg
320w" sizes="(min-width: 1024px) 300px, (min-width: 640px) 50vw, 100vw">
Screen Densities
Configurable
Configurable •HD Mode
Configurable •HD Mode •Speed Mode
Configurable •HD Mode •Speed Mode •Crappy Network Mode
srcset 32 Under Consideration
Fallbacks built-in
Or: Picturefill http://scottjehl.github.io/picturefill/
Go Forth And Get Skinny
@mattdsteele flic.kr/p/7TH4dc