keys to responsive design

Post on 18-Oct-2014

1.650 Views

Category:

Business

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

In this class, we'll analyze various scenarious in which a traditional 960 pixel view fails users, and how responsive design can help. We'll look at the best-practice principles behind implementing a responsive website or app and then walk through a fail-proof process for overhauling existing designs to make them truly responsive.

TRANSCRIPT

Presented by

Keys to Responsive Design

Presented by

I’m Tim.

Responsive Web Design

I wrote this book.AmazonBarnes & NobleSafari Books ...most places, really.

informIT.comWRIGHT2740

Responsive Web Design

What we’ll be going over• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

01Best PracticesThey’re WAY more exciting than they sound!

Responsive Web Design

Progressive Enhancement

Responsive Web Design

Progressive Enhancement

Responsive Web Design

The BIG secret!

Being good at responsive design has little to do with CSS

Responsive Web Design

Rules of Responsive Design

• Don’t call it “mobile”• Treat it as 1 site• Don’t target devices• Don’t remove content for small screens• Think in terms of features (touch vs. no touch)• Always remember bandwidth• Consider the strategy from the start• Recognize when it isn’t the answer.

Responsive Web Design

02Media Queries & breakpointsHoly sh*t, stop using iPhone dimensions...

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

The Media Query

@media screen and ( max-width: 800px ) {

/* CSS for this breakpoint */

}

media type media feature

normal CSS

Responsive Web Design

The Media “Type”• all• screen• print• braille• handheld• projections• tv• aural (speech and sound synthesis)

Responsive Web Design

The Media “Feature”• min/max-width• min/max-height• orientation• aspect-ratio (browser window)• device-aspect-ratio (4/3,16/9)• color-index• resolution & min-resolution (dpi * dpcm)• device pixel ratio

Responsive Web Design

Aspect ratioHeight/WidthOrientationResolution (dpi)Touch enabled (-moz-)

Responsive Web Design

Aspect ratioHeight/WidthOrientationResolution (dpi)Touch enabled (-moz-)

Responsive Web Design

Aspect ratioHeight/WidthOrientationResolution (dpi)Touch enabled

Responsive Web Design

Aspect ratioHeight/WidthOrientationResolution (dpi)Touch enabled (-moz-)

Responsive Web Design

Aspect ratioHeight/WidthOrientationResolution (dpi)Touch enabled (-moz-)

Responsive Web Design

Setting Breakpoints

Responsive Design doesn’t care that the iPhone is 320 pixels wide......and neither should you

Responsive Web Design

Making it work on everywhere

Responsive Web Design

Viewport tag contentwidth=device-width // define the viewport size

initial-scale=1.0 // starting zoom level

maximum-scale=1.0 // control zooming (0-10)

user-scalable=0 // prevent zooming / input:focus scrolling

Responsive Web Design

Recommended Tag

<meta name=”viewport” content=”width=device-width, initial-scale=1.0”>

Responsive Web Design

Breakpoints & Media Queries

Live example

Responsive Web Design

Browser Support

caniuse.com

Responsive Web Design

03Design patternsOther people do things this way...

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

Navigation• The “Do nothing” approach

• Stacked navigation method

• Footer anchor

• Select menu

• Toggle

• Left navigation flyout

• The “Hide and Cry”

Credit: Brad Frost

Responsive Web Design

NavigationThe “Do Nothing” Approach

Responsive Web Design

NavigationThe “Stacked Navigation” method

Responsive Web Design

NavigationFooter Anchor

Image Credit: Brad Frost

Responsive Web Design

NavigationSelect Menu

Image Credit: Brad Frost

Responsive Web Design

NavigationToggle

Responsive Web Design

NavigationLeft Nav Flyout

Responsive Web Design

NavigationThe “Hide and Cry”

Responsive Web Design

Navigation

Live example

Responsive Web Design

04Responsive ImagesLoading a image for a small screen? Eh.

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

Responsive Images• max-width: 100%

• srcset

• Picturefill

• Bandwidth testing

Responsive Web Design

Lazy man’s (or woman’s) images

img { max-width: 100%;}

Responsive Web Design

srcset

<img src=”low-res.jpg” srcset=”high-res.jpg 2x”>

<img src=”low-res.jpg” srcset=”narrow.jpg 640w 1x, high-res-narrow.jpg 640w 2x, large.jpg 1x, high-res-large.jpg 2x”>

just to make sure it’s a little confusing...

Responsive Web Design

Picturefill<div data-picture data-alt=”A Fat Brown Dog”>

<div data-src=”small.jpg” data-media=”(max-width:600px)”></div>

<div data-src=”hd.jpg” data-media=”(min-device-pixel-ratio: 2.0)”></div>

<noscript>

<img src=”fat-dog.jpg” alt=”A Fat Brown Dog”>

</noscript>

</div>

Responsive Web Design

Bandwidth Testing

navigator.mozConnection.bandwidth

if(Manage.connection === “good”) {

// you have ample bandwidth

}

https://github.com/timwright12/js-asset-management

Responsive Web Design

05Responsive JavaScriptGulp...

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

Responsive JavaScript

body:before { content: “widescreen”; position: absolute; top: -9999px; left: -9999px;}

@media screen and (max-width:600px) { content: “smallscreen”;}

Responsive Web Design

Responsive JavaScript// set the initial screen sizevar size = window.getComputedStyle(document.body,':before').getPropertyValue('content');

// check the breakpoint on resizewindow.addEventListener(“resize”, function(){

size = window.getComputedStyle(document.body,':before').getPropertyValue('content');

if (size.indexOf(“smallscreen”) != -1) { // do small screen JS } else { // do large screen JS }

}, false);

Responsive Web Design

Responsive JavaScript

Basic example

Responsive Web Design

Responsive JavaScript

Over the top example

Responsive Web Design

06Responsive Design & the ServerLean on me... when you’re not strooooong... and I’ll be your friend...

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

RESS

?

Yes, do something

mobile

No.

Responsive Web Design

RESSIn the browser On the server

• Screen size

• Orientation

• Design changes (CSS)

• Is mobile?

• Structural changes (HTML)

Responsive Web Design

RESS

?

Insert call button & use native datepicker

Async load jQuery UI & date picker base CSS

YES!

NO!

Responsive Web Design

RESS

What is the window size? Is touch available?

• Answered with media queries

• No - Do nothing

• Yes - Async load touch interactions (swiping)

Responsive Web Design

What we went over• Progressive Enhancement

• Best Practices

• Setting Breakpoints

• Design Patterns

• Responsive Media

• Responsive JavaScript

• RESS (RWD with Server-side Components)

Responsive Web Design

BooksResponsive Web Designby Ethan Marcotte

Responsive Web Design

Articles• Responsive Web Design

http://www.alistapart.com/articles/responsive-web-design/

• Guidelines for Responsive Designhttp://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/

• Design Process in a Responsive Agehttp://uxdesign.smashingmagazine.com/2012/05/30/design-process-responsive-age/

• Adaptive vs. Responsive Designhttp://uxdesign.smashingmagazine.com/2012/11/08/ux-design-qa-with-christian-holst/

• Responsive Design is more than breakpointshttp://inspectelement.com/articles/responsive-web-design-is-so-more-than-just-a-few-breakpoints/

Responsive Web Design

Tools & Plugins• Picturefill

https://github.com/scottjehl/picturefill

• FitVidshttp://fitvidsjs.com/

• RespondJShttps://github.com/scottjehl/Respond

• Testing a Responsive Sitehttp://mattkersley.com/responsive/

• Multi-device layout patternshttp://www.lukew.com/ff/entry.asp?1514

Responsive Web Design

Folks on Twitter• Responsive Design, @rwd

• Mat Marquis, @wilto

• Chris Coyier, @chriscoyier

• Brad Frost, @brad_frost

• Luke Wroblewski, @lukew

Responsive Web Design

A PodcastWeb:

freshtilledsoil.com/thedirt

Twitter:

@thedirtshow@freshtilledsoil

Responsive Web Design

Slidesftsdesign.com/labs/rwd-08-26-2013/slides.pdf

Responsive Web Design

Questions/CommentsE-mail: tim.wright@freshtilledsoil.comTwitter: @csskarma

top related