SlideShare a Scribd company logo
RESPONSIVE

DESIGN STUDIO
VillageReach.org
Why RWD?
© Brad Frost
“

Just four years ago the majority of our
visitors saw our website in Internet
Explorer on a Windows computer on a
minimum 1,024 pixel wide screen.
Times have really changed.
Jason Samuels
IT Manager,
National Council on Family Relations
Source
“

Windows users used to comprise
93.5% of our web visits. Now that
percentage is 72.4%. Visitors using a
Mac have more than tripled.
“

The percentage visiting from a mobile
device or tablet … was just
0.1% in 2008. It has since grown
exponentially,

200-400% per year,
to 6.2% today.
“

Four years ago 75.5% of our web
visitors used Internet Explorer. That
number has fallen to 37%. Firefox now
comprises 25.5%, Safari 19.5%, and
Chrome 15.3%.
“

In the second quarter of 2008
we detected 71 different
screen resolutions among our
visitors. In the first quarter of
2012 we detected

830
© Brad Frost
6.8 Billion

2011

2012

2010

2011

2010

2009
2009

2012

http://mobithinking.com/mobile-marketing-tools/latest-mobile-stats/a#subscribers
“

Smartphone sales accounted for

nearly 85% of all mobile
phone sales in the US in Q1 2013.
http://www.chetansharma.com/usmarketupdateq12013.htm
“

Smartphones have reached
50% penetration in the US…
http://www.chetansharma.com/usmarketupdateq12013.htm
“

…but that’s concentrated in

30% of households

http://www.chetansharma.com/usmarketupdateq12013.htm
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
© Brad Frost
© Brad Frost
What is RWD?
RESPONSIVE DESIGN STUDIO

What is RWD?
๏

Fluid grids

๏

Flexible media

๏

Media queries

23
RESPONSIVE DESIGN STUDIO

Fluid Grids
6.5%

6.5%

6.5%

6.5%

32%

6.5%

6.5%

6.5%

6.5%

6.5%

6.5%

32%

32%

32%
66%

48%

48%
100%

6.5%

6.5%
RESPONSIVE DESIGN STUDIO

Flexible Media
img {
max-width: 100%;
height: auto;
}
RESPONSIVE DESIGN STUDIO

Media Queries
@media screen and (min-width:450px) {
/* Styles for screen media when browser
is 450px wide or larger */
}
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

But That’s the Easy Stuff
๏

Content strategy

๏

Page weight

๏

JavaScript support

๏

Interaction methods

๏

Network latency & performance

๏

Hardware performance

๏

Screen resolution

๏

Sensor availability

๏

etc.
35
RESPONSIVE DESIGN STUDIO

What’s in a name?
๏

Responsive Web Design

๏

Adaptive Web Design

๏

Progressive Enhancement

๏

Aggressive Enhancement

๏

Responsible Web Design

37
When is RWD
a good fit?
When is it not?
How does
RWD fit into
project workflows?
Setting Strategy
Strategy: it’s more
important than
ever.
But it’s not about
the documents you
make.
It’s about having
clarity, purpose,
and focus.
Thinking about
content makes
RWD much easier.
“

We need to shed the notion that we
create layouts from a canvas in.
We need to flip it on its head, and
create layouts from the content
out.
—Mark Boulton, “A Richer Canvas”
This doesn’t mean
having all the
content first.
It means having a
shared vision of
what’s important.
RESPONSIVE DESIGN STUDIO

Finding Your Focus
๏

Why do we have this website?

๏

Who are we speaking to?

๏

What do they need from us?

๏

What do we need to say most? What’s less important?

๏

How will we know if we’re successful?

48
RESPONSIVE DESIGN STUDIO

This helps you
develop a core
strategy.
RESPONSIVE DESIGN STUDIO

From Content Strategy for the Web
by Kristina Halvorson and Melissa Rach
50
Your core guides
every decision that
follows.
RESPONSIVE DESIGN STUDIO

Why is this so critical for RWD?
๏

Prioritization: What do you display first on a small screen?

๏

Calls to action: What do we want people to do? How do we keep that
central when size changes?

๏

Brevity: How can we create the greatest impact with the least content?

52
Activity:
Setting Strategic
Direction
About Village Reach
User Journeys
How does a user’s
relationship with
you unfold over
time?
How does their
typical path lead
them to/through
your website?
RESPONSIVE DESIGN STUDIO

59
RESPONSIVE DESIGN STUDIO

60
RESPONSIVE DESIGN STUDIO

Audiences
๏

Potential/current institutional donors (e.g. NGOs)

๏

Potential/current individual donors

๏

3. Partner organizations (e.g. local health authorities)

๏

4. Public health/international development agencies (e.g. WHO)

๏

5. Members of the media

61
Activity:
The user journey
RESPONSIVE DESIGN STUDIO

Audiences and Scenarios
1. A program director from the Bill & Melinda Gates Foundation.
2. A couple who met while serving in the Peace Corp in Mozambique.
3. The director of a regional health service in Tanzania.
4. A committee at the WHO.
5. A journalist from the Atlantic.

63
Content Strategy
& Structure
“

Fitting a complex, multi-level
navigation onto small screens is
difficult no matter what way you
slice it.
—Brad Frost, “Complex Navigation
Patterns for Responsive Design”
How can
we make
this easier
to slice?
First, simplify.
“

For all of the fear that organizations
have...[mobile] is also an opportunity.
It’s also a chance to sweep away bad,
outdated desktop content.
— Karen McGrane
from 70k

to

3k pages
“

GOV.UK...has been planned, written,
organised and designed around
what users need to get done, not
around the ways government want
them to do it—providing only the
content they need and nothing
superfluous.
— Francis Maude,
Minister for the Cabinet Office
www.flickr.com/photos/stevendepolo/5190591885
RESPONSIVE DESIGN STUDIO

Redundant
Outdated
Trivial
71
www.flickr.com/photos/atomicjeep/22208897/
RESPONSIVE DESIGN STUDIO

Meaningless
72
Then, find patterns.
RESPONSIVE DESIGN STUDIO

Not just
pages
www.flickr.com/photos/peroshenka/408997641
RESPONSIVE DESIGN STUDIO

Which
content?
www.flickr.com/photos/tdd/4493216417

75
www.flickr.com/photos/28478778@N05/5728474385/
RESPONSIVE DESIGN STUDIO

Representative
content
76
This would help
every site. But it’s
critical for RWD.
RESPONSIVE DESIGN STUDIO

designers
aren’t
infinite.
78
Patterns helps
us scale.
RESPONSIVE DESIGN STUDIO

Patterns Become Content Types
Events
๏ Shows
๏ Blog Posts
๏ Articles
๏ Profiles
๏ Bios
๏ Help Modules
๏ Press Releases
๏ Directory Listings
๏ Recipes
๏ Products
๏ News Briefs
๏ Research Papers
๏

Abstracts
๏ Courses
๏ Interviews
๏ FAQs
๏ Instructions
๏

80
Content types
become repeatable.
And allow us to
anticipate
responsive needs.
Responsive Design Studio [Mountain View 2013]
Activity:
Content patterns
and types
Design is
How it Works
Design by Default
Design by Default
“

People think it's this veneer —
that the designers are handed
this box and told, 'Make it look
good!' That's not what we think
design is. It's not just what it
looks like and feels like. Design
is how it works.
— Steve Jobs
RESPONSIVE DESIGN STUDIO

Mobile First?
๏

The growth of mobile is a huge opportunity to reach more people than
ever.

๏

The constraints of the mobile medium force us to focus on what really
matters.

๏

The capabilities of mobile create opportunities to innovate.

89
RESPONSIVE DESIGN STUDIO

I want a mobile first website.
— A. Client
๏

Start with mobile wireframes

๏

Cut anything not used in the mobile version

๏

Don’t use any interface elements that don’t work on mobile

90
Lowest Common
Denominator?
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
“

…our job is to take
responsibility for the
complete user experience.
And if it’s not up to par, it’s
our fault, plain and simply.
— Steve Jobs
RESPONSIVE DESIGN STUDIO

Mobile First
A philosophy—applied to responsive
design—where the display and structure of
content and functionality are defined by
key user tasks and priorities.

96
Users must have
access to key
content tasks

&
Organize
prioritize

&
Make sure
markup, styles
scripts don’t
obscure it.

&
RESPONSIVE DESIGN STUDIO

Agile UX & Prototyping

100
RESPONSIVE DESIGN STUDIO

Design Overview
๏

Transition & Gesture

๏

Layout & Chrome

๏

Navigation & Controls

๏

Type & Icons

๏

Media & User Interface
101
RESPONSIVE DESIGN STUDIO

Transition & Gesture

102
RESPONSIVE DESIGN STUDIO

Transition & Gesture
Best Practices
๏

React immediately, without pause

๏

Transition changes in the interface

๏

Gestures should be obvious and natural

103
RESPONSIVE DESIGN STUDIO

React Immediately

104
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
“

CHANGE BLINDNESS
“

The real art of conducting consists in
transitions.
— Gustav Mahler
RESPONSIVE DESIGN STUDIO

Transition Changes

111
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
112
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
112
RESPONSIVE DESIGN STUDIO

Obvious Gestures

113
RESPONSIVE DESIGN STUDIO

disney.com
114
RESPONSIVE DESIGN STUDIO

disney.com
114
RESPONSIVE DESIGN STUDIO

disney.com
114
RESPONSIVE DESIGN STUDIO

disney.com
115
RESPONSIVE DESIGN STUDIO

disney.com
115
RESPONSIVE DESIGN STUDIO

disney.com
115
RESPONSIVE DESIGN STUDIO

Touch Gesture Reference Guide
Tap

Press

Pinch
OR

Multi-finger
drag
OR

Multi-finger
tap

OR

Squeeze

Press
and tap
Two-finger
drag
1

Double tap

Drag

Press
and
drag

Spread

2

Lasso
and
cross

Press
and tap,
then drag
1

Splay

Flick

OR

1

2

2

Rotate

OR

OR

Supporting materials for this guide can be found online at: http://www.lukew.com/touch/

116
RESPONSIVE DESIGN STUDIO

Layout & Chrome
header

nav

article

aside

footer

117
RESPONSIVE DESIGN STUDIO

Layout & Chrome
Best Practices
๏

Collapse Into Fewer And Fewer Columns

๏

Keep Section Short

๏

Think Fluid

๏

Respond to Portrait and Landscape

๏

Use CSS for styles
118
RESPONSIVE DESIGN STUDIO

Choosing Breakpoints
๏

Common Screen Widths: 1024px, 760px, 600px, 480px, and 320px

๏

Relative Widths: Ems or %

๏

Natural Breakpoints: Eyeball it and choose the points that work best
for the interface you design

119
RESPONSIVE DESIGN STUDIO

120
RESPONSIVE DESIGN STUDIO

121
RESPONSIVE DESIGN STUDIO

122
RESPONSIVE DESIGN STUDIO

Collapse Columns

123
RESPONSIVE DESIGN STUDIO

unitedpixelworkers.com
124
RESPONSIVE DESIGN STUDIO

unitedpixelworkers.com
125
RESPONSIVE DESIGN STUDIO

unitedpixelworkers.com
126
RESPONSIVE DESIGN STUDIO

unitedpixelworkers.com
127
RESPONSIVE DESIGN STUDIO

Collapse Columns
๏

Eliminates horizontal scroll

๏

Allows better use of available space

128
RESPONSIVE DESIGN STUDIO

Keep Sections Short

129
RESPONSIVE DESIGN STUDIO

Shorter
Section
s
^
Keep Sections Short

129
RESPONSIVE DESIGN STUDIO

etchapps.com
130
RESPONSIVE DESIGN STUDIO

etchapps.com/
131
RESPONSIVE DESIGN STUDIO

etchapps.com/
132
RESPONSIVE DESIGN STUDIO

Shorter
Section
s
^
Keep Sections Short
๏

Easier to scan.

๏

Easier to collapse.

133
RESPONSIVE DESIGN STUDIO

Think Fluid

134
RESPONSIVE DESIGN STUDIO

gov.uk
135
RESPONSIVE DESIGN STUDIO

gov.uk
136
RESPONSIVE DESIGN STUDIO

gov.uk
137
RESPONSIVE DESIGN STUDIO

Think Fluid
๏

Allows for fluid designs that scale to meet exact widths without getting
too wide or too narrow.

๏

Allows better use of available space

138
RESPONSIVE DESIGN STUDIO

Respond to Orientation

139
RESPONSIVE DESIGN STUDIO

activetheory.net
140
RESPONSIVE DESIGN STUDIO

activetheory.net
141
RESPONSIVE DESIGN STUDIO

activetheory.net
141
RESPONSIVE DESIGN STUDIO

richbrown.info
142
RESPONSIVE DESIGN STUDIO

richbrown.info
142
RESPONSIVE DESIGN STUDIO

richbrown.info
143
RESPONSIVE DESIGN STUDIO

richbrown.info
143
RESPONSIVE DESIGN STUDIO

Respond to Orientation
๏

Portrait and landscape are different contexts

๏

Allows for fluid designs that scale to meet exact widths without getting
too wide or too narrow.

๏

Allows better use of available space

144
RESPONSIVE DESIGN STUDIO

Use CSS for styles

145
RESPONSIVE DESIGN STUDIO

seia.org/
146
RESPONSIVE DESIGN STUDIO

seia.org/
147
RESPONSIVE DESIGN STUDIO

seia.org/
148
RESPONSIVE DESIGN STUDIO

Use CSS for styles
๏

Designs that do not rely on images for style are easier to scale.

๏

Gradients and borders and shadows, oh my!

149
Responsive Design Studio [Mountain View 2013]
CTA

Header
Nav
Promotions
Blog

Prog1

Prog2

Prog3

Social

Newsletter

News

Footer
CTA

Nav

Header

Social

Promotions

Prog1

Prog2

Prog3

News
Blog

Newsletter
Footer
Header Nav
CTA

Promotions
Social

Prog1

Prog2

Prog3
News
Blog
Newsletter
Footer
RESPONSIVE DESIGN STUDIO

Navigation & Controls

+

154
RESPONSIVE DESIGN STUDIO

Navigation & Controls

+

Option 1
Option 2
Option 3

154
RESPONSIVE DESIGN STUDIO

Navigation & Controls
Patterns
๏

“Do Nothing”

๏

Footer anchor

๏

Drop-down Menu

๏

Top slide menu

๏

Side slide menu
155
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Top Nav aka. “Do Nothing”

156
RESPONSIVE DESIGN STUDIO

yokedesign.com.au
157
RESPONSIVE DESIGN STUDIO

yokedesign.com.au
158
RESPONSIVE DESIGN STUDIO

yokedesign.com.au
159
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Top Nav aka. “Do Nothing”
๏

PRO: Simple

๏

PRO: No JavaScript

๏

CON: Hard Scale

๏

CON: Hard To use

160
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Footer Anchor

161
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
162
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
163
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
164
RESPONSIVE DESIGN STUDIO

contentsmagazine.com
164
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Footer Anchor
๏

PRO: Simple

๏

PRO: No JavaScript

๏

CON: Awkward jump can be disorientating to the user

๏

CON: Difficult to scale

165
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Drop-down Menu

166
RESPONSIVE DESIGN STUDIO

thenextweb.com
167
RESPONSIVE DESIGN STUDIO

thenextweb.com
168
RESPONSIVE DESIGN STUDIO

thenextweb.com
168
RESPONSIVE DESIGN STUDIO

thenextweb.com
168
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Drop-down Menu
๏

PRO: Frees Space

๏

PRO: Scalable

๏

PRO: Can be fixed at top or bottom

๏

CON: Requires JavaScript

169
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Top-slide Menu

170
RESPONSIVE DESIGN STUDIO

starbucks.com
171
RESPONSIVE DESIGN STUDIO

starbucks.com

starbucks.com
172
RESPONSIVE DESIGN STUDIO

starbucks.com

starbucks.com
172
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Top-slide Menu
๏

PRO: Frees Space

๏

PRO: Some what Scalable

๏

CON: Requires JavaScript

173
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Side-slide Menu

174
RESPONSIVE DESIGN STUDIO

175
RESPONSIVE DESIGN STUDIO

176
RESPONSIVE DESIGN STUDIO

177
RESPONSIVE DESIGN STUDIO

NAVIGATION PATTERN

Side-slide Menu
๏

PRO: Frees Space

๏

PRO: Very Scalble Scalable

๏

CON: Requires JavaScript

178
RESPONSIVE DESIGN STUDIO

Type & Icon

179
RESPONSIVE DESIGN STUDIO

Type & Icon
Best Practices
๏

Use Webfonts

๏

Don’t Just Shrink to Fit

๏

Use webfonts for Icons

180
RESPONSIVE DESIGN STUDIO

Use Webfonts

181
Responsive Design Studio [Mountain View 2013]
Verdana
Georgia
Trebuchet MS

Arial

Times New Roman
RESPONSIVE DESIGN STUDIO

Browser Support of Webfonts

EOT

✔4
✔ 3.5

TTF/OTF

✔ 10

✔ 3.1

SVG
WOFF

✔ 3.1

✔9

✔ 3.6

✔3

✔ 10

✔6

✔6

✔ 11
183
RESPONSIVE DESIGN STUDIO

Mobile Support of Webfonts

EOT
TTF/OTF

✔ 4.2

SVG

✔ 3.1

WOFF

✔ 5.0

✔ 2.2

✔6

✔ 10
184
RESPONSIVE DESIGN STUDIO

Webfonts Make Designs More
Responsive
๏

Fonts can be optimized for devices.

๏

Reduce or eliminate the need for text in images.

๏

Can replace icons.

185
RESPONSIVE DESIGN STUDIO

Don’t Just Shrink To Fit

186
“

A pixel is not a pixel is not a
pixel. In other words, there are
no absolute sizes when it comes
to measuring web type.
Everything is relative.
— Tim Brown, Nice Web Type
RESPONSIVE DESIGN STUDIO

Which line can you read better?

This is type set at 10px. Got a microscope?

This is type set at 12px. Tiny isn't it?

This is type set at 14px. Getting better.

This is type set at 16px. Much better!

188
RESPONSIVE DESIGN STUDIO

markboultondesign.com
189
RESPONSIVE DESIGN STUDIO

markboultondesign.com
190
RESPONSIVE DESIGN STUDIO

markboultondesign.com
191
RESPONSIVE DESIGN STUDIO

Webfonts for Icons

192
RESPONSIVE DESIGN STUDIO

Working Example
Article on Web Standards Sherpa
193
RESPONSIVE DESIGN STUDIO

194
RESPONSIVE DESIGN STUDIO

194
RESPONSIVE DESIGN STUDIO

195
RESPONSIVE DESIGN STUDIO

195
RESPONSIVE DESIGN STUDIO

196
RESPONSIVE DESIGN STUDIO

Media & User Interface

197
RESPONSIVE DESIGN STUDIO

Media & User Interface
Best Practices
๏

Reduce media dimensions

๏

Consider bandwidth

๏

Rethink Tables

198
RESPONSIVE DESIGN STUDIO

Reduce Media Dimensions
No Silver Bullet… yet.

๏

Resize

๏

Crop

๏

Client Side JavaScript

๏

Server Side Detection

199
RESPONSIVE DESIGN STUDIO

Consider Bandwidth

200
RESPONSIVE DESIGN STUDIO

Rethink Tables
๏

Selective Display »

๏

The Slip Scrol »l

๏

Table to Graph »

๏

Responsive Table »

201
Activity:
Storyboard the
User Experience
Better Code,
Better Experiences
© Brad Frost
We don’t know
Even when
we think
we know,
we’re probably
wrong
So how
do we cope?
Content
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
:-)

Responsive
Web Design

Mobile
First
User Experience
BASIC

ADVANCED

Browser Capabilities
User Experience

Accessibility
Interactivity
Design

BASIC

Semantics

Browser Capabilities

Content

ADVANCED
User Experience

ARIA
JavaScript
CSS

BASIC

HTML

Browser Capabilities

Text & HTTP

ADVANCED
HTML
HTML5

HTML
Microformats
HTML4
MCMLXXVII
(that’s 1977)
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
HTML

CSS
fault tolerance
n. a system’s ability to continue to
operate when it encounters and
unexpected error.
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Browsers ignore
what they don’t
understand
User Experience
BASIC

ADVANCED

Browser Capabilities

Content
Content
is why
we build
websites
Users must have
access to key
content tasks

&
Make sure
markup, styles
scripts don’t
obscure it.

&
User Experience
BASIC

Semantics

Browser Capabilities

Content

ADVANCED
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

Semantics 101
<p>HTML5 introduces several <em>really</em>
useful elements and a ton of new APIs.</p>
<p>Please fill out the form below.
<strong>Note: all fields are required.</strong></p>
<p>I like to work with markup languages because
<strong>they are simple and easy to read</strong>.
They also have that certain <i lang="fr" title="I
don&#8217;t know what">je ne sais quoi</i>.</p>
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
User Experience

Design
BASIC

Semantics

Browser Capabilities

Content

ADVANCED
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
User Experience

Interactivity
Design

BASIC

Semantics

Browser Capabilities

Content

ADVANCED
Responsive Design Studio [Mountain View 2013]
But it’s not
only about
no JavaScript
๏Bugs
๏Browser Add-ons
๏Overzealous Firewalls
๏Underpowered devices
๏Page is still loading
User Experience

Accessibility
Interactivity
Design

BASIC

Semantics

Browser Capabilities

Content

ADVANCED
“special needs”
“special needs”
can be
CONTEXTUAL
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

The Not So Easy Stuff
๏

Page weight

๏

Interaction methods

๏

Network latency & performance

๏

Hardware performance

๏

Screen resolution

๏

Sensor availability

254
How has your
perception of RWD
changed?
What do you
(or your org)
need to work on?
RESPONSIVE

DESIGN STUDIO
Making Content
Modular
Yesterday we found
content types and
patterns.
Now let’s get
down to details.
Let’s talk
structure
We call this
content modeling.
RESPONSIVE DESIGN STUDIO

A content model is…
๏

A structural model that matches how your content inherently works.

๏

A visualization of relationships between content types in a system.

๏

What will give your content the flexibility needed for RWD.

8
Developers
have been
modeling
data for
decades.
From Web Database Applications with PHP & MySQL by
Hugh E. Williams and David Lane (O’Reilly, 2003)
What’s different
about content
modeling?
RESPONSIVE DESIGN STUDIO

Meaning,
then modeling
www.flickr.com/photos/mujitra/4868415523
We start by
breaking a content
type down into its
constituent parts.
Responsive Design Studio [Mountain View 2013]
Then we define
what those
content chunks
need to include.
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

Content Requirements
๏

Defines which attributes and metadata a content type needs.

๏

Sets formats, character limits, and optional fields.

๏

Defines what you’ll have to work with—and design for.

16
Then we think
about how it fits
into a content
system.
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Every content
chunk is an
opportunity.
Display
Condense
Remove
Reprioritize
If a program is on
the homepage, then
display its summary,
but not details.
When a small screen
loads a country page,
show the overview
but collapse its
programs.
RESPONSIVE DESIGN STUDIO

Considerations for Modeling
How will this content:
๏

Be made available in multiple places?

๏

Expand or contract for bigger or larger screens?

๏

Keep visual priority in a single column? In multiple columns?

๏

Be related to other content?

23
RESPONSIVE DESIGN STUDIO

You need
balance
www.flickr.com/photos/katsrcool/7273165554/
The more complex the
model, the more useful.
But also the more difficult
to implement and train
others to use.
Activity:
Structuring a
content page
Prototyping
Responsively
Friends don’t let
friends prototype
with Photoshop
:-)
The Old Ways of Weaving the Web

ARE NOT WORKING
RESPONSIVE DESIGN STUDIO

30
RESPONSIVE DESIGN STUDIO

31
RESPONSIVE DESIGN STUDIO

32
RESPONSIVE DESIGN STUDIO

33
RESPONSIVE DESIGN STUDIO

34
RESPONSIVE DESIGN STUDIO

35
RESPONSIVE DESIGN STUDIO

36
RESPONSIVE DESIGN STUDIO

37
“

People think it's this veneer —
that the designers are handed
this box and told, 'Make it look
good!' That's not what we think
design is. It's not just what it
looks like and feels like. Design
is how it works.
— Steve Jobs
We Prototype to Answer the
Question

”What If…?”
“

[Prototypes] don’t focus on the
solution, but on understanding
the problem. They ask the
question, “What happens when
we try this?” Maybe we learn it’s
the right idea, but more likely
we learn something about the
problem we didn’t know
before.
—Jared Spool
RESPONSIVE DESIGN STUDIO

Why do we Prototype?
๏

We need to plan & explore our ideas and concepts.

๏

We need to explain & clarify our ideas and concepts.

๏

We need to test & validate our ideas and concepts.

41
RESPONSIVE DESIGN STUDIO

42
RESPONSIVE DESIGN STUDIO

43
The user experience designer's job does
not stop after the page loads…

…It's really only just

begun.
Story Time
On Exactitude in
Science
On Exactitude in
Web Design
A Cautionary Tale
Creepy?
RESPONSIVE DESIGN STUDIO

48
RESPONSIVE DESIGN STUDIO

49
RESPONSIVE DESIGN STUDIO

The Fidelity Cliff
๏

Desire for pixel perfection in paper deliverables

๏

Belief that all questions can be answered before development begins.

๏

Waterfall Methodology.

๏

Prototyping in a medium other than the Web.

50
RESPONSIVE DESIGN STUDIO

Waterfall

51
RESPONSIVE DESIGN STUDIO

Agile UX & Prototyping

52
Avoiding the
Fidelity Cliff
RESPONSIVE DESIGN STUDIO

54
Interactive
Prototyping:
Options?
Use A Tool

Roll Your Own
Tools
What We Need…

A TOOL AS EASY TO USE AS
PHOTOSHOP THAT ALLOWS DESIGNERS
TO CREATE INTERACTIVE PROTOTYPES
THAT CAN BE QUICKLY TURNED INTO
WORKING PRODUCTS.
We are not there…
…but we are getting closer.
RESPONSIVE DESIGN STUDIO

What Makes a Good Tool?
๏

Responsive Web Design

๏

Structural Fidelity

๏

Visual Fidelity

๏

Interactive Fidelity

๏

Core Web Technologies
60
RESPONSIVE DESIGN STUDIO

What Makes a Good Tool?
๏

Responsive Web Design

๏

Structural Fidelity

๏

Visual Fidelity

๏

Interactive Fidelity

๏

Core Web Technologies
61
RESPONSIVE DESIGN STUDIO

Tool Comparison
Fidelity
Visual

Interactive Reusable

Pricing

Format

URL

Adobe Edge







Free

Desktop

adobe.com/edge

Axure







$$

Desktop

axure.com

Easle







$$$

Web

easel.io

InVision







$$$

Web

invisionapp.com

JetStrap







$$$

Web

jetstrap.com

Protoshare







$$

Web

protoshare.com

Proty







Free

Plug-in

protytype.com

Solidify







$$

Web

solidifyapp.com

Ux Pin







$

Web

uxpin.com

Webflow







$$

Web

webflow.com



= None |



= Partial/Limited |



= Yes

$ = Single License | $$ = Multiple License | $$$ = Enterprise License
62
RESPONSIVE DESIGN STUDIO

63
RESPONSIVE DESIGN STUDIO

64
RESPONSIVE DESIGN STUDIO

65
RESPONSIVE DESIGN STUDIO

66
Interactive Prototyping will be

THE UX SKILL OF THE FUTURE.
Roll Your Own
(with help)
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Roll Your Own
Responsive deliverables should look a lot
like fully-functioning Twitter Bootstrapstyle systems custom tailored for your
clients’ needs. These living code samples
are self-documenting style guides that
extend to accommodate a client’s needs
as well as the needs of the ever-evolving
multi-device web.
— Dave Rupert,
Responsive Deliverables
Responsive Design Studio [Mountain View 2013]
Coding Better
User Experience
BASIC

Semantics

Browser Capabilities

Content

ADVANCED
Ad-hoc
Semantics
RESPONSIVE DESIGN STUDIO

Classification
RESPONSIVE DESIGN STUDIO

Identification
RESPONSIVE DESIGN STUDIO

Microformats
<section class="vcard">
<figure>
<img class="photo" src="aaron-gustafson.jpg" alt=""/>
</figure>
<h1 class="fn">Aaron Gustafson</h1>
…
<p>Aaron … is <b class="role">Group Manager</b> of the
<a class="org" href="http://webstandards.org">Web
Standards Project (WaSP)</a> ….</p>
</section>
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
HTML5
RESPONSIVE DESIGN STUDIO

Progressive Disclosure
RESPONSIVE DESIGN STUDIO

Progressive Disclosure
<details>
<summary>Consumption Measurement</summary>
<ul>
<li><a href=”#”>Direct Purchase</a></li>
<li><a href=”#”>Distribution</a></li>
</ul>
</details>
RESPONSIVE DESIGN STUDIO

New Field Types

<input type="email" …/>

<input type="url" …/>
RESPONSIVE DESIGN STUDIO

New Field Types
<input type="date" name="dob"/>
RESPONSIVE DESIGN STUDIO

New Field Types
<input type="number" name="foo"/>

<input type="range" min="1" max="11" step=”1” name="foo"/>
RESPONSIVE DESIGN STUDIO

New Field Types
<input type="search" name="query"/>
RESPONSIVE DESIGN STUDIO

New Attributes
<input type="text"
autocomplete=””
autofocus=””
form=”contact-form”
required=””
.../>
RESPONSIVE DESIGN STUDIO

Form Validation & Hints
<input type="text"
pattern="d{6}w{3}"
placeholder="6 digits followed by 3 letters"
.../>
RESPONSIVE DESIGN STUDIO

Predictive Typing
<input type="text" list="countries" name="country"/>
<datalist id="countries">
<option>Afghanistan</option>
<option>Åland Islands</option>
<!-- ... -->
</datalist>
RESPONSIVE DESIGN STUDIO

Predictive Typing
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

Responsive Images
๏

Resize for optimization

๏

Cropping

๏

Alternate views

๏

Alternate resolutions

๏

Alternate colors

96
RESPONSIVE DESIGN STUDIO

Responsive Images
RESPONSIVE DESIGN STUDIO

Responsive Images
<picture>
<source media="(max-width: 479px)"
src="test_landscape_1@1x.jpg">
<source media="(min-width: 480px) and (max-width: 639px)"
src="test_landscape_1@2x.jpg">
<source media="(min-width: 640px)"
src="test_landscape_1@4x.jpg">
<source media="monochrome"
src="test_landscape_1@monochrome.jpg">
<source media="print" src="test_landscape_1@monochrome.jpg">
<!-- fallback img if picture is not supported -->
<img src="test_landscape_1@2x.jpg">
<!-- alternate text -->
<p>Nymphenburg Castle in Munich during sunset</p>
</picture>
RESPONSIVE DESIGN STUDIO

Responsive Images
<picture>
<source media="(max-width: 479px)"
src="test_landscape_1@1x.jpg">
<source media="(min-width: 480px) and (max-width: 639px)"
src="test_landscape_1@2x.jpg">
<source media="(min-width: 640px)"
src="test_landscape_1@4x.jpg">
<source media="monochrome"
src="test_landscape_1@monochrome.jpg">
<source media="print" src="test_landscape_1@monochrome.jpg">
<!-- fallback img if picture is not supported -->
<img src="test_landscape_1@2x.jpg">
<!-- alternate text -->
<p>Nymphenburg Castle in Munich during sunset</p>
</picture>
RESPONSIVE DESIGN STUDIO

Responsive Images
<picture>
<source media="(max-width: 479px)"
src="test_landscape_1@1x.jpg">
<source media="(min-width: 480px) and (max-width: 639px)"
src="test_landscape_1@2x.jpg">
<source media="(min-width: 640px)"
src="test_landscape_1@4x.jpg">
<source media="monochrome"
src="test_landscape_1@monochrome.jpg">
<source media="print" src="test_landscape_1@monochrome.jpg">
<!-- fallback img if picture is not supported -->
<img src="test_landscape_1@2x.jpg">
<!-- alternate text -->
<p>Nymphenburg Castle in Munich during sunset</p>
</picture>
RESPONSIVE DESIGN STUDIO

Responsive Images
<picture>
<source media="(max-width: 479px)"
src="test_landscape_1@1x.jpg">
<source media="(min-width: 480px) and (max-width: 639px)"
src="test_landscape_1@2x.jpg">
<source media="(min-width: 640px)"
src="test_landscape_1@4x.jpg">
<source media="monochrome"
src="test_landscape_1@monochrome.jpg">
<source media="print" src="test_landscape_1@monochrome.jpg">
<!-- fallback img if picture is not supported -->
<img src="test_landscape_1@2x.jpg">
<!-- alternate text -->
<p>Nymphenburg Castle in Munich during sunset</p>
</picture>
RESPONSIVE DESIGN STUDIO

Responsive Images
<picture>
<source media="(min-width: 40em)"
srcset=”big.jpg 1x, big-hd.jpg 2x”>
<source srcset="small.jpg 1x, small-hd.jpg 2x">
<!-- fallback img if picture is not supported -->
<img src="test_landscape_1@2x.jpg">
<!-- alternate text -->
<p>Nymphenburg Castle in Munich during sunset</p>
</picture>
User Experience

Design
BASIC

Semantics

Browser Capabilities

Content

ADVANCED
RESPONSIVE DESIGN STUDIO

Parsing Errors

p{
color: red;
}
RESPONSIVE DESIGN STUDIO

Parsing Errors

p{
color: red;
}
RESPONSIVE DESIGN STUDIO

Parsing Errors

p{
color: red;
font-weight: bold;
}
RESPONSIVE DESIGN STUDIO

Parsing Errors

p{
color: red;
font-weight: bold;
}
RESPONSIVE DESIGN STUDIO

Parsing Errors
p {
color: #44494D;
color: rgba( 0, 0, 0, .5 );
}

This is a test
This is a test
RESPONSIVE DESIGN STUDIO

Parsing Errors
html[lang] p {
color: #ccc;
color: rgba( 0, 0, 0, .5 );
}
RESPONSIVE DESIGN STUDIO

Parsing Errors
@-moz-document url-prefix() {
html[lang] p {
color: #ccc;
color: rgba( 0, 0, 0, .5 );
}
}
#intro {
/* Basic Layout */
}
/* ... */
body[id=css-zen-garden] #intro {
/* Advanced Layout */
}
#intro {
/* Basic Layout */
}
/* ... */
[foo], #intro {
/* Advanced Layout */
}
RESPONSIVE DESIGN STUDIO

Parsing Errors
@import 'not-for-IE7-or-below.css' screen;
@media screen, print, refrigerator {
/* IE will get these rules */
}
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

@Media Blocks+
@media screen and (min-width:450px) {
/* Styles for screen media when browser
is 450px wide or larger */
}
RESPONSIVE DESIGN STUDIO

Don’t Do This
@media
screen and (min-device-width:1024px)
and (max-width:989px),
screen and (max-device-width:480px),
screen and (max-device-width:480px)
and (orientation:landscape),
screen and (min-device-width:481px)
and (orientation:portrait) {
/* REALLY? */
}
RESPONSIVE DESIGN STUDIO

Mobile First w/ Media Queries
<link rel="stylesheet" href="/c/basic.css">
<link rel="stylesheet" href="/c/advanced.css"
media="only screen and (min-width:20em)">
<!--[if (lt IE 9) & !(IEMobile)]>
<link rel="stylesheet" href="/c/ie8.css">
<![endif]-->
<link rel="stylesheet" href="/c/print.css" media="print">
RESPONSIVE DESIGN STUDIO

Mobile First w/ Media Queries
.hentry .entry-meta li {
display: inline-block;
vertical-align: middle;
margin-right: .5em;
}
.primary .hfeed .hentry .add {
position: absolute;
top: 2px;
left: 2px;
width: 22px;
}
.primary .hfeed .hentry .add a {
overflow: hidden;
text-indent: 100%;
white-space: nowrap;
display: block;
width: 0;
}

basic.css

advanced.css
RESPONSIVE DESIGN STUDIO

Mobile First w/ Media Queries
// Break-1
@import "break_1";
// Break 2
@media ( min-width: px-to-ems($break-2) ) {
@import "break_2";
}
// Break 3
@media ( min-width: px-to-ems($break-3) ) {
@import "break_3";
}
// Break 4
@media ( min-width: px-to-ems($break-4) ) {
@import "break_4";
}
advanced.css using SASS
RESPONSIVE DESIGN STUDIO

Mobile First w/ Media Queries
// Break 1
@import "break_1";
// Break-2
@import "break_2";
// Break 3
@import "break_3";
// Break 4
@import "break_4";
// Break 5
@import "large";
ie8.css using SASS
User Experience

Interactivity
Design

BASIC

Semantics

Browser Capabilities

Content

ADVANCED
Photo credit: ambery
http://is.gd/lazyloading_demo
RESPONSIVE DESIGN STUDIO

Anchor-Include Pattern
Replace:
<a data-replace="/item/123/reviews?fragment=true"
href="/item/123/reviews">8 Reviews</a>

After:
<a data-after="/item/123/related?fragment=true"
href="/item/123/related">Similar T-shirts</a>
RESPONSIVE DESIGN STUDIO

124
RESPONSIVE DESIGN STUDIO

Lazy Loading
<a href="/article/12345/#comments"
data-tooltip="/api/get-comments-tooltip?id=12345">5
Comments</a>
RESPONSIVE DESIGN STUDIO

Improved Lazy Loading
<a href="/article/12345/#comments"
data-tooltip="/api/get-comments-tooltip?id=12345">5
Comments</a>
RESPONSIVE DESIGN STUDIO

Improved Lazy Loading
<a href="/article/12345/#comments"
data-tooltip="/api/get-comments-tooltip?id=12345">5
Comments</a>

+
<a href="/article/45678/#comments"
data-tooltip="/api/get-comments-tooltip?id=45678">5
Comments</a>

=
$.get(‘/api/get-comments-tooltip?id=12345,45678’, function(data){
// split tooltips apart & set them up for display
});
JavaScript

CSS
RESPONSIVE DESIGN STUDIO

Remember stuff like this?
<a href="foo.html"
style="color:blue;"
onmouseover="this.style.color='red'"
onmouseout="this.style.color='blue'">Foo</a>
RESPONSIVE DESIGN STUDIO

Remember stuff like this?
<a href="foo.html"
style="color:blue;"
onmouseover="this.style.color='red'"
onmouseout="this.style.color='blue'">Foo</a>
a, a:link, a:visited {
color: blue;
}
a:hover {
color: red;
}
RESPONSIVE DESIGN STUDIO

Isn’t this the same?
for( i=0; i<objects.length; i++){
objects[i].style.display = 'none';
}
RESPONSIVE DESIGN STUDIO

Small Improvement
for( i=0; i<objects.length; i++){
objects[i].style.position = 'absolute';
objects[i].style.left
= '-999em';
}
RESPONSIVE DESIGN STUDIO

Separation
for( i=0; i<objects.length; i++){
objects[i].addClassName( 'hidden' );
}

.hidden {
position: absolute;
left: -999em;
}
Apply No Style
Before Its Time
RESPONSIVE DESIGN STUDIO

How do we do that?
.TabInterface-tablist {
/* … */
}

#MyUniqueObject .component {
/* … */
}

133
RESPONSIVE DESIGN STUDIO

How do we do that?
Tactic

add “-on” to the class

Default

.tabbed

add an activation class

change the form of the
class

Activated

.tabbed-on

.TabInterface-enabled

.replace-me

.replaced
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

Semantics
<ul>
<li>
<a href="#"><img src="…" alt="" /></a>
<span>Your new online source for information
on our progress</span>
</li>
<li>
<a href="#"><img src="…" alt="" /></a>
<span>VillageReach Announces Mozambique
National Expansion</span>
</li>
<li>
<a href="#"><img src="…" alt="" /></a>
<span>VillageReach's innovative approach
for last mile communities</span>
</li>
…
</ul>
RESPONSIVE DESIGN STUDIO

Style?
<ul style=”height: 300px;”>
<li style=”height: 300px;” >
<a href="#"><img src="…" alt="" /></a>
<span>Your new online source for information
on our progress</span>
</li>
<li style=”height: 300px;” >
<a href="#"><img src="…" alt="" /></a>
<span>VillageReach Announces Mozambique
National Expansion</span>
</li>
<li style=”height: 300px;” >
<a href="#"><img src="…" alt="" /></a>
<span>VillageReach's innovative approach
for last mile communities</span>
</li>
…
</ul>
Responsive Design Studio [Mountain View 2013]
User Experience

Accessibility
Interactivity
Design

BASIC

Semantics

Browser Capabilities

Content

ADVANCED
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<img src=”/i/logo.png” alt=”User Interface 17”/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<img src=”/i/frisbee.png”
alt=”Man throws frisbee to golden retriever”/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<img src=”/i/frisbee.png”
alt=”Man throws frisbee to golden retriever”/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<img src=”/i/frisbee.png”
alt=”Man throws frisbee to golden retriever”/>

<img src=”/i/frisbee.png”
alt=””/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<input type="text" required="" title="First name is required"/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<input type="email" required="" title="Your email is invalid"/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<input type="email" required="" title="Your email is invalid"/>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
<form class="login" action="" method="post"
data-error-empty="This field is required"
data-error-invalid="Your response does not appear valid">
<ol>
<li>
<label for="email">Email</label>
<input id="email" name="email" type="email" required=""
data-error-invalid=”Your email is not valid”/>
</li>
<li>
<label for="password">Password</label>
<input id="password" type="password" name="password"
required=""/>
</li>
<li><button type="submit">Login</button></li>
</ol>
</form>
RESPONSIVE DESIGN STUDIO

Alt Text & Titles
$('input,select,textarea')
// handle invalidity
.bind('invalid', function(){
var $this = $(this),
msg = '';
if ( this.validity.valueMissing ) {
msg = $this.data('error-empty') ||
$this.closest('form').data('error-empty');
} else if ( ! this.validity.valid ) {
msg = $this.data('error-invalid') ||
$this.closest('form').data('error-invalid');
}
this.setCustomValidity( msg );
})
// reset
.bind('change', function(){
this.setCustomValidity('');
});
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

What is it?
RESPONSIVE DESIGN STUDIO

What is it?

<button>Tweet</button>
<a class=”button”>Tweet</a>
RESPONSIVE DESIGN STUDIO

What is it?

<button>Tweet</button>
<a class=”button”>Tweet</a>
RESPONSIVE DESIGN STUDIO

What is it?
RESPONSIVE DESIGN STUDIO

What is it?

<button>Search Mail</button>
<div>Search Mail</div>
RESPONSIVE DESIGN STUDIO

What is it?

<button>Search Mail</button>
<div>Search Mail</div>
RESPONSIVE DESIGN STUDIO

ARIA Maps the OS to the Web
Semantics+
RESPONSIVE DESIGN STUDIO

All the Web’s a Play…
<section id="main" role="main">
<!-- The primary content for the page would go here -->
</section>
Responsive Design Studio [Mountain View 2013]
<header role="banner">
<nav role="navigation">
<form role="search">
<section role="main">
RESPONSIVE DESIGN STUDIO

Semantic Comparison
Ad-hoc

ARIA Role

HTML5

#header, #top

banner

header (kind of)

#main, #content

main

none

#extra, .sidebar

complementary, note

aside

#footer, #bottom

contentinfo

footer

#nav

navigation

nav

.hentry

article

article
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

These are the droids you seek
<span role="button">OK</span>
<div role="alert">
<p>Something went wrong.</p>
</div>
<div role="alertdialog">
<p>Something went wrong.</p>
<img src="x.png" alt="dismiss" role="button" />
</div>
RESPONSIVE DESIGN STUDIO

What is it?

<a role=”button”>Tweet</a>
class=”button”>Tweet</a>
RESPONSIVE DESIGN STUDIO

What is it?

<a role=”button”>Tweet</a>
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

What’s happening?
B

B

(off)

(on)

<span>
<img src="bold-off.png" alt="bold" />
</span>
<span>
<img src="bold-on.png" alt="bold" />
</span>
RESPONSIVE DESIGN STUDIO

What’s happening?
B

B

(off)

(on)

<span>
<img src="bold-off.png" alt="not bold" />
</span>
<span>
<img src="bold-on.png" alt="bold" />
</span>
RESPONSIVE DESIGN STUDIO

What’s happening?
B

B

(off)

(on)

<span role="button" aria-pressed="false">
<img src="bold-off.png" alt="not bold" />
</span>
<span role="button" aria-pressed="true">
<img src="bold-on.png" alt="bold" />
</span>
Responsive Design Studio [Mountain View 2013]
RESPONSIVE DESIGN STUDIO

Hey! Over here!
RESPONSIVE DESIGN STUDIO

Hey! Over here!

<input class="tweet-counter" value="140" disabled="disabled">
RESPONSIVE DESIGN STUDIO

Hey! Over here!

<span id="chars_left_notice" class="numeric">
<strong id="status-field-char-counter"
class="char-counter">140</strong>
</span>
RESPONSIVE DESIGN STUDIO

Hey! Over here!

<span class="tweet-counter">140
<b class="hidden"> characters remaining</b></span>
.hidden {
position: absolute;
left: ⇥999em;
}
RESPONSIVE DESIGN STUDIO

Hey! Over here!

<span class="tweet-counter">maximum of 140 characters</span>

<span class="tweet-counter">140
<b class="hidden"> characters remaining</b></span>
RESPONSIVE DESIGN STUDIO

Hey! Over here!

<span aria-live="polite" aria-atomic="true"
class="tweet-counter">140<b class="hidden">
characters remaining</b></span>
RESPONSIVE DESIGN STUDIO

Hey! Over here!
Photo credit: emilio labrador
RESPONSIVE DESIGN STUDIO

Typical Hiding Schemes
Accessibility
Effect

CSS Rules

Display Effect

visibility: hidden;

Element is hidden from
view, but is not removed
from the normal flow (i.e. it
still takes up the space it
normally would)

Content is ignored by screen
readers

display: none;

Element is removed from
the normal flow and hidden;
the space it occupied is
collapsed

Content is ignored by screen
readers

height: 0;
width: 0;
overflow: hidden;

Element is collapsed and
contents are hidden

Content is ignored by screen
readers
RESPONSIVE DESIGN STUDIO

Typical Hiding Schemes
Accessibility
Effect

CSS Rules

Display Effect

text-indent: -999em;

Contents are shifted offscreen and hidden from
view, but links may “focus”
oddly and negative indent
may not prove long enough
to fully hide content

Screen readers have access
to the content, but the
content is limited to text and
inline elements

position: absolute;
left: -999em;

Content is removed from
the normal flow and shifted
off the left-hand edge; the
space it occupied is
collapsed

Screen readers have access
to the content
RESPONSIVE DESIGN STUDIO

Typical Hiding Schemes
CSS Rules

Display Effect

position: absolute;
/* IE6, IE7 */
clip: rect(
1px 1px 1px 1px
);
/* W3C */
clip: rect(
1px, 1px, 1px, 1px
);
padding: 0;
border: 0;
height: 1px;
width: 1px;
overflow: hidden;

Content is positioned
absolutely (and is removed
from the normal flow), but
remains in place and is
clipped to become invisible

Accessibility
Effect
Screen readers have access
to the content
RESPONSIVE DESIGN STUDIO

Typical Hiding Schemes
Accessibility
Effect

CSS Rules

Display Effect

visibility: hidden;

Element is hidden from
view, but is not removed
from the normal flow (i.e. it
still takes up the space it
normally would)

Content is ignored by screen
readers

display: none;

Element is removed from
the normal flow and hidden;
the space it occupied is
collapsed

Content is ignored by screen
readers

height: 0;
width: 0;
overflow: hidden;

Element is collapsed and
contents are hidden

Content is ignored by screen
readers
RESPONSIVE DESIGN STUDIO

“Fixing” Libraries
(function(){
var $button = $('#myButton'),
$text = $('#myText'),
visible = true;
$button.click(function(){
if ( visible ) {
$text.slideUp('fast');
} else {
$text.slideDown('fast');
}
visible = ! visible;
});
})();
RESPONSIVE DESIGN STUDIO

“Fixing” Libraries
(function(){
var $button = $('#myButton'),
$text = $('#myText'),
visible = true;
$button.click(function(){
if ( visible ) {
$text.slideUp('fast',function(){
$text.addClass('accessibly-hidden')
.slideDown(0);
});
} else {
$text.slideUp(0,function(){
$text.removeClass('accessibly-hidden')
.slideDown('fast');
});
}
visible = ! visible;
});
})();
photo by cfpg
RESPONSIVE DESIGN STUDIO

Managing Focus
<div tabindex="0">
<p>This <code>div</code> can now receive focus using a
keyboard’s <kbd>tab</kbd> key. How cool is that?</p>
</div>
<div tabindex="-1">
<p>This <code>div</code> won’t be focused by a user via the
<kbd>tab</kbd> key, but JavaScript can <code>focus()</code> it.
Nifty, huh?</p>
</div>
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

There is no image…
<p class="entry-image"
data-image-src="/alztheme/images/news/sample.jpg"></p>
RESPONSIVE DESIGN STUDIO

Until there is
<p class="entry-image"
data-image-src="/alztheme/images/news/sample.jpg"
data-has-image="true">
<img alt="" src="/alztheme/images/news/sample.jpg" alt=””>
</p>
RESPONSIVE DESIGN STUDIO

Adaptive Widget Logic
Lazy load the
images

Page

Yes

No

Yes

JS?

No
RESPONSIVE DESIGN STUDIO

Adaptive Widget Logic
Lazy load the
images

Page
LIVE
Yes

No

Yes

JS?

No

Hide the
images (if
loaded)
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

No Need to Link
<figure id="fig-1">
<img src="/path/small.png"
data-enlarged="/path/large.png"
alt="">
<figcaption>
<h6>Retreats 4 Geeks</h6>
<p>We built this site for our intimate retreat series.</p>
</figcaption>
</figure>
RESPONSIVE DESIGN STUDIO

Adaptive Widget Logic
Create
the link &
make image
clickable

Yes

Page

No

Yes

JS?

No
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

Make the Connection
<figure id="fig-1">
<img src="/path/small.png"
data-enlarged="/path/large.png"
alt=""
class="enlargable">
<p class="enlarge"><a href="#enlarge">Click to Enlarge</a></p>
<figcaption>
<h6>Retreats 4 Geeks</h6>
<p>We built this site for our intimate retreat series.</p>
</figcaption>
</figure>
RESPONSIVE DESIGN STUDIO

Complex Interfaces
RESPONSIVE DESIGN STUDIO

Traditional Approach
<h1>Pumpkin Pie</h1>
<div class="container">
<div class="section">
<h2>Overview</h2>
<img src="pie.jpg" alt="">
<p>Whether you're hosting a festive party or a casual
get-together with friends, our Pumpkin Pie will make
entertaining easy!</p>
<!-- ... -->
</div>
<!-- ... -->
<ul class="tabs">
<li><a href="#">Overview</a></li>
<li><a href="#">Ingredients</a></li>
<li><a href="#">Directions</a></li>
<li><a href="#">Nutrition</a></li>
</ul>
</div>
RESPONSIVE DESIGN STUDIO

Cleaner Approach
<h1>Pumpkin Pie</h1>
<div class="tabbed-interface">
<h2>Overview</h2>
<img src="pie.jpg" alt="" />
<p>Whether you're hosting a festive party or a casual
get-together with friends, our Pumpkin Pie will make
entertaining easy!</p>
<!-- ... -->
<h2>Ingredients</h2>
<ul>
<li>1 (9<abbr title="inch">in</abbr>) unbaked deep
dish pie crust</li>
<li> cup white sugar</li>
<!-- ... -->
</ul>
<h2>Directions</h2>
<!-- ... -->
</div>
RESPONSIVE DESIGN STUDIO

Cleaner Approach
<h1>Pumpkin Pie</h1>
<div class="tabbed-interface">
<h2>Overview</h2>
<img src="pie.jpg" alt="" />
<p>Whether you're hosting a festive party or a casual
get-together with friends, our Pumpkin Pie will make
entertaining easy!</p>
<!-- ... -->
<h2>Ingredients</h2>
<ul>
<li>1 (9<abbr title="inch">in</abbr>) unbaked deep
dish pie crust</li>
<li> cup white sugar</li>
<!-- ... -->
</ul>
<h2>Directions</h2>
<!-- ... -->
</div>
RESPONSIVE DESIGN STUDIO

No JS, Basic CSS
RESPONSIVE DESIGN STUDIO

Widget Logic

Page

Split
the content &
make some
tabs

Yes

JS?

No
RESPONSIVE DESIGN STUDIO

On DOM Ready
<h1>Pumpkin Pie</h1>
<div class="tabbed-interface TabInterface-enabled">
<section>
<h2>Overview</h2>
<img src="pie.jpg" alt="">
<p>Whether you're hosting a festive party or a casual
get-together with friends, our Pumpkin Pie will make
entertaining easy!</p>
<!-- ... -->
</section>
<!-- ... -->
<ul class="tabs">
<li><a href="#">Overview</a></li>
<li><a href="#">Ingredients</a></li>
<li><a href="#">Directions</a></li>
<li><a href="#">Nutrition</a></li>
</ul>
</div>
RESPONSIVE DESIGN STUDIO

Cleaner Approach
<h1>Pumpkin Pie</h1>
<div class="tabbed-interface" data-tab-threshold="800">
<h2>Overview</h2>
<img src="pie.jpg" alt="" />
<p>Whether you're hosting a festive party or a casual
get-together with friends, our Pumpkin Pie will make
entertaining easy!</p>
<!-- ... -->
<h2>Ingredients</h2>
<ul>
<li>1 (9<abbr title="inch">in</abbr>) unbaked deep
dish pie crust</li>
<li> cup white sugar</li>
<!-- ... -->
</ul>
<h2>Directions</h2>
<!-- ... -->
</div>
RESPONSIVE DESIGN STUDIO

Adaptive Widget Logic
Split
the content &
make some
tabs

Page

LIVE
Yes

No

Yes

JS?

No

Untab (if
tabbed)
RESPONSIVE DESIGN STUDIO

Adding ARIA

role="tablist"

208
RESPONSIVE DESIGN STUDIO

Adding ARIA

role="tab"
aria-selected="true"
aria-controls="folder-1"
RESPONSIVE DESIGN STUDIO

Adding ARIA

role="tab"
aria-selected="false"
aria-controls="folder-4"
RESPONSIVE DESIGN STUDIO

Adding ARIA

role="tabpanel"
aria-hidden="false"
aria-labelledby="folder-1-tab"
RESPONSIVE DESIGN STUDIO

Adding ARIA

role="application"
aria-activedescendant="folder-1"
RESPONSIVE DESIGN STUDIO

Result!

More Related Content

PDF
ID14 – my 2014 observations in interactive design
PPTX
What is UX (and why should you care?)
PDF
Good UX Bad UX
PDF
UX Design: An Introduction
PDF
ProductTank: What do UX people want from PMs and how can they best work toget...
PPTX
UX design. What, how and why.
PDF
Are you riding the UX Strategy wave to maturity?
PDF
User Experience Design: The Past, The Present, The Future
ID14 – my 2014 observations in interactive design
What is UX (and why should you care?)
Good UX Bad UX
UX Design: An Introduction
ProductTank: What do UX people want from PMs and how can they best work toget...
UX design. What, how and why.
Are you riding the UX Strategy wave to maturity?
User Experience Design: The Past, The Present, The Future

What's hot (20)

PDF
UX Cambridge 2017- Three Steps Workshop
PDF
What is UX?
PDF
Ocean user experience-swtokyo
PDF
Dynamic Design (magazine/issue 1/fall 2015)
PDF
Why User Experience Matters
PPTX
Lean ux principles
PDF
The Value of User Experience (from Web 2.0 Expo Berlin 2008)
PDF
Ux sofia 2015 five questions
PDF
Website Usability & User Experience: Veel bezoekers, weinig klanten?
PDF
Facilitating Complexity: A Pervert's Guide to Exploration
PDF
UX Insights from a Drunk Guy
PDF
What I've Learned about UX Design
PDF
UX Capabilities Presentation
PDF
What is UX?
PDF
Introduction to Lean Startup & Lean User Experience Design
PDF
Push conference 2018 key takeaways
PDF
Design for developers
PDF
A Walk Through of User Experience and User Interface
PDF
10 spaces-ux capabilities-presentation
PDF
UX Strategy - the secret sauce that defines the pixie dust
UX Cambridge 2017- Three Steps Workshop
What is UX?
Ocean user experience-swtokyo
Dynamic Design (magazine/issue 1/fall 2015)
Why User Experience Matters
Lean ux principles
The Value of User Experience (from Web 2.0 Expo Berlin 2008)
Ux sofia 2015 five questions
Website Usability & User Experience: Veel bezoekers, weinig klanten?
Facilitating Complexity: A Pervert's Guide to Exploration
UX Insights from a Drunk Guy
What I've Learned about UX Design
UX Capabilities Presentation
What is UX?
Introduction to Lean Startup & Lean User Experience Design
Push conference 2018 key takeaways
Design for developers
A Walk Through of User Experience and User Interface
10 spaces-ux capabilities-presentation
UX Strategy - the secret sauce that defines the pixie dust
Ad

Similar to Responsive Design Studio [Mountain View 2013] (20)

PPTX
Guidelines for Responsive UX Design 03/23/2019
PPTX
Responsive Web Design, UX Considerations @ Digital Shoreditch Festival
PDF
Guidelines for Responsive UX Design 11/16/19
PDF
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
PDF
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
PDF
Guidelines for Responsive UX Design 07/20/19
PDF
BBDO Whitepaper—Responsive & Adaptive Design
PDF
Responsive & Adaptive Design: Delivering Websites That Delight Your Users
PPTX
Getting Down & Dirty with Responsive Web Design
PDF
#1NLab14: Responsive Design
PPTX
Guidelines for Responsive UX Design 07/07/2018
PPTX
Guidelines for Responsive UX Design 11/15/2018
PDF
Responsive & Adaprove Design
PDF
Guidelines for Responsive UX Design 12/12/20
PPTX
Responsive Web Design Workshop, Frankfurt Bookfair 2013
PDF
Customized Content for the Mobile Web
PPTX
Responsive Web Design at UCR
PDF
Responsive web design
PPTX
MoDevGov 2014 - Sustainable Solutions for Content and Function Parity Across ...
PDF
UX design for every screen
Guidelines for Responsive UX Design 03/23/2019
Responsive Web Design, UX Considerations @ Digital Shoreditch Festival
Guidelines for Responsive UX Design 11/16/19
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
Guidelines for Responsive UX Design 07/20/19
BBDO Whitepaper—Responsive & Adaptive Design
Responsive & Adaptive Design: Delivering Websites That Delight Your Users
Getting Down & Dirty with Responsive Web Design
#1NLab14: Responsive Design
Guidelines for Responsive UX Design 07/07/2018
Guidelines for Responsive UX Design 11/15/2018
Responsive & Adaprove Design
Guidelines for Responsive UX Design 12/12/20
Responsive Web Design Workshop, Frankfurt Bookfair 2013
Customized Content for the Mobile Web
Responsive Web Design at UCR
Responsive web design
MoDevGov 2014 - Sustainable Solutions for Content and Function Parity Across ...
UX design for every screen
Ad

More from Aaron Gustafson (20)

PDF
Delivering Critical Information and Services [JavaScript & Friends 2021]
PDF
Adapting to Reality [Guest Lecture, March 2021]
PDF
Designing the Conversation [Beyond Tellerrand 2019]
PPTX
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
PDF
Progressive Web Apps: Where Do I Begin?
PDF
Media in the Age of PWAs [ImageCon 2019]
PDF
Adapting to Reality [Starbucks Lunch & Learn]
PDF
Conversational Semantics for the Web [CascadiaJS 2018]
PDF
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PDF
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PDF
Designing the Conversation [Concatenate 2018]
PDF
Designing the Conversation [Accessibility DC 2018]
PDF
Performance as User Experience [AEADC 2018]
PDF
The Web Should Just Work for Everyone
PDF
Performance as User Experience [AEA SEA 2018]
PDF
Performance as User Experience [An Event Apart Denver 2017]
PDF
Advanced Design Methods 1, Day 2
PDF
Advanced Design Methods 1, Day 1
PDF
Designing the Conversation [Paris Web 2017]
PDF
Exploring Adaptive Interfaces [Generate 2017]
Delivering Critical Information and Services [JavaScript & Friends 2021]
Adapting to Reality [Guest Lecture, March 2021]
Designing the Conversation [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Progressive Web Apps: Where Do I Begin?
Media in the Age of PWAs [ImageCon 2019]
Adapting to Reality [Starbucks Lunch & Learn]
Conversational Semantics for the Web [CascadiaJS 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]
Designing the Conversation [Concatenate 2018]
Designing the Conversation [Accessibility DC 2018]
Performance as User Experience [AEADC 2018]
The Web Should Just Work for Everyone
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [An Event Apart Denver 2017]
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 1
Designing the Conversation [Paris Web 2017]
Exploring Adaptive Interfaces [Generate 2017]

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Machine learning based COVID-19 study performance prediction
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Dropbox Q2 2025 Financial Results & Investor Presentation
Review of recent advances in non-invasive hemoglobin estimation
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
NewMind AI Monthly Chronicles - July 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Machine learning based COVID-19 study performance prediction
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Responsive Design Studio [Mountain View 2013]