Slide 1

Slide 1 text

@bencallahan @drewtclemens Friday, November 8, 13

Slide 2

Slide 2 text

Friday, November 8, 13

Slide 3

Slide 3 text

@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

Slide 62

Slide 62 text

CONTENT UX FRONT-END DESIGN BACK-END “1 Deliverable” Workflow Friday, November 8, 13

Slide 63

Slide 63 text

CONTENT UX FRONT-END DESIGN BACK-END “1 Deliverable” Workflow Friday, November 8, 13

Slide 64

Slide 64 text

CONTENT UX FRONT-END DESIGN BACK-END “1 Deliverable” Workflow Friday, November 8, 13

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

CONTENT UX FRONT-END DESIGN BACK-END “1 Deliverable” Workflow Friday, November 8, 13

Slide 67

Slide 67 text

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

Slide 174

Slide 174 text

Multiple CSS Files global.css aside { color: #333; width: 100%; } layout.css aside { width: 50%; } @media (min-width: 60em) { aside { width: 30%; } } Friday, November 8, 13

Slide 175

Slide 175 text

Multiple CSS Files global.css aside { color: #333; width: 100%; } layout.css aside { width: 50%; } @media (min-width: 60em) { aside { width: 30%; } } Friday, November 8, 13

Slide 176

Slide 176 text

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

Slide 180

Slide 180 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 181

Slide 181 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 182

Slide 182 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 183

Slide 183 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 184

Slide 184 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 185

Slide 185 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 186

Slide 186 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 187

Slide 187 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 188

Slide 188 text

PAUSE: CSS PREPROCESSORS Friday, November 8, 13

Slide 189

Slide 189 text

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

Slide 196

Slide 196 text

$main-color: blue /* .scss */ #main { color: $main-color; font-size: 0.3em; } /* .sass */ #main color: $main-color font-size: 0.3em SASS Sytax Friday, November 8, 13

Slide 197

Slide 197 text

What’s so cool about preprocessors, anyway? Friday, November 8, 13

Slide 198

Slide 198 text

/* .scss */ .food-list { list-style: none; li { font-size: 1rem; a { color: red; } } } Nesting /* .css */ .food-list { list-style: none; } .food-list li { font-size: 1rem; } .food-list li a { color: red; } Friday, November 8, 13

Slide 199

Slide 199 text

Nesting can be abused. /* This is bad. Don’t do it. */ html body #main div.primary .big-header { font-size: 2em; } ! Friday, November 8, 13

Slide 200

Slide 200 text

/*.scss*/ $white: rgba(255,255,255,1); /*.less*/ @white: rgba(255,255,255,1); /*.styl*/ white = rgba(255,255,255,1); $black = rgba(0,0,0,1); Variables Friday, November 8, 13

Slide 201

Slide 201 text

/*.scss*/ @mixin border-radius( $value : 10px ) { ! -webkit-border-radius: $value; ! -moz-border-radius: $value; ! ! ! border-radius: $value; } Mixins .btn{ @include border-radius(25px); } Friday, November 8, 13

Slide 202

Slide 202 text

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

Slide 220

Slide 220 text

Breakpoint Based Partials base.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { width: 50%; } aside { width: 30%; } Friday, November 8, 13

Slide 221

Slide 221 text

_40em.scss aside { width: 50%; } Breakpoint Based Partials base.scss @import “smallest”; @media (min-width: 40em) { @import “40em”; } @media (min-width: 60em) { @import “60em”; } no-mq.scss @import “40em”; @import “60em”; _60em.scss aside { width: 30%; } _smallest.scss aside { color: #333; width: 100%;} Friday, November 8, 13

Slide 222

Slide 222 text

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

Slide 231

Slide 231 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 232

Slide 232 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 233

Slide 233 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 234

Slide 234 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 235

Slide 235 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 236

Slide 236 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 237

Slide 237 text

Module Based Partials mq.css aside { color: #333; width: 100%; } @media (min-width: 40em) { aside { width: 50%; } } @media (min-width: 60em) { aside { width: 30%; } } no-mq.css aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 238

Slide 238 text

Module Based Partials mq.scss @import “compass”; @import “sb-media”; @import “aside”; @import “nav”; @import “footer”; ... no-mq.scss @import “compass”; @import “sb-media”; $sb-no-mq-support: true; @import “aside”; @import “nav”; @import “footer”; ... Friday, November 8, 13

Slide 239

Slide 239 text

Module Based Partials mq.scss @import “compass”; @import “sb-media”; @import “aside”; @import “nav”; @import “footer”; ... no-mq.scss @import “compass”; @import “sb-media”; $sb-no-mq-support: true; @import “aside”; @import “nav”; @import “footer”; ... Friday, November 8, 13

Slide 240

Slide 240 text

Module Based Partials mq.scss @import “compass”; @import “sb-media”; @import “aside”; @import “nav”; @import “footer”; ... no-mq.scss @import “compass”; @import “sb-media”; $sb-no-mq-support: true; @import “aside”; @import “nav”; @import “footer”; ... Friday, November 8, 13

Slide 241

Slide 241 text

Module Based Partials mq.scss @import “compass”; @import “sb-media”; @import “aside”; @import “nav”; @import “footer”; ... no-mq.scss @import “compass”; @import “sb-media”; $sb-no-mq-support: true; @import “aside”; @import “nav”; @import “footer”; ... Friday, November 8, 13

Slide 242

Slide 242 text

Module Based Partials _aside.scss aside { color: #333; width: 100%; @include sb-media(40em) { width: 50%; } @include sb-media(60em) { width: 30%; } } Friday, November 8, 13

Slide 243

Slide 243 text

Module Based Partials _aside.scss aside { color: #333; width: 100%; @include sb-media(40em) { width: 50%; } @include sb-media(60em) { width: 30%; } } Friday, November 8, 13

Slide 244

Slide 244 text

Module Based Partials _aside.scss aside { color: #333; width: 100%; @include sb-media(40em) { width: 50%; } @include sb-media(60em) { width: 30%; } } $sb-no-mq-support: true; aside { color: #333; width: 100%; width: 50%; width: 30%; } Friday, November 8, 13

Slide 245

Slide 245 text

Module Based Partials $no-­‐mq-­‐support:  false  !default; $serve-­‐to-­‐nomq-­‐max-­‐width:60em; @mixin  sb-­‐media($query)  {    @if  $no-­‐mq-­‐support{        @if  $query  <  $serve-­‐to-­‐nomq-­‐max-­‐width  {            @content;        }    }  @else  {        @media  (  'min-­‐width:'  +  $query  )  {            @content;        }    } } https://github.com/sparkbox/SB-Media Friday, November 8, 13

Slide 246

Slide 246 text

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

Slide 271

Slide 271 text

@column-width: 60; @gutter-width: 20; @columns: 12; @total-width: 100%; header { @include column(12); } article { @include column(12); } aside { @include column(12); } @media (min-width: 38em) { article { @include column(8); } aside { @include column(4); } } Semantic.gs Friday, November 8, 13

Slide 272

Slide 272 text

@column-width: 60; @gutter-width: 20; @columns: 12; @total-width: 100%; header { @include column(12); } article { @include column(12); } aside { @include column(12); } @media (min-width: 38em) { article { @include column(8); } aside { @include column(4); } } Semantic.gs Friday, November 8, 13

Slide 273

Slide 273 text

Semantic.gs @column-width: 60; @gutter-width: 20; @columns: 12; @total-width: 100%; header { @include column(12); } article { @include column(12); } aside { @include column(12); } @media (min-width: 38em) { article { @include column(8); } aside { @include column(4); } } Friday, November 8, 13

Slide 274

Slide 274 text

Semantic.gs @column-width: 60; @gutter-width: 20; @columns: 12; @total-width: 100%; header { @include column(12); } article { @include column(12); } aside { @include column(12); } @media (min-width: 38em) { article { @include column(8); } aside { @include column(4); } } Friday, November 8, 13

Slide 275

Slide 275 text

Semantic.gs @column-width: 60; @gutter-width: 20; @columns: 12; @total-width: 100%; header { @include column(12); } article { @include column(12); } aside { @include column(12); } @media (min-width: 38em) { article { @include column(8); } aside { @include column(4); } } Friday, November 8, 13

Slide 276

Slide 276 text

Or, just roll your own Friday, November 8, 13

Slide 277

Slide 277 text

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

Slide 305

Slide 305 text

img { max-width: 100%; } Flexible Images Friday, November 8, 13

Slide 306

Slide 306 text

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

Slide 325

Slide 325 text

New Markup ‣ Picture - http://www.w3.org/TR/html-picture- element/ ‣ Srcset - http://www.w3.org/html/wg/drafts/ srcset/w3c-srcset/ ‣ SrcN - http://tabatkins.github.io/specs/ respimg/Overview.html Friday, November 8, 13

Slide 326

Slide 326 text

Picture Polyfill Friday, November 8, 13

Slide 327

Slide 327 text

Srcset Polyfill Friday, November 8, 13

Slide 328

Slide 328 text

SrcN Proposed Spec Friday, November 8, 13

Slide 329

Slide 329 text

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

Slide 356

Slide 356 text

Landscape iPhone: 320 px (~150px w/ keyboard:) Friday, November 8, 13

Slide 357

Slide 357 text

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

Slide 436

Slide 436 text

LESSONS LEARNED Pricing ‣ Testing (labs & time) ‣ Fewer patterns ‣ Project management ‣ Learning curve ‣ Maintenance ‣ Content strategy Friday, November 8, 13

Slide 437

Slide 437 text

Prioritization Friday, November 8, 13

Slide 438

Slide 438 text

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