Transcript
Page 1: Responsive websites. Toolbox

Responsive websites.Toolbox

WARSAW, 29.03.2012

@appsp i r i na

Page 2: Responsive websites. Toolbox

Agenda

• Feature detection

• Media Queries 101

• Viewport Tricks

• Performance

• CSS frameworks

• Responsive images

• Micro libraries

• jQuery plugins

• Mobile Wordpress

• Browser testing

Page 3: Responsive websites. Toolbox

PROGRESSIVEenhancement

PIXELperfection

vs

Page 4: Responsive websites. Toolbox

Source: Justin Avery (CC BY-SA 3.0)

Interfaces don’t have to look the same everywhere.

TV already solved this problem.

Page 6: Responsive websites. Toolbox

We knowfeatures:

✦ screen size

✦ local storage

✦ touch

✦ canvas

✦ SVG

✦ screen size

✦ no touch

✦ poor JavaScript

✦ no canvas

✦ isMSIE

Hat tip: Yiibu

There areconstraints:

Page 7: Responsive websites. Toolbox

Feature detect

Page 8: Responsive websites. Toolbox
Page 10: Responsive websites. Toolbox

<link rel="stylesheet" media="screen, projection" href="normal.css"> <link rel="stylesheet" media="print" href="print.css">

Party like it’s 1998!

CSS2 media types

Page 11: Responsive websites. Toolbox

CSS3 Media Queries

<link rel="stylesheet" type="text/css" href="example.css" media="screen and (color)">

Media type Expression

Page 12: Responsive websites. Toolbox

Better CSS3 Media Queries

@media screen and (color) { body { background: #f00; }}

@import url("example.css") screen and (color);

Increase maintainability with @import:

Save HTTP requests:

Page 13: Responsive websites. Toolbox

✦ former updates on orientation change, latter doesn’t

✦ only max/min-width will be visible in desktop browser

!"#/!$%-width or-device-width?

Page 14: Responsive websites. Toolbox

Detect high DPI screens

<link rel="stylesheet" media="only screen and (-webkit-min-device-pixel-ratio: 2)" type="text/css" href="highdpi.css" />

Just retina display:

Page 16: Responsive websites. Toolbox

Detect high DPI screens

@mediaonly screen and (-webkit-min-device-pixel-ratio: 1.5),only screen and (-o-min-device-pixel-ratio: 3/2),only screen and (min--moz-device-pixel-ratio: 1.5),only screen and (min-device-pixel-ratio: 1.5) { /* Styles */}

Saves HTTP request, non-iOS-specific:

Page 17: Responsive websites. Toolbox

Detect iPad orientation

<link rel="stylesheet" media="all and (orientation: portrait)" href="portrait.css">

<link rel="stylesheet" media="all and (orientation: landscape)" href="landscape.css">

Page 19: Responsive websites. Toolbox

Browser support

— caniuse.com

Page 20: Responsive websites. Toolbox

Need supportfor IE6-8?

respond.jshttps://github.com/scottjehl/Respond

Page 22: Responsive websites. Toolbox

Viewport demystified

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

width=500 Custom width setting

minimum-scale=1.0 Prevents from zooming out

maximum-scale=1.0 Prevents from zooming in. Useful with forms

user-scalable=no Use cautiously. Mostly for mobile-specific designs

Page 23: Responsive websites. Toolbox

Hey girl,

when I see you,

my iPhone

gets 2x initial zoom

Page 24: Responsive websites. Toolbox

Home screen icon

<link rel="apple-touch-icon" href="apple-touch-icon.png">

supported by Android 2.1+, too!

Page 25: Responsive websites. Toolbox

Home screen icon

iOS adds by default:

• Rounded corners

• Drop shadow

• Reflective shine

<link rel="apple-touch-icon-precomposed"

href="apple-touch-icon-precomposed.png">

prevents addition of iOS effects

Page 26: Responsive websites. Toolbox

Home screen icon

Complete snippet:

http://mathiasbynens.be/notes/touch-icons

144 × 144

114 × 114

72 × 72

iPad ‘Retina’ display

iPhone ‘Retina’ display

iPad, iPad 2

57 × 57 non-Retina iOS and others

Page 27: Responsive websites. Toolbox

Hiding address bar

<meta name="apple-mobile-web-app-capable" content="yes">

After adding as a bookmark:

Cross-browser solution:

https://github.com/scottjehl/Hide-Address-Bar

Page 28: Responsive websites. Toolbox

iOS viewport scaling bug

Portrait Landscape

Page 29: Responsive websites. Toolbox

iOS viewport scaling bug

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) { var viewportmeta = document.querySelector('meta[name="viewport"]'); if (viewportmeta) { viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0'; document.body.addEventListener('gesturestart', function() { viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6'; }, false); }}

— http://adactio.com/journal/4470/

fix

Page 31: Responsive websites. Toolbox

Mobile first, stupid!

Page 32: Responsive websites. Toolbox

Decrease dependencies

Page 33: Responsive websites. Toolbox

The Boston Globe used the following methodology:

Load resources conditionally

ASSETSdepend on

screendimensions

DESIGNdepends on

windowdimensions

Page 35: Responsive websites. Toolbox

Use CSS Data URL generators

or… built-in editor tools (e.g. implemented in Sublime)

Page 37: Responsive websites. Toolbox
Page 38: Responsive websites. Toolbox
Page 39: Responsive websites. Toolbox
Page 40: Responsive websites. Toolbox
Page 41: Responsive websites. Toolbox
Page 42: Responsive websites. Toolbox

Develop your own!

Starbucks style guide: http://www.starbucks.com/static/reference/styleguide/

Page 44: Responsive websites. Toolbox

max-width: 100%;

Doesn’t provide resources optimization

Page 45: Responsive websites. Toolbox

Defined as obsolete in HTML5

Needs 2 http requests

lowsrc

Page 46: Responsive websites. Toolbox

Uses up the most resources

Standard JavaScriptreplacement

Page 47: Responsive websites. Toolbox

Relies on JS for displaying content. Poor idea.

1pxgif

Page 48: Responsive websites. Toolbox

da t a - h i ghs rc

developed by Filament Group

used on Boston Globe

Page 49: Responsive websites. Toolbox

✦ PHP solution

✦ quick to set up

✦ doesn’t work with CDNs

Adaptive-images.com by Matt Wilcox

Page 51: Responsive websites. Toolbox
Page 52: Responsive websites. Toolbox
Page 53: Responsive websites. Toolbox
Page 55: Responsive websites. Toolbox
Page 56: Responsive websites. Toolbox
Page 57: Responsive websites. Toolbox
Page 58: Responsive websites. Toolbox
Page 61: Responsive websites. Toolbox

✦ Twenty ten fully responsiveequivalent available

✦ List of responsive themesat Free Themes Directory grows constantly

✦ Lots of responsive premium themes on Forest, WooThemes and Themify

2. Responsive themes

http://responsivetwentyten.com/

Page 63: Responsive websites. Toolbox

✦ Mobble

✦ Dropdown Menus

✦ WP Fluid Images

4. Responsive design helpers

if (is_mobile()) { echo "Dude, you rock."}

Page 65: Responsive websites. Toolbox
Page 66: Responsive websites. Toolbox
Page 67: Responsive websites. Toolbox

There are EMULATORS

to solve your

PROBLEMS38*

99

* http://www.mobilexweb.com/emulators

Page 68: Responsive websites. Toolbox
Page 69: Responsive websites. Toolbox

Testing onREALDEVICESis crucial.

Page 70: Responsive websites. Toolbox

✦ Analyze your website’s traffic

✦ Review the local platform landscape

✦ Check against device-specific factors (form, screen size, performance, DPI)

✦ Compare with project-specific factors (location-based?)

Building your pool of devices

— Stephanie Rieger,http://stephanierieger.com/strategies-for-choosing-test-devices/

Page 71: Responsive websites. Toolbox

Q & A

Wojtek Zając (@theanxy)http://www.slideshare.net/wojciechzajac This work is licensed

under a Creative Commons Attribution 3.0 Unported License

Thanks!

Page 72: Responsive websites. Toolbox

Based on the brilliant research and works by:

• Scott Jehl

• Patrick H. Lauke

• Russ Weakley

& others.

First slide photo: http://www.flickr.com/photos/johnmcnab/5758738799/

Stephanie Rieger: http://www.flickr.com/photos/29022619@N03/6116794697/

Credit where it’s due

• Matt Wilcox

• Brad Frost

• Rachel McCollin

• Yiibu.com


Top Related