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 Web Applications with Container Queries
Search
snookca
October 18, 2016
Programming
750
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Responsive Web Applications with Container Queries
snookca
October 18, 2016
More Decks by snookca
See All by snookca
Responsive Web Applications
snookca
0
1.7k
Responsive Web Applications
snookca
4
1k
Responsive Web Applications
snookca
0
210
Responsive Web Applications
snookca
0
150
The Future is In Pieces
snookca
1
220
Becoming a Deep Generalist
snookca
1
550
Your CSS is a Mess from ShropGeek's Revolution Conf
snookca
4
240
Your CSS is a Mess from SmartWeb
snookca
0
280
How to Write a Book
snookca
4
470
Other Decks in Programming
See All in Programming
sbt 2.0: takeoff
eed3si9n
0
170
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.1k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
340
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
150
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
340
パスワード再設定メールのURLについて知っておこう
uyuki234
0
190
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
ChromeでローカルLLM
ryu1013
0
170
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.9k
APNsからLive Activityを開始する話
yumnumm
0
180
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
200
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
130
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
The SEO identity crisis: Don't let AI make you average
varn
0
610
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Google's AI Overviews - The New Search
badams
0
1.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Facilitating Awesome Meetings
lara
57
7.2k
Transcript
Responsive Web Applications with Container Queries
#RWDQueries (504) 229-6828
A talk more about process than code
None
Beautiful Accounting Software
None
None
None
Goal #1 Evolve the design
Goal #2 Support Multiple Devices
let us take a step back…
None
None
Goal #1 Evolve the design
Goal #2 Support Multiple Devices
Responsive
Responsive
None
None
Birth of SMACSS
Device-specific design and development
Designers see a feature through all platforms
None
Goal #1 Evolve the design
Goal #2 Support Multiple Devices
None
None
None
Monolithic app with accessible templates
Ignored Mobile Web
Limited Mobile App
None
None
Each horizontal block is considered in the context of the
viewport
None
None
None
Each page can be art directed individually
Web applications have components in multiple contexts needing to
respond differently
None
None
A single page in a web application can have dozens
of variations
With media queries, you have to know the possible interplay
of all objects
With container queries, you only have to know the interplay
within a single object
No spec for container queries
None
None
Declare in: CSS, HTML, or JavaScript
https://github.com/ResponsiveImagesCG/cq-demos .element:media( min-width:500px ) {} https://github.com/tysonmatanich/elementQuery .element[min-width~="500px"] { background-color: #eee;
}
http://eqcss.github.io/eqcss/ @element ".element" and (min-width: 500px) { .element {
background: gold; } }
https://github.com/tysonmatanich/elementQuery .element[min-width~="400px"] { }
To parse CSS, either need to be on same domain
or set up CORS
https://github.com/Snugug/eq.js data-eq-pts="small: 400, medium: 600, large: 900"
At HTML level, requires consistency of implementation across app
We chose JavaScript
elements = [ { "module": ".flex--2x1", "className":"responsiveClass", "minWidth": 768, "maxWidth":
1024 } ]
Going Responsive meant a consistent feature set across all devices
New features automatically have cross-device support
Went responsive in under a month†
None
How? How?! How?!?!
None
There’s a discernible delay in execution
It’s not about the properties, it’s about the purpose.
None
None
None
Tried to use grid classes for everything
Had to write extra classes just to define responsive story
Single purpose classes resulted in less edge cases (and less
code!)
Gzip minimizes duplicate properties really well
Tables are difficult
None
None
Avoid too much on the horizontal axis
None
None
None
Product Design is a team sport
None
Goal #1 Evolve the design
Goal #2 Support Multiple Devices
Goal #1 reframed: Allow anybody to make product-wide design changes
quickly and easily
Problem: Different tech stacks
None
Make the right things easy and the wrong things hard
None
Yahoo! still does a custom experience per device
Shopify is getting rid of Container Queries
None
None
None
<div class="two-columns"> <div class="col1"> … </div> <div class="col2"> … </div>
</div>
.two-columns { display: flex; flex-wrap: wrap; } .col1, .col2 {
flex-grow: 1; } .col1 { flex-basis: 66%; min-width: 360px; } .col2 { flex-basis: 33%; }
Demo Time
For Xero… time will tell.
Designers should think Responsive before they need to.
Container Queries enable faster development
Use techniques to avoid media or container queries altogether
http://ricg.io
Thank you. http:/ /snook.ca/ @snookca