@hearsparkbox @brworkshop
@bencallahan @drewtclemens
Friday, November 8, 13
Slide 4
Slide 4 text
#artifactconf
#brworkshop
Friday, November 8, 13
Slide 5
Slide 5 text
Internets:
?
?
Friday, November 8, 13
Slide 6
Slide 6 text
Please, turn off Dropbox sync.
Friday, November 8, 13
Slide 7
Slide 7 text
And, stop streaming
Game of Thrones.
Friday, November 8, 13
Slide 8
Slide 8 text
Friday, November 8, 13
Slide 9
Slide 9 text
Collaborative note-taking:
http://bit.ly/1hgBSEv
Friday, November 8, 13
Slide 10
Slide 10 text
About Us
Friday, November 8, 13
Slide 11
Slide 11 text
About You
Friday, November 8, 13
Slide 12
Slide 12 text
AN INTRODUCTION TO RESPONSIVE WEB DESIGN
RWD 101
Friday, November 8, 13
Slide 13
Slide 13 text
September 9, 2007
6:30am
Friday, November 8, 13
Slide 14
Slide 14 text
177%
increase in tablet
ownership since last year
In the US...
http://bit.ly/YFW4Ai
Friday, November 8, 13
Slide 15
Slide 15 text
80%
of consumers multi-task
with other devices while
watching TV
In the US...
http://bit.ly/YFW4Ai
Friday, November 8, 13
Slide 16
Slide 16 text
26%
of consumers own a
laptop, tablet &
smartphone
http://bit.ly/YFW4Ai
In the US...
Friday, November 8, 13
Slide 17
Slide 17 text
The web is not fixed width
Friday, November 8, 13
Slide 18
Slide 18 text
The penetration of
desktop & laptop
ownership is the same
today as it was in 2007.
http://bit.ly/zE1zgp
In the US...
Friday, November 8, 13
Slide 19
Slide 19 text
Mobile vs Desktop Browsing
0
500
1000
1500
2000
2007 2008 2009 2010 2011 2012 2013 2014 2015
Mobile Users Desktop Users
http://bit.ly/L5cqiO
Friday, November 8, 13
Slide 20
Slide 20 text
Not that far away
0
500
1000
1500
2000
2007 2008 2009 2010 2011 2012 2013 2014 2015
Mobile Users Desktop Users
http://bit.ly/L5cqiO
Friday, November 8, 13
Slide 21
Slide 21 text
Q1 2013
conversions on tablets
surpassed conversions on
traditional desktops
http://bit.ly/sNpLte
In the US...
Friday, November 8, 13
Slide 22
Slide 22 text
Flexibility is the new norm
Friday, November 8, 13
Slide 23
Slide 23 text
People are trying to
browse your sites on these
devices, today
Friday, November 8, 13
Slide 24
Slide 24 text
Responsive web design
Friday, November 8, 13
Slide 25
Slide 25 text
Ethan Marcotte
Article on ALA
(http://bit.ly/Wi0xvw)
Book via ABA
(http://bit.ly/f6TPB7)
Friday, November 8, 13
Slide 26
Slide 26 text
Friday, November 8, 13
Slide 27
Slide 27 text
RWD 101
‣ Three Core Techniques
- A Fluid Foundation
- Flexible Content
- Media Queries
Friday, November 8, 13
Slide 28
Slide 28 text
A Fluid Foundation
Honor the proportions of
the design by creating
percentage-based layout
instead of fixed-width,
pixel-based layout.
Friday, November 8, 13
Slide 29
Slide 29 text
A Fluid Foundation
Browser Window
1000px
600px 400px
Friday, November 8, 13
Slide 30
Slide 30 text
Browser Window
A Fluid Foundation
1000px
600px 400px
Friday, November 8, 13
Slide 31
Slide 31 text
A Fluid Foundation
Browser Window
100%
60% 40%
Friday, November 8, 13
Slide 32
Slide 32 text
A Fluid Foundation
Browser Window
100%
60% 40%
Friday, November 8, 13
Slide 33
Slide 33 text
Flexible Content
Once we have a layout
which is based on
proportions, the content
must also respond.
Friday, November 8, 13
Slide 34
Slide 34 text
Browser Window
We the People of the United States, in Order
to form a more perfect Union, establish
Justice, insure domestic Tranquility, provide
for the common defence, promote the general
Welfare, and secure the Blessings of Liberty to
ourselves and our Posterity, do ordain and
establish this Constitution for the United
States of America.
Flexible Content
Friday, November 8, 13
Slide 35
Slide 35 text
Browser Window
We the People of
the United States, in
Order to form a
more perfect Union,
establish Justice,
insure domestic
Tranquility, provide
for the common
defence, promote
the general Welfare,
and secure the
Blessings of Liberty
to ourselves and
Flexible Content
Friday, November 8, 13
Slide 36
Slide 36 text
Browser Window
We the People of the United States, in Order
to form a more perfect Union, establish
Justice, insure domestic Tranquility, provide
for the common defence, promote the general
Flexible Content
(Image)
600px
Friday, November 8, 13
Slide 37
Slide 37 text
Browser Window
We the People of
the United States, in
Order to form a
Flexible Content
(Image)
600px
Friday, November 8, 13
Slide 38
Slide 38 text
Browser Window
We the People of
the United States, in
Order to form a
Flexible Content
(Image)
600px
http://bit.ly/ZdC8pH
Friday, November 8, 13
Slide 39
Slide 39 text
Browser Window
We the People of
the United States, in
Order to form a
more perfect Union,
establish Justice,
insure domestic
Tranquility, provide
for the common
Flexible Content
(Image)
100%
Friday, November 8, 13
Slide 40
Slide 40 text
Media Queries
When our content and our
design are no longer
working in harmony, we
need to make a larger shift
in layout.
Friday, November 8, 13
Slide 41
Slide 41 text
Browser Window
100%
60% 40%
Media Queries
Friday, November 8, 13
Slide 42
Slide 42 text
Browser Window
A
100%
B
100%
C
100%
Media Queries
Browser Window
A
100%
B
60%
C
40%
Friday, November 8, 13
Slide 43
Slide 43 text
Browser Window
A
100%
B
60%
C
40%
Media Queries
Browser Window
A
100%
B
100%
C
100%
Friday, November 8, 13
Slide 44
Slide 44 text
[live examples]
Friday, November 8, 13
Slide 45
Slide 45 text
RWD 101
‣ Three Core Techniques
- A Fluid Foundation
- Flexible Content
- Media Queries
Friday, November 8, 13
Slide 46
Slide 46 text
[code example]
Friday, November 8, 13
Slide 47
Slide 47 text
DISSECTING DESIGN
RWD WORKFLOW
Friday, November 8, 13
Slide 48
Slide 48 text
We used to pretend like
things were pretty simple.
Friday, November 8, 13
Slide 49
Slide 49 text
1024ish
768ish
fixed width
Friday, November 8, 13
Slide 50
Slide 50 text
DESIGN FRONT-END BACK-END LAUNCH!
Linear Workflow
Friday, November 8, 13
Slide 51
Slide 51 text
DESIGN FRONT-END BACK-END LAUNCH!
THINK ABOUT
USERS
Linear Workflow
Friday, November 8, 13
Slide 52
Slide 52 text
DESIGN FRONT-END BACK-END LAUNCH!
Linear Workflow
THINK ABOUT
USERS
THROW IN
SOME CONTENT
Friday, November 8, 13
Slide 53
Slide 53 text
Slightly Better
Linear Workflow
CONTENT UX DESIGN FRONT-END BACK-END LAUNCH!
Friday, November 8, 13
Slide 54
Slide 54 text
Why hello,
RWD.
Friday, November 8, 13
Slide 55
Slide 55 text
Why hello,
tiny browsers.
Friday, November 8, 13
Slide 56
Slide 56 text
Why hello,
reality.
Friday, November 8, 13
Slide 57
Slide 57 text
THIS IS AWESOME,
LET’S JUMP IN!
Friday, November 8, 13
Slide 58
Slide 58 text
Linear Workflow
Now with
RWD!
CONTENT UX DESIGN FRONT-END BACK-END LAUNCH!
Friday, November 8, 13
Slide 59
Slide 59 text
Ditto!
Now with
RWD!
Linear Workflow
CONTENT UX DESIGN FRONT-END BACK-END LAUNCH!
Me too!
Friday, November 8, 13
Slide 60
Slide 60 text
This doesn’t work.
Friday, November 8, 13
Slide 61
Slide 61 text
We need to invite others
into the process.
Friday, November 8, 13
CONTENT UX
FRONT-END
DESIGN
BACK-END
“Almost no one who makes websites works
in their company or organization’s web
division. That’s because almost no
company or organization has a web
division. And that void on the org chart is
one reason we have so many bloated,
unusable failures where we should be
producing great user experiences.”
@zeldman, 2007
Friday, November 8, 13
LAUNCH
DESIGN
FRONT
END
BACK
END
CONTENT
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
CONTENT UX
FRONT-END
DESIGN
BACK-END
Friday, November 8, 13
Slide 68
Slide 68 text
LAUNCH
DESIGN
FRONT
END
BACK
END
CONTENT
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
CONTENT UX
FRONT-END
DESIGN
BACK-END
UX
FRONT-END
DESIGN
LAUNCH
DESIGN
FRONT
END
BACK
END
CONTENT
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
Friday, November 8, 13
Slide 69
Slide 69 text
ND
DESIGN
So, how do
we advance
design through
a “1 deliverable”
workflow?
Friday, November 8, 13
Slide 70
Slide 70 text
Dissecting Design
PRODUCTIVITY
TIME
Friday, November 8, 13
Slide 71
Slide 71 text
Dissecting Design
PRODUCTIVITY
TIME
Friday, November 8, 13
Slide 72
Slide 72 text
Dissecting Design
PRODUCTIVITY
TIME
Friday, November 8, 13
Slide 73
Slide 73 text
Establish the Aesthetic
DISSECTING DESIGN
Friday, November 8, 13
Slide 74
Slide 74 text
Solve the Problem
DISSECTING DESIGN
Friday, November 8, 13
Slide 75
Slide 75 text
Refine the Solution
DISSECTING DESIGN
Friday, November 8, 13
Slide 76
Slide 76 text
Friday, November 8, 13
Slide 77
Slide 77 text
Establish the Aesthetic
DISSECTING DESIGN
Friday, November 8, 13
Slide 78
Slide 78 text
DISSECTING DESIGN
‣ Style Comparisons
‣ Style Tiles
‣ Style Prototypes
Establish the Aesthetic
Friday, November 8, 13
Slide 79
Slide 79 text
Style Comparisons
ESTABLISH THE AESTHETIC
“I could create an illustration or a 3D
rendering of what I want my new office to
look like, but that doesn’t take advantage
of his great ideas. It’s dictation, not
collaboration. Instead, I show him a
Pinterest board my wife and I created.”
@danielmall
http://danielmall.com/articles/the-post-psd-era/
Friday, November 8, 13
Slide 80
Slide 80 text
Style Comparisons
ESTABLISH THE AESTHETIC
Light vs Dark
Friday, November 8, 13
Slide 81
Slide 81 text
Style Comparisons
ESTABLISH THE AESTHETIC
Flat vs Textured
Friday, November 8, 13
Slide 82
Slide 82 text
Style Comparisons
ESTABLISH THE AESTHETIC
Illustration vs Photography
Friday, November 8, 13
Slide 83
Slide 83 text
Style Tiles
ESTABLISH THE AESTHETIC
Friday, November 8, 13
Slide 84
Slide 84 text
Style Tiles
ESTABLISH THE AESTHETIC
Friday, November 8, 13
Slide 85
Slide 85 text
Style Tiles
ESTABLISH THE AESTHETIC
Friday, November 8, 13
Slide 86
Slide 86 text
Style Prototypes
ESTABLISH THE AESTHETIC
Friday, November 8, 13
Slide 87
Slide 87 text
USE TOOLS YOU ARE
COMFORTABLE WITH
TO ESTABLISH THE
AESTHETIC
HOW TO DECIDE
Friday, November 8, 13
Slide 88
Slide 88 text
Cool, so what
happens next?
Friday, November 8, 13
Slide 89
Slide 89 text
Solve the Problem
DISSECTING DESIGN
Friday, November 8, 13
Slide 90
Slide 90 text
DISSECTING DESIGN
‣ Static Design Tools
‣ Responsive Design Tools
‣ HTML/CSS
Solve the Problem
Friday, November 8, 13
Slide 91
Slide 91 text
Static Design Tools
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 92
Slide 92 text
Static Design Tools
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 93
Slide 93 text
Static Design Tools
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 94
Slide 94 text
Responsive Design Tools
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 95
Slide 95 text
SOLVE THE PROBLEM
Responsive Design Tools
Friday, November 8, 13
Slide 96
Slide 96 text
SOLVE THE PROBLEM
Responsive Design Tools
Friday, November 8, 13
Slide 97
Slide 97 text
HTML/CSS
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 98
Slide 98 text
HTML/CSS
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 99
Slide 99 text
HTML/CSS
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 100
Slide 100 text
Layout vs Modules
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 101
Slide 101 text
Layout vs Modules
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 102
Slide 102 text
Layout vs Modules
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 103
Slide 103 text
YOU BEST SOLVE
PROBLEMS USING
TOOLS YOU ARE
FLUENT WITH
HOW TO DECIDE
Friday, November 8, 13
Slide 104
Slide 104 text
Refine the Solution
DISSECTING DESIGN
Friday, November 8, 13
Slide 105
Slide 105 text
DISSECTING DESIGN
‣ Static Design Tools
‣ Design Pairing
Refine the Solution
Friday, November 8, 13
Slide 106
Slide 106 text
Don’t Use Static Design Tools
REFINE THE SOLUTION
LAUNCH
DESIGN
FRONT
END
BACK
END
CONTENT
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
DECISIONS
MADE
Friday, November 8, 13
Slide 107
Slide 107 text
Don’t Use Static Design Tools
REFINE THE SOLUTION
Friday, November 8, 13
Slide 108
Slide 108 text
Instead of static design
hand-offs, consider
design pairing
REFINE THE SOLUTION
Friday, November 8, 13
Slide 109
Slide 109 text
Design Pairing
REFINE THE SOLUTION
Friday, November 8, 13
Slide 110
Slide 110 text
Design Pairing
REFINE THE SOLUTION
Friday, November 8, 13
Slide 111
Slide 111 text
Design Pairing
REFINE THE SOLUTION
Friday, November 8, 13
Slide 112
Slide 112 text
Design Pairing
REFINE THE SOLUTION
Friday, November 8, 13
Slide 113
Slide 113 text
Friday, November 8, 13
Slide 114
Slide 114 text
You don’t want to do the long
tail more than once
REFINE THE SOLUTION
Friday, November 8, 13
Slide 115
Slide 115 text
The Switching Point
REFINE THE SOLUTION
Friday, November 8, 13
Slide 116
Slide 116 text
EFFICIENCY IS KEY
WHEN REFINING A
DESIGN SOLUTION
HOW TO DECIDE
Friday, November 8, 13
Slide 117
Slide 117 text
Establish
Solve
Refine
................. Comfort
....................... Fluency
................... Efficiency
Guidelines for Selecting Tools
Friday, November 8, 13
Slide 118
Slide 118 text
Establish
Solve
Refine
..... Style Prototype
......... Sketching + PSD
.... In-Browser Pairing
Tools we use at Sparkbox
Friday, November 8, 13
Slide 119
Slide 119 text
Photo Credit: Jay Maisel
Friday, November 8, 13
Slide 120
Slide 120 text
Photo Credit: Jay Maisel
Friday, November 8, 13
Slide 121
Slide 121 text
Photo Credit: Jay Maisel
Friday, November 8, 13
Slide 122
Slide 122 text
Group improvisation is a challenge.
Aside from the weighty technical
problem of collective coherent
thinking, there is the very human,
even social need for sympathy from
all members to bend for the
common result.
Bill Evans
Friday, November 8, 13
Slide 123
Slide 123 text
Group improvisation is a challenge.
Aside from the weighty technical
problem of collective coherent
thinking, there is the very human,
even social need for sympathy from
all members to bend for the
common result.
Bill Evans
Friday, November 8, 13
Slide 124
Slide 124 text
Group improvisation is a challenge.
Aside from the weighty technical
problem of collective coherent
thinking, there is the very human,
even social need for sympathy from
all members to bend for the
common result.
Bill Evans
Friday, November 8, 13
Slide 125
Slide 125 text
Group Improvisation
Friday, November 8, 13
Slide 126
Slide 126 text
Group improvisation requires
individuals on a team to...
be skilled
Friday, November 8, 13
Slide 127
Slide 127 text
Group improvisation requires
individuals on a team to...
be humble
Friday, November 8, 13
Slide 128
Slide 128 text
Group improvisation requires
individuals on a team to...
be empathetic
Friday, November 8, 13
Slide 129
Slide 129 text
Skill
Humility
Empathy
Friday, November 8, 13
Slide 130
Slide 130 text
Friday, November 8, 13
Slide 131
Slide 131 text
Friday, November 8, 13
Slide 132
Slide 132 text
Friday, November 8, 13
Slide 133
Slide 133 text
Friday, November 8, 13
Slide 134
Slide 134 text
Friday, November 8, 13
Slide 135
Slide 135 text
Create guidelines instead
of rigid process
Friday, November 8, 13
Slide 136
Slide 136 text
The amount of process
required is inversely
proportionate to the
skill and experience of
your team.
Friday, November 8, 13
Slide 137
Slide 137 text
Create the perfect, fully-
documented, all-encompassing web
design and development process.
Or...
Friday, November 8, 13
Slide 138
Slide 138 text
Chill out and develop our people.
Friday, November 8, 13
Slide 139
Slide 139 text
Invest in people
over process
Friday, November 8, 13
Slide 140
Slide 140 text
Discussion
‣ What happens next in this
process?
‣ How are you handling RWD
deliverables now?
‣ What are you struggling with?
Friday, November 8, 13
Slide 141
Slide 141 text
CODE AND PROJECT STRUCTURE
SERVING
RWD STYLES
Friday, November 8, 13
Slide 142
Slide 142 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
Friday, November 8, 13
Slide 143
Slide 143 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
CSS PREPROCESSING FTW!
Friday, November 8, 13
Slide 144
Slide 144 text
Before any of this stuff will
work, you need to do this:
Friday, November 8, 13
Slide 145
Slide 145 text
And, you should
also do this:
/* CSS */
@-webkit-viewport { width:device-width; }
@-moz-viewport { width:device-width; }
@-ms-viewport { width:device-width; }
@-o-viewport { width:device-width; }
@viewport { width:device-width; }
Friday, November 8, 13
Slide 146
Slide 146 text
The Example
100%
50% 30%
Friday, November 8, 13
Slide 147
Slide 147 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
Friday, November 8, 13
Slide 148
Slide 148 text
Single CSS File
HTML
CSS
Start with styles applied
to all
Styles scoped to a
media query
Styles scoped to another
media query
Friday, November 8, 13
Slide 149
Slide 149 text
/* styles.css */
aside { color: #333; width: 100%; }
Single CSS File
Friday, November 8, 13
Slide 150
Slide 150 text
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
Single CSS File
Friday, November 8, 13
Slide 151
Slide 151 text
PAUSE:
MEDIA QUERIES
Friday, November 8, 13
Slide 152
Slide 152 text
Slide 153
Slide 153 text
Slide 154
Slide 154 text
Media Types
all
braille, embossed, speech
handheld, projection, screen, tv
print
tty
http://www.w3.org/TR/CSS21/media.html#media-types
Friday, November 8, 13
Slide 155
Slide 155 text
Slide 156
Slide 156 text
Media Features
width, height
device-width, device-height
orientation
aspect-ratio, device-aspect-ratio
color, color-index, monochrome
resolution, scan, grid
http://www.w3.org/TR/css3-mediaqueries
Friday, November 8, 13
Slide 157
Slide 157 text
Single CSS File
HTML
CSS
Start with styles applied
to all
Styles scoped to a
media query
Styles scoped to another
media query
Friday, November 8, 13
Slide 158
Slide 158 text
Small Viewport Width First
HTML
CSS
Smallest styles
Wider styles (mq)
Even wider styles (mq)
Super wide styles (mq)
Friday, November 8, 13
Slide 159
Slide 159 text
Large Viewport Width First
HTML
CSS
Widest styles
Wide styles (mq)
Narrow styles (mq)
Very narrow styles (mq)
Friday, November 8, 13
Slide 160
Slide 160 text
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
Single CSS File
Friday, November 8, 13
Slide 161
Slide 161 text
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
@media (min-width: 40em) {
aside { width: 50%; }
}
Single CSS File
Friday, November 8, 13
Slide 162
Slide 162 text
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
@media (min-width: 40em) {
aside { width: 50%; }
}
Single CSS File
Friday, November 8, 13
Slide 163
Slide 163 text
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
@media (min-width: 40em) {
aside { width: 50%; }
}
/* if the viewport width is 60em or greater */
@media (min-width: 60em) {
aside { width: 30%; }
}
Single CSS File
Friday, November 8, 13
Slide 164
Slide 164 text
Single CSS File
/* styles.css */
aside { color: #333; width: 100%; }
/* if the viewport width is 40em or greater */
@media (min-width: 40em) {
aside { width: 50%; }
}
/* if the viewport width is 60em or greater */
@media (min-width: 60em) {
aside { width: 30%; }
}
Small Viewport
Width First
Friday, November 8, 13
Slide 165
Slide 165 text
/* styles.css */
aside { color: #333; width: 30%; }
/* if the viewport width is 60em or less */
@media (max-width: 60em) {
aside { width: 50%; }
}
/* if the viewport width is 40em or less */
@media (max-width: 40em) {
aside { width: 100%; }
}
Single CSS File
Large Viewport
Width First
Friday, November 8, 13
Slide 166
Slide 166 text
SERVING RWD STYLES
Single CSS File
‣ Simple to implement
‣ Single request
‣ Doesn’t require a preprocessor
‣ Requires JS to serve large layout to
old IE if starting with small layouts
‣ Large sites can be difficult to
maintain because of the size of
the single file
Friday, November 8, 13
Slide 167
Slide 167 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
Friday, November 8, 13
Slide 168
Slide 168 text
Multiple CSS Files
HTML
If this browser is less than IE9...
and it’s not IE Mobile...
and viewport width is at least 40em...
global.css
all styles
linear layout
layout.css
only styles for layout
http://adactio.com/journal/4494/
Friday, November 8, 13
Slide 169
Slide 169 text
Multiple CSS Files
index.html
Friday, November 8, 13
Slide 170
Slide 170 text
Multiple CSS Files
index.html
Friday, November 8, 13
Slide 171
Slide 171 text
Multiple CSS Files
index.html
Friday, November 8, 13
Slide 172
Slide 172 text
Multiple CSS Files
index.html
Friday, November 8, 13
Slide 173
Slide 173 text
Multiple CSS Files
index.html
Friday, November 8, 13
SERVING RWD STYLES
Multiple CSS Files
‣ Doesn’t require a preprocessor
‣ At least two requests
‣ Requires you to separate layout from
other styles
‣ Allows you to start with small layouts
and serve a single large layout to old
IE without JS
- Requests go up if you use multiple MQs
Friday, November 8, 13
Slide 177
Slide 177 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
Friday, November 8, 13
Slide 178
Slide 178 text
Breakpoint Based Partials
HTML
If this browser is less than IE9...
and it’s not IE Mobile...
base.css
all styles/MQ blocks
no-mq.css
MQ styles from base
without the MQs
http://nicolasgallagher.com/mobile-first-css-sass-and-ie/
Friday, November 8, 13
Slide 179
Slide 179 text
Breakpoint Based Partials
index.html
Friday, November 8, 13
styles.scss styles.css
We write SASS
(or LESS, Stylus, etc.)
Browser gets CSS
(like it always has)
PREPROCESSING
What is CSS Preprocessing?
Friday, November 8, 13
Slide 190
Slide 190 text
The Big Three:
LESS, SASS, and Stylus
Friday, November 8, 13
Slide 191
Slide 191 text
LESS
‣ Runs on Node.js
‣ Very similar syntax to SASS
‣ http://lesscss.org/
Friday, November 8, 13
Slide 192
Slide 192 text
Variables are
specified with @
symbol
/* .less */
@top-variable: 20px;
! #header-shadow {
! position: absolute;
! ! top: @top-variable;
! }
LESS syntax
Friday, November 8, 13
Slide 193
Slide 193 text
Stylus
‣ Runs on Node.js
‣ Has a flexible syntax
- You can omit semi-colons, colons,
and braces
‣ http://learnboost.github.com/
stylus/
Friday, November 8, 13
Slide 194
Slide 194 text
/* .styl */
top-variable = 20px
!
#main-header
! position absolute
! ! top top-variable
#footer {
! background: blue
! ! border 1px solid #00f;
}
Notice the terse,
forgiving syntax.
Stylus Syntax
Friday, November 8, 13
Slide 195
Slide 195 text
SASS
‣ Runs on Ruby
‣ Has two syntax flavors
- .scss & .sass
‣ http://sass-lang.com/
Friday, November 8, 13
Mixins
‣ SASS and Stylus both support
basic programming like loops, if/
else, etc. in mixins.
‣ LESS only offers “guarded
mixins.”
- I hear this is better with the *new*
version...
Friday, November 8, 13
Slide 203
Slide 203 text
Sparkbox REM Mixin
Friday, November 8, 13
Slide 204
Slide 204 text
/*.scss*/
@include rem(padding, 0.5, 1, 4, 3);
@include rem(font-size, 1.2, large);
Sparkbox REM Mixin
Friday, November 8, 13
Slide 205
Slide 205 text
Compass & Bourbon
‣ Compass and Bourbon are mixin
libraries for SASS
‣ Takes care of vendor prefixes with
mixins
‣ Compass has an ecosystem of
plugins built on top of Compass
‣ With config.rb, Compass lets you
check the preprocessor config
into source control
Friday, November 8, 13
Slide 206
Slide 206 text
Compass & Bourbon
Friday, November 8, 13
Slide 207
Slide 207 text
Importing
‣ Allows you to break up your
styles across files
- variables, mixins, reset, all
separated
‣ Better than a standard css import
Friday, November 8, 13
Slide 208
Slide 208 text
this file will
compile to
base.css
/* base.scss */
@import "compass";
@import "variables";
@import "reset";
@import "mixins";
@import "header";
@import "hero";
@import "whatever";
Importing
Friday, November 8, 13
Slide 209
Slide 209 text
Google Chrome Developer
Tools & SASS
Friday, November 8, 13
Slide 210
Slide 210 text
Source Maps
‣ Using pre-processors does
present some new challenges.
‣ Line-numbers are no longer
representative of where the code
is.
Friday, November 8, 13
Slide 211
Slide 211 text
Source Maps
‣ Source maps let Chrome know the
source of the generated CSS.
Friday, November 8, 13
Slide 212
Slide 212 text
Setup Chrome for SASS
Source Maps Support
‣ head over to chrome://flags
- Enable Developer Tools
Experiments
Friday, November 8, 13
Slide 213
Slide 213 text
Setup Chrome for SASS
Source Maps Support
‣ Enable Support for SASS in the
Dev Tools options
Friday, November 8, 13
Slide 214
Slide 214 text
Setup Chrome for SASS
Source Maps Support
‣ Enable support for Source maps
Friday, November 8, 13
Slide 215
Slide 215 text
The last step is to
turn on debug
info in our CSS
/* config.rb */
sass_options = { :debug_info => true }
or
/* command line */
sass --watch -g scss/:css/
Setup Chrome for SASS
Source Maps Support
Friday, November 8, 13
Slide 216
Slide 216 text
CSS PREPROCESSORS
Resources
Codekit
http://incident57.com/codekit/
Friday, November 8, 13
Slide 217
Slide 217 text
CSS PREPROCESSORS
Resources
Scout
http://mhs.github.com/scout-app/
Friday, November 8, 13
Slide 218
Slide 218 text
CSS PREPROCESSORS
Resources
Compass
http://compass-style.org/
Friday, November 8, 13
Slide 219
Slide 219 text
CSS PREPROCESSORS
Resources
SASS Primer
http://thesassway.com/beginner/getting-
started-with-sass-and-compass
Friday, November 8, 13
SERVING RWD STYLES
Breakpoint Based Partials
‣ Allows you to start with small
layouts and serve large layout to
old IE without JS
‣ Only 1 or 2 requests
‣ Requires preprocessor
‣ Maintenance can be complex
Friday, November 8, 13
Slide 223
Slide 223 text
SERVING RWD STYLES
Major Approaches
‣ Single CSS File
‣ Multiple CSS Files
‣ Breakpoint Based Partials
‣ Module Based Partials
Friday, November 8, 13
Slide 224
Slide 224 text
HTML
If < IE9 and not IE Mobile
If >= IE9 or IE Mobile or not IE
Module Based Partials
no-mq.css
All styles with no MQs
mq.css
All styles with MQs
http://seesparkbox.com/foundry/
structuring_and_serving_styles_for_older_browsers
Friday, November 8, 13
Slide 225
Slide 225 text
Module Based Partials
index.html
Friday, November 8, 13
Slide 226
Slide 226 text
Module Based Partials
index.html
Friday, November 8, 13
Slide 227
Slide 227 text
Module Based Partials
index.html
Friday, November 8, 13
Slide 228
Slide 228 text
Module Based Partials
index.html
Friday, November 8, 13
Slide 229
Slide 229 text
Module Based Partials
index.html
Friday, November 8, 13
Slide 230
Slide 230 text
Module Based Partials
index.html
Friday, November 8, 13
https://github.com/sparkbox/SB-Media
Friday, November 8, 13
Slide 247
Slide 247 text
https://github.com/Team-Sass/
breakpoint
Friday, November 8, 13
Slide 248
Slide 248 text
SERVING RWD STYLES
Module Based Partials
‣ Single Request
‣ Easy Maintenance
‣ Allows you to start with small
layouts and serve large layout to
old IE without JS
‣ Requires Preprocessor
Friday, November 8, 13
Slide 249
Slide 249 text
This is so much
more natural.
Friday, November 8, 13
Slide 250
Slide 250 text
THERE IS NO
BREAKPOINT
Friday, November 8, 13
Slide 251
Slide 251 text
There is no Breakpoint
aside {
// general styles
// major shift at 40em
// major shift at 60em
...
}
aside {
// general styles
// major shift at 40em
// minor tweak at 42em
// minor tweak at 53.5em
// minor tweak at 56em
// major shift at 60em
// minor tweak at 72.2em
// minor tweak at 74em
...
}
Friday, November 8, 13
Slide 252
Slide 252 text
There is no Breakpoint
aside {
// general styles
// major shift at 40em
// major shift at 60em
...
}
aside {
// general styles
// major shift at 40em
// minor tweak at 42em
// minor tweak at 53.5em
// minor tweak at 56em
// major shift at 60em
// minor tweak at 72.2em
// minor tweak at 74em
...
}
Friday, November 8, 13
Slide 253
Slide 253 text
There is no Breakpoint
Media Query
Bookmarklet
(by @robtarr)
Friday, November 8, 13
Slide 254
Slide 254 text
There is no Breakpoint
Friday, November 8, 13
Slide 255
Slide 255 text
Relax.
Friday, November 8, 13
Slide 256
Slide 256 text
Think more modularly.
Try something like
SMACSS (from @snookca).
Friday, November 8, 13
Slide 257
Slide 257 text
Element Queries
http://www.xanthir.com/b4PR0
Friday, November 8, 13
Slide 258
Slide 258 text
Responsive Elements
https://github.com/kumailht/responsive-elements
Friday, November 8, 13
Slide 259
Slide 259 text
http://seesparkbox.com/foundry/there_is_no_breakpoint
There is no Breakpoint
http://www.markboulton.co.uk/journal/theinbetween
The In-Between
http://www.jordanm.co.uk/post/43147197731/the-in-between
The In-Between (2)
Friday, November 8, 13
Slide 260
Slide 260 text
Discussion
‣ How are you serving RWD styles
today?
‣ How do you “support” older IE?
Friday, November 8, 13
Slide 261
Slide 261 text
MAKING EVERYTHING FLUID
CREATING
FLEXIBILITY
Friday, November 8, 13
Slide 262
Slide 262 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 263
Slide 263 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 264
Slide 264 text
It starts with the grid
Friday, November 8, 13
Slide 265
Slide 265 text
body {
width: 1000px;
}
div.main {
width: 700px;
}
aside {
width: 280px;
}
It starts with the grid
body {
width: 100%;
}
div.main {
width: 70%;
}
aside {
width: 28%;
}
Friday, November 8, 13
Slide 266
Slide 266 text
body {
width: 1000px;
}
div.main {
width: 700px;
}
It starts with the grid
body {
width: 100%;
}
div.main {
width: 70%;
}
target / context = %
700 / 1000 = .7
.7 = 70%
Friday, November 8, 13
Slide 267
Slide 267 text
body {
width: 1000px;
}
aside {
width: 280px;
}
It starts with the grid
body {
width: 100%;
}
aside {
width: 28%;
}
target / context = %
280 / 1000 = .28
.28 = 28%
Friday, November 8, 13
Slide 268
Slide 268 text
Responsive grid systems
Friday, November 8, 13
Slide 269
Slide 269 text
CREATING FLEXIBILITY
RWD Grid Systems
‣ Foundation
‣ Bootstrap
‣ Skeleton
‣ Responsive.gs
‣ Columnal
‣ ...this list goes on, and on, and on
Friday, November 8, 13
Slide 270
Slide 270 text
CREATING FLEXIBILITY
Semantic RWD Grid Systems
‣ Semantic.gs
‣ Susy
‣ Zen Grids
Friday, November 8, 13
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 278
Slide 278 text
CREATING FLEXIBILITY
Responsive Layout Patterns
‣ Source order stacking
‣ Content choreography
‣ Off canvas
Friday, November 8, 13
Slide 279
Slide 279 text
CREATING FLEXIBILITY
Responsive Layout Patterns
‣ Source order stacking
‣ Content choreography
‣ Off canvas
Friday, November 8, 13
Slide 280
Slide 280 text
Friday, November 8, 13
Slide 281
Slide 281 text
CREATING FLEXIBILITY
Responsive Layout Patterns
‣ Source order stacking
‣ Content choreography
‣ Off canvas
Friday, November 8, 13
Slide 282
Slide 282 text
Friday, November 8, 13
Slide 283
Slide 283 text
Friday, November 8, 13
Slide 284
Slide 284 text
[AppendAround Demo]
Friday, November 8, 13
Slide 285
Slide 285 text
CREATING FLEXIBILITY
Responsive Layout Patterns
‣ Source order stacking
‣ Content choreography
‣ Off canvas
Friday, November 8, 13
Slide 286
Slide 286 text
Friday, November 8, 13
Slide 287
Slide 287 text
Friday, November 8, 13
Slide 288
Slide 288 text
Easiest to show
a few examples:
http://jasonweaver.name/lab/offcanvas/
http://disney.com/
http://www.lenovo.com/au/en/
Friday, November 8, 13
Slide 289
Slide 289 text
There are many, many
combinations of these
basic ideas
http://bit.ly/U4N5qH
(http://bradfrost.github.com/this-is-responsive/patterns.html)
Friday, November 8, 13
Slide 290
Slide 290 text
There are some really cool
new layout modules
coming...
Friday, November 8, 13
Slide 291
Slide 291 text
http://www.netmagazine.com/tutorials/
master-new-css-layout-properties
Friday, November 8, 13
Slide 292
Slide 292 text
http://www.fivesimplesteps.com/
products/css3-layout-modules
Friday, November 8, 13
Slide 293
Slide 293 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 294
Slide 294 text
Type flexes by default
Friday, November 8, 13
Slide 295
Slide 295 text
We need to
consider readability
Friday, November 8, 13
Slide 296
Slide 296 text
CREATING FLEXIBILITY
Responsive Typography
‣ Small screen != small font-size
‣ Consider contrast
‣ If text has links, give adequate
room to touch them
‣ Viewport-based type sizing
Friday, November 8, 13
Slide 297
Slide 297 text
CREATING FLEXIBILITY
Responsive Typography
‣ Small screen != small font-size
‣ Consider contrast
‣ If text has links, give adequate
room to touch them
‣ Viewport-based type sizing
Friday, November 8, 13
Slide 298
Slide 298 text
CREATING FLEXIBILITY
Responsive Typography
‣ Small screen != small font-size
‣ Consider contrast
‣ If text has links, give adequate
room to touch them
‣ Viewport-based type sizing
Friday, November 8, 13
Slide 299
Slide 299 text
@snookca
http://snook.ca/technical/colour_contrast/
colour.html
@leaverou
http://leaverou.github.com/contrast-ratio/
Friday, November 8, 13
Slide 300
Slide 300 text
CREATING FLEXIBILITY
Responsive Typography
‣ Small screen != small font-size
‣ Consider contrast
‣ If text has links, give adequate
room to touch them
‣ Viewport-based type sizing
Friday, November 8, 13
Slide 301
Slide 301 text
CREATING FLEXIBILITY
Responsive Typography
‣ Small screen != small font-size
‣ Consider contrast
‣ If text has links, give adequate
room to touch them
‣ Viewport-based type sizing
Friday, November 8, 13
Slide 302
Slide 302 text
vw & vh CSS Units
Friday, November 8, 13
Slide 303
Slide 303 text
JS Alternatives
Friday, November 8, 13
Slide 304
Slide 304 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
http://bit.ly/12TbTX4
(http://codepen.io/bencallahan/pen/CtLDb)
Friday, November 8, 13
Slide 307
Slide 307 text
The image problem(s)
Friday, November 8, 13
Slide 308
Slide 308 text
CREATING FLEXIBILITY
The image problem(s)
‣ Content
‣ Bandwidth
‣ Pixel density
Friday, November 8, 13
Slide 309
Slide 309 text
CREATING FLEXIBILITY
Image: Content
Friday, November 8, 13
Slide 310
Slide 310 text
CREATING FLEXIBILITY
Image: Content
Friday, November 8, 13
Slide 311
Slide 311 text
CREATING FLEXIBILITY
Image: Content
Friday, November 8, 13
Slide 312
Slide 312 text
CREATING FLEXIBILITY
Image: Content
Friday, November 8, 13
Slide 313
Slide 313 text
CREATING FLEXIBILITY
Image: Bandwidth
As of March of 2012, 86% of the sites on
mediaqueri.es demonstrated the same
weight and load time at resolutions from
300ish to 1200ish.
via @guypod
http://www.guypo.com/mobile/performance-implications-of-
responsive-design-book-contribution/
Friday, November 8, 13
Slide 314
Slide 314 text
CREATING FLEXIBILITY
Image: Bandwidth
Responsive & Responsible
via @scotjehl
https://speakerdeck.com/scottjehl/responsive-responsible
http://www.lukew.com/ff/entry.asp?1565
Friday, November 8, 13
Slide 315
Slide 315 text
CREATING FLEXIBILITY
Image: Pixel Density
Most new mobile devices have high
pixel density displays:
Apple iPhone 4+: 326 PPI
Amazon Kindle Fire HD 8.9: 254 PPI
Nokia Lumia 920: 332 PPI
BlackBerry Z10: 356 PPI
Samsung Galaxy Note: 285 PPI
Friday, November 8, 13
Slide 316
Slide 316 text
CREATING FLEXIBILITY
The image problem(s)
‣ Content
‣ Bandwidth
‣ Pixel density
Friday, November 8, 13
Slide 317
Slide 317 text
CREATING FLEXIBILITY
The image solution(s)
‣ SVG
‣ Icon fonts
‣ Pixel-density media queries
‣ Compressive
‣ Picturefill
‣ User preference
Friday, November 8, 13
Slide 318
Slide 318 text
SVG (Scalable Vector
Graphics)
‣ Allows the image to be resolution
independent.
‣ Support isn’t very good for older
browsers.
‣ We can use Modernizr to detect if
the browser supports SVG and
provide a .png fallback for those
that do not.
Friday, November 8, 13
Slide 319
Slide 319 text
@dbushell wrote a great primer for SVG
Friday, November 8, 13
Slide 320
Slide 320 text
Icon Fonts
‣ Fonts by default are resolution
independent, Icon fonts are no
different.
‣ http://icomoon.io/app/ allows
you to create your own icon fonts
‣ They do require a bit more
markup, and JS for IE 7 and lower.
Friday, November 8, 13
Slide 321
Slide 321 text
Search
Icon Font Markup
/*.scss*/
[data-icon]:before {
content: attr(data-icon);
font-family: 'icon-font-family';
speak: none;
}
Friday, November 8, 13
Slide 322
Slide 322 text
“Compressive” Images
‣ http://bit.ly/Sygdey
‣ Increase the image dimensions
‣ Add massive compression
‣ Scale the image in the browser
Friday, November 8, 13
Slide 323
Slide 323 text
Pixel Density MQs
‣ Detect the pixel ratio of the
device and serve a second,
higher-res image.
‣ Retina devices now have to make
an additional request for the
retina asset.
Friday, November 8, 13
Slide 324
Slide 324 text
/*.scss*/
@media only all and
(-webkit-min-device-pixel-ratio: 1.5) {
.logo {
background-image: url(/i/logo-2x.png);
background-size: 100%;
}
}
Pixel Density MQs
Also need other
browser prefixes
Friday, November 8, 13
User Preference
‣ Allow the user to choose what
experience they would like to
have on their device: “HD” or
“SD”.
Friday, November 8, 13
Slide 330
Slide 330 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 331
Slide 331 text
RWD Table Patterns
[demo]
Friday, November 8, 13
Slide 332
Slide 332 text
CREATING FLEXIBILITY
What Needs to Flex
‣ Grids
‣ Layout
‣ Typography
‣ Images
‣ Tables
‣ Video
Friday, November 8, 13
Slide 333
Slide 333 text
CREATING FLEXIBILITY
Video
Friday, November 8, 13
Slide 334
Slide 334 text
CREATING FLEXIBILITY
Intrinsic Ratios
http://codepen.io/bencallahan/pen/KICkl
Friday, November 8, 13
Slide 335
Slide 335 text
CREATING FLEXIBILITY
Video
Friday, November 8, 13
Slide 336
Slide 336 text
Creating
flexibility requires
experimentation
Friday, November 8, 13
Slide 337
Slide 337 text
Creating
flexibility requires
Friday, November 8, 13
Slide 338
Slide 338 text
Discussion
‣ What content types have we not
addressed?
‣ What specific challenges are you
facing in creating flexibility?
Friday, November 8, 13
Slide 339
Slide 339 text
UNIQUE CONSIDERATIONS AND CHALLENGES
NAVIGATION
AND RWD
Friday, November 8, 13
Slide 340
Slide 340 text
NAVIGATION AND RWD
Major Issues
‣ Site Depth and Breadth
‣ Screen Real Estate
‣ Cross-width Consistency
‣ Design Patterns
Friday, November 8, 13
Slide 341
Slide 341 text
NAVIGATION AND RWD
Major Issues
‣ Site Depth and Breadth
‣ Screen Real Estate
‣ Cross-width Consistency
‣ Design Patterns
Friday, November 8, 13
Slide 342
Slide 342 text
Small sites often allow
simpler solutions.
Friday, November 8, 13
Slide 343
Slide 343 text
Simple Nav Examples
‣ Simple Row
‣ Jump to Content
‣ Jump to Footer
‣ Top Stacked Off Canvas
Friday, November 8, 13
Slide 344
Slide 344 text
Simple Nav Examples
‣ Simple Row
‣ Jump to Content
‣ Jump to Footer
‣ Top Stacked
Off Canvas
http://seesparkbox.com
Friday, November 8, 13
Slide 345
Slide 345 text
Simple Nav Examples
‣ Simple Row
‣ Jump to Content
‣ Jump to Footer
‣ Top Stacked
Off Canvas
http://forgeideas.com
Friday, November 8, 13
Slide 346
Slide 346 text
Simple Nav Examples
‣ Simple Row
‣ Jump to Content
‣ Jump to Footer
‣ Top Stacked
Off Canvas
http://contentsmagazine.com
Friday, November 8, 13
Slide 347
Slide 347 text
Simple Nav Examples
‣ Simple Row
‣ Jump to Content
‣ Jump to Footer
‣ Top Stacked
Off Canvas
http://2012.dconstruct.org/
Friday, November 8, 13
Slide 348
Slide 348 text
Most sites have to
work a bit harder to
accommodate their
content.
Friday, November 8, 13
Slide 349
Slide 349 text
Complex Nav Causes
‣ Large volume of content
- Legacy content
- Dynamic content
‣ Broad architecture
- Lots of content types/categories
‣ Deep architecture
- Lots of children and nesting
Friday, November 8, 13
Slide 350
Slide 350 text
Complex Nav Causes
‣ Large volume of content
- Legacy content
- Dynamic content
‣ Broad architecture
- Lots of content types/categories
‣ Deep architecture
- Lots of children and nesting
DON’T GIVE UP.
Friday, November 8, 13
Slide 351
Slide 351 text
Before accommodating all
the things, it’s not a cop-
out to question the things.
Friday, November 8, 13
Slide 352
Slide 352 text
Attack the right nav.
Friday, November 8, 13
Slide 353
Slide 353 text
Complex Nav Causes
‣ Poor Information Architecture
- Unnecessarily broad or deep due
to inefficiency or poor planning
‣ Poor Content Strategy
- Unnecessarily large due to a lack of
governance, ownership, or
intentionality
POSSIBLE ROOT
Friday, November 8, 13
Slide 354
Slide 354 text
NAVIGATION AND RWD
Major Issues
‣ Site Depth and Breadth
‣ Screen Real Estate
‣ Cross-width Consistency
‣ Design Patterns
Friday, November 8, 13
Slide 355
Slide 355 text
Small screens aren’t just
horizontally small.
Friday, November 8, 13
Don’t make small screens
smaller by eating up
vertical space with nav.
Friday, November 8, 13
Slide 358
Slide 358 text
http://www.tuj.ac.jp/
Friday, November 8, 13
Slide 359
Slide 359 text
http://
seesparkbox.com/
foundry
Friday, November 8, 13
Slide 360
Slide 360 text
Take ALL the navigation
into account.
Friday, November 8, 13
Slide 361
Slide 361 text
http://skinnyties.com/
color/blue/
Friday, November 8, 13
Slide 362
Slide 362 text
NAVIGATION AND RWD
Major Issues
‣ Site Depth and Breadth
‣ Screen Real Estate
‣ Cross-width Consistency
‣ Design Patterns
Friday, November 8, 13
Slide 363
Slide 363 text
“Users don’t resize their
browser. That’s a
developer behavior.”
Friday, November 8, 13
Slide 364
Slide 364 text
Our users are viewing our
sites at multiple
resolutions.
Friday, November 8, 13
Slide 365
Slide 365 text
Familiarity breeds
usability.
Friday, November 8, 13
Slide 366
Slide 366 text
Are our off-canvas and
other RWD-inspired
patterns doing more harm
than good?
Friday, November 8, 13
Slide 367
Slide 367 text
Pros & Cons
from
http://
thenextweb.com/
Friday, November 8, 13
Slide 368
Slide 368 text
Do we need to change the
user’s pattern at all?
Friday, November 8, 13
Slide 369
Slide 369 text
http://
www.polygon.com/
Friday, November 8, 13
Slide 370
Slide 370 text
NAVIGATION AND RWD
Major Issues
‣ Site Depth and Breadth
‣ Screen Real Estate
‣ Cross-width Consistency
‣ Design Patterns
Friday, November 8, 13
Slide 371
Slide 371 text
There is no right answer.
Friday, November 8, 13
Slide 372
Slide 372 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
http://bradfrost.github.com/this-is-responsive/patterns.html
Friday, November 8, 13
Slide 373
Slide 373 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 374
Slide 374 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 375
Slide 375 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 376
Slide 376 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 377
Slide 377 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 378
Slide 378 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 379
Slide 379 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 380
Slide 380 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 381
Slide 381 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 382
Slide 382 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 383
Slide 383 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 384
Slide 384 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 385
Slide 385 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 386
Slide 386 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 387
Slide 387 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 388
Slide 388 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 389
Slide 389 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 390
Slide 390 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 391
Slide 391 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 392
Slide 392 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 393
Slide 393 text
Patterns Galore
‣ Toggle
‣ Footer Anchor
‣ Select Menu
‣ Multi-Toggle
‣ Off Canvas
‣ Breadcrumbs
‣ More...
Friday, November 8, 13
Slide 394
Slide 394 text
Be open to combining
patterns.
Friday, November 8, 13
Slide 395
Slide 395 text
Only try completely
unique/novel patterns if
you plan to fully test them.
Friday, November 8, 13
Slide 396
Slide 396 text
Discussion
‣ How are you handling navigation
in your RWD projects?
‣ Have you been able to push back
on IA?
Friday, November 8, 13
Slide 397
Slide 397 text
@BENCALLAHAN
Retrofitting
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 398
Slide 398 text
@BENCALLAHAN
What is a Retrofit?
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 399
Slide 399 text
@BENCALLAHAN
What is a Retrofit?
Finding the fastest and lowest-risk approach
to creating a better experience on an existing
site for users of any size screen.
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 400
Slide 400 text
@BENCALLAHAN
What is a Retrofit?
1. How to do it.
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 401
Slide 401 text
@BENCALLAHAN
What is a Retrofit?
1. How to do it.
2. Managing your client.
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 402
Slide 402 text
@BENCALLAHAN
@klayon
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 403
Slide 403 text
@BENCALLAHAN
@klayon
...performance is important, but access is
more important. Mobile later is better than
mobile never.
From “Responsive images for mobile: don’t sweat it” (http://tiny.cc/vr24gw)
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 404
Slide 404 text
@BENCALLAHAN
Retrofitting Techniques
http://github.com/bencallahan/rwd-retrofitting
If you like, you can clone this repository:
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 405
Slide 405 text
@BENCALLAHAN
Retrofitting Techniques: From Fixed to Fluid
(demo of Twitter.com)
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 406
Slide 406 text
@BENCALLAHAN
Retrofitting Techniques: From Fixed to Fluid
➡ Demo of Twitter.com
http://www.alistapart.com/articles/fluidgrids/
target
/
context
=
result
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 407
Slide 407 text
@BENCALLAHAN
Retrofitting Techniques: From Fixed to Fluid
➡ Demo of Twitter.com
http://www.alistapart.com/articles/fluidgrids/
target
/
context
=
result
302
/
837
=
36.08%
522
/
837
=
62.37%
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 408
Slide 408 text
@BENCALLAHAN
Retrofitting Techniques: From Fixed to Fluid
➡ Demo of Twitter.com
http://paulirish.com/2012/box-sizing-border-box-ftw/
*
{
-‐moz-‐box-‐sizing:
border-‐box;
-‐webkit-‐box-‐sizing:
border-‐box;
box-‐sizing:
border-‐box;
}
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 409
Slide 409 text
@BENCALLAHAN
Retrofitting Techniques: From Fixed to Fluid
➡ Demo of Twitter.com
/*
some
css
*/
@media
(max-‐width:
500px)
{
/*
css
for
500px
and
lower
*/
}
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 410
Slide 410 text
@BENCALLAHAN
Retrofitting Techniques: Inline Image Styles
(demo of /Images)
http://github.com/bencallahan/rwd-retrofitting
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 411
Slide 411 text
@BENCALLAHAN
Retrofitting Techniques: Inline Image Styles
➡ Support
‣ FireFox 5+ Win/Mac
‣ IE7+ (exception: IE8 & min-width)
‣ Chrome 14+ Win/Mac
‣ Safari 4+ Win, 5+ Mac
‣ Opera 10+ Win, 11+ Mac
‣ Mobile Safari (iOS 5)
‣ Android Browser 2.3+
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 412
Slide 412 text
@BENCALLAHAN
Retrofitting Techniques: Background Images
Tim Kadlec on timkadlec.com
“Media Query & Asset Downloading Results”
‣ display: none on parent element
‣ specify all background images inside media queries
http://timkadlec.com/2012/04/media-query-asset-downloading-results/
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 413
Slide 413 text
@BENCALLAHAN
Retrofitting Techniques: Tables
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 414
Slide 414 text
@BENCALLAHAN
Retrofitting Techniques: Tables
(demo of /Tables)
http://github.com/bencallahan/rwd-retrofitting
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 415
Slide 415 text
@BENCALLAHAN
Retrofitting Techniques: Tables
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 416
Slide 416 text
@BENCALLAHAN
Retrofitting Techniques: Media Queries
➡ Large Resolution First
➡ Small Resolution First, Capped
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 417
Slide 417 text
@BENCALLAHAN
Retrofitting Techniques: Media Queries
➡ Large Resolution First
/*
FILE:
main.css
*/
/*
all
your
original
styles
*/
@media
(max-‐width:
53em)
{
/*
styles
for
53em
and
lower
*/
}
@media
(max-‐width:
37em)
{
/*
styles
for
37em
and
lower
*/
}
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 418
Slide 418 text
@BENCALLAHAN
Retrofitting Techniques: Media Queries
➡ Small Resolution First, Capped
‣ Serve the original CSS to large viewports
‣ Serve mobile-first CSS to small viewports
‣ No changes to original CSS
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 419
Slide 419 text
@BENCALLAHAN
Retrofitting Techniques: Media Queries
➡ Small Resolution First, Capped
yepnope({
test
:
Modernizr.mq(‘(min-‐width:
0px)’),
yep
:
‘base.css’,
nope
:
‘original.css’
});
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 420
Slide 420 text
@BENCALLAHAN
Retrofitting Techniques: Media Queries
➡ Small Resolution First, Capped
@media (max-width: 979px) {
@import "small";
}
@media (min-width: 661px) and (max-width: 979px) {
@import "medium";
}
@media (min-width: 980px) {
@import "original";
}
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 421
Slide 421 text
@BENCALLAHAN
Client Interaction
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 422
Slide 422 text
@BENCALLAHAN
Client Interaction: Great Need
Big Companies
+ No Mobile Presence
+ Triple Digit Growth
= Anxious Clients
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 423
Slide 423 text
@BENCALLAHAN
Client Interaction: Great Need
Less than Half the Cost
+ Less than Half the Time
+ Increased Conversions
= Desperate Clients
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 424
Slide 424 text
@BENCALLAHAN
Client Interaction: When It’s Right
➡ Evaluate the Project
‣ Solid UX at higher widths?
‣ Semantic markup?
‣ Immediate need?
‣ Real benefit for the user?
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 425
Slide 425 text
@BENCALLAHAN
Client Interaction: Proceed Carefully
Retrofitting is a step in
the right direction.
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 426
Slide 426 text
@BENCALLAHAN
Client Interaction: Proceed Carefully
Make sure you’re
capturing analytics.
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 427
Slide 427 text
@BENCALLAHAN
Constantly remind them
of the user.
Client Interaction: Proceed Carefully
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 428
Slide 428 text
@BENCALLAHAN
When you’re done and
they ask for more...
Client Interaction: Proceed Carefully
...push for even better
experiences!
RESPONSIVE RETROFITTING
Friday, November 8, 13
Slide 429
Slide 429 text
Discussion
‣ Have you used responsive
techniques on older sites?
‣ Does retrofitting seem like a good
idea for your situation?
Friday, November 8, 13
Slide 430
Slide 430 text
LEARN FROM OUR MISTAKES
LESSONS
LEARNED
Friday, November 8, 13
Slide 431
Slide 431 text
Testing
Friday, November 8, 13
Slide 432
Slide 432 text
LESSONS LEARNED
Testing
‣ You must test on real devices
‣ Do your development in a webkit
browser
‣ Bulid libraries of your patterns
Friday, November 8, 13
Slide 433
Slide 433 text
Pricing
Friday, November 8, 13
Slide 434
Slide 434 text
LESSONS LEARNED
Pricing
‣ As much as 100% more, initially
‣ Likely to be 50% more, soon after
‣ Probably never less than 25% more
Friday, November 8, 13
Slide 435
Slide 435 text
LESSONS LEARNED
Pricing
‣ As much as 100% more, initially
‣ Likely to be 50% more, soon after
‣ Probably never less than 25% more
COMPARED TO
WHAT?
Friday, November 8, 13
LESSONS LEARNED
Prioritization
Friday, November 8, 13
Slide 439
Slide 439 text
LESSONS LEARNED
Prioritization
Friday, November 8, 13
Slide 440
Slide 440 text
LESSONS LEARNED
Prioritization
Friday, November 8, 13
Slide 441
Slide 441 text
LESSONS LEARNED
Prioritization
Friday, November 8, 13
Slide 442
Slide 442 text
LESSONS LEARNED
Prioritization
Friday, November 8, 13
Slide 443
Slide 443 text
Performance
Friday, November 8, 13
Slide 444
Slide 444 text
LESSONS LEARNED
Performance
‣ Optimize or cut out images
‣ Decrease the number of requests
‣ Gzip if you can
‣ Concat and minify CSS/JS
‣ Load CSS at the top
‣ Load JS at the bottom
‣ Follow @souders on Twitter
Friday, November 8, 13
Slide 445
Slide 445 text
Barriers
Friday, November 8, 13
Slide 446
Slide 446 text
LESSONS LEARNED
Barriers
‣ Organization barriers block
collaboration
‣ Must have buy in from upper
management
‣ Must have buy in from those doing
the work
‣ It’s not easy, we’re still
figuring it out
Friday, November 8, 13
Slide 447
Slide 447 text
SOME THOUGHTS ON WHAT’S NEXT IN RWD
WHERE
WE’RE GOING
Friday, November 8, 13
Slide 448
Slide 448 text
Friday, November 8, 13
Slide 449
Slide 449 text
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 450
Slide 450 text
Unconscious
Incompetence
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 451
Slide 451 text
Unconscious
Incompetence
Conscious
Incompetence
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 452
Slide 452 text
Unconscious
Incompetence
Conscious
Incompetence Conscious
Competence
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 453
Slide 453 text
Unconscious
Incompetence
Conscious
Incompetence Conscious
Competence
Unconscious
Competence
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 454
Slide 454 text
Fluency
SOLVE THE PROBLEM
Friday, November 8, 13
Slide 455
Slide 455 text
Jakob Nielsen Says...
‣ Build a separate mobile site
‣ Cut features
‣ Cut content
http://www.nngroup.com/articles/mobile-site-vs-full-site/
Friday, November 8, 13
Slide 456
Slide 456 text
Jakob Nielsen Says...
‣ Build a separate mobile site
‣ Cut features
‣ Cut content
http://www.nngroup.com/articles/mobile-site-vs-full-site/
PLEASE, NO.
Friday, November 8, 13
Slide 457
Slide 457 text
The Responsive Dip
http://bit.ly/MasqBk
Friday, November 8, 13
Slide 458
Slide 458 text
The Responsive Mindset
“The truly responsive design web
designer wasn’t born until after the
launch of the iPhone. We haven’t seen his
or her work yet.”
Andy Clarke
http://the-pastry-box-project.net/andy-clarke/2012-april-8/
Friday, November 8, 13
Slide 459
Slide 459 text
There are many
problems left to solve.
We’ll solve them much faster if we
solve them together.
Friday, November 8, 13
Slide 460
Slide 460 text
THANKS!
@bencallahan @drewtclemens
Friday, November 8, 13