104
Hammering Responsive Web Design Into Shape @KenTabor

WVPDX 2014 - Hammering Responsive Web Design Into Shape

Embed Size (px)

DESCRIPTION

Presented at WebVisions, Portland 2014 This talk isn’t about deciding if responsive web design is a good idea or worth pursuing. We’re assuming you’ve already made up your mind that it is. This is a session dedicated to helping you develop, and more importantly debug, RWD. Why? Because it’s not easy! The speaker will share nuts-and-bolts concepts helping audience members more safely navigate one of the most difficult things we tackle - building websites that respond to a world of device sizes. In this energetic talk attendees will see real-time demos and illustrative slides serving an audience of technically minded designers by reviewing practical topics such as: • Resources for pouring your pages into simulated device screen sizes forgoing expensive hardware purchases as long as possible • Reviewing reasons for setting up a web server on Win7 and OS X laptops for emulating production environments for quicker work iterations • Demonstrating better CSS through Sass showing cleaner looking @media rules offering more easily maintained RWD styles • Showing an experimental tool automatically mass-producing website screenshots of multiple sizes using NodeJS and PhantomJS

Citation preview

Page 1: WVPDX 2014 - Hammering Responsive Web Design Into Shape

!

Hammering Responsive Web Design Into Shape

!

!

@KenTabor

Page 2: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Visionary

Page 3: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 4: WVPDX 2014 - Hammering Responsive Web Design Into Shape

bit.ly/KenSlideShare

Page 5: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Adapt Respond Overcome

Page 6: WVPDX 2014 - Hammering Responsive Web Design Into Shape

“Recently, an emergent discipline called ‘responsive architecture’ has begun

asking how physical spaces can respond to the presence of people passing

through them.”

-Ethan Marcotte

Page 7: WVPDX 2014 - Hammering Responsive Web Design Into Shape

“Rather than tailoring disconnected designs to each of an ever-increasing number of web devices, we can treat

them as facets of the same experience.”

-Ethan Marcotte

Page 8: WVPDX 2014 - Hammering Responsive Web Design Into Shape

I figure you already buy into responsive, adaptive, or fluid

design

Page 9: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Let’s focus on the challenge of RWD - testing against a

multitude of form-factors

Page 10: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Production servers are sweet for users

Page 11: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Production servers are a drag for testing

Page 12: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Get your own server

Install Apache

Page 13: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Win7?

Download the installer at httpd.apache.org

Page 14: WVPDX 2014 - Hammering Responsive Web Design Into Shape

OS X?

Apache is already on your MacBook

Page 15: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 16: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 17: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Apache configuration is not ideal out of the box

Let’s tell Apache from where to serve your files

Page 18: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Edit what? httpd.conf Where?

c:\apache2\conf

/etc/apache2/

Page 19: WVPDX 2014 - Hammering Responsive Web Design Into Shape

#Before DocumentRoot “/Library/WebServer/Documents” !

#After DocumentRoot “/Users/ken/trees”

Page 20: WVPDX 2014 - Hammering Responsive Web Design Into Shape

#Before <Directory “/Library/WebServer/Documents”>!

#After<Directory “/Users/ken/trees”>

Page 21: WVPDX 2014 - Hammering Responsive Web Design Into Shape

After editing httpd.conf restart Apache

Page 22: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 23: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Localhost, the best host ❤️

Rapid turn around and absolute control

Page 24: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Level Up

Page 25: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Leapfrog your peers?

Gain advantage over the competition?

Page 26: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Serve your teammates?

Share with the community?

Page 27: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Will the mobile browser on phones and tablets hit our

work OS X laptop?

Page 28: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Yes! And it’s fantastic!

Page 29: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Laptop is on wifi

iPhone is on wifi

Shared network is easiest

Page 30: WVPDX 2014 - Hammering Responsive Web Design Into Shape

System Preferences

Network

Page 31: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 32: WVPDX 2014 - Hammering Responsive Web Design Into Shape

http://192.168.0.244

Page 33: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Phone or tablet browser hits the laptop URL

Tickles Apache to serve

Page 34: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 35: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 36: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Laptop + Devices => #Joy

Page 37: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Will the mobile browser on phones and tablets hit our

work Win7 laptop?

Page 38: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Laptop is on wifi

iPhone is on wifi

Shared network is easiest

Page 39: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Firewall turned off

Phone or tablet browser hits the laptop URL

Tickles Apache to serve

Page 40: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Open a Command Prompt

“ipconfig” Look for ip address

Page 41: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 42: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 43: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Expert pro-tip: Apache web server “Virtual Host”

Page 44: WVPDX 2014 - Hammering Responsive Web Design Into Shape

This is optional

Adds power-up bonus points

Page 45: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Maps (a folder) /Users/ken/trees/AnnaSpellingWords

to (a URL) www.annaspellingwords.local

Page 46: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Edit: httpd-vhosts.conf Where?

c:\apache2\conf\extra

/etc/apache2/extra

Page 47: WVPDX 2014 - Hammering Responsive Web Design Into Shape

<VirtualHost *:80> DocumentRoot “/Users/ken/trees/AnnaSpellingWords” ServerName annaspellingwords.local ! <Directory “/Users/ken/trees/AnnaSpellingWords”> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>

Page 48: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Edit what? httpd.conf Where?

c:\apache2\conf

/etc/apache2/

Page 49: WVPDX 2014 - Hammering Responsive Web Design Into Shape

# Virtual hosts Include /private/etc/apache2/extra/httpd-vhosts.conf

Page 50: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Edit: hosts Where?

\windows\system32\drivers\etc

/etc

Page 51: WVPDX 2014 - Hammering Responsive Web Design Into Shape

127.0.0.1 annaspellingwords.local

Page 52: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 53: WVPDX 2014 - Hammering Responsive Web Design Into Shape

When you’re back home and in the lab enjoy a coffee

Experiment and have fun

Page 54: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Who is “Ken Tabor?”

Page 55: WVPDX 2014 - Hammering Responsive Web Design Into Shape

I’m a product engineer

at Sabre building TripCase

Page 57: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Internet Inspirations

Page 58: WVPDX 2014 - Hammering Responsive Web Design Into Shape

mediaqueri.es

Page 59: WVPDX 2014 - Hammering Responsive Web Design Into Shape

responsivedesign.is

Page 60: WVPDX 2014 - Hammering Responsive Web Design Into Shape

html5up.net

Page 61: WVPDX 2014 - Hammering Responsive Web Design Into Shape

responsive.is

Page 62: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 63: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 64: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Responsive Testing Tool

Page 65: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Easily preview your site given typical device resolutions

Runs on localhost for convenience & security

Page 66: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 67: WVPDX 2014 - Hammering Responsive Web Design Into Shape

github.com/mattkersley/Responsive-Design-Testing

Page 68: WVPDX 2014 - Hammering Responsive Web Design Into Shape

ResponsizerJS

Page 69: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Drop it into your web site

Helps resize browser when matching device sizes

Page 70: WVPDX 2014 - Hammering Responsive Web Design Into Shape

github.com/KDawg/Responsizer.js

Page 71: WVPDX 2014 - Hammering Responsive Web Design Into Shape

<script src=“resources/code/ Responsizer.js” type=“text/javascript”> </script>

Page 72: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Can’t find the right tool?

Then build it and share!

Page 73: WVPDX 2014 - Hammering Responsive Web Design Into Shape

How big are your users?

Page 74: WVPDX 2014 - Hammering Responsive Web Design Into Shape

How do we know the screen sizes and devices our

customers have?

Page 75: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Using Google Analytics?

You have a wealth of data Draw reports on it

Page 76: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 77: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Screen Size

Device Brand

O/S Name & Version

Browser Type

Page 78: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Using this data informs your interface design with fact-based

reality

Page 79: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Surviving CSS by thriving with Sass

Page 80: WVPDX 2014 - Hammering Responsive Web Design Into Shape

sass-lang.com

Page 81: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Lovely syntactic sugar

Compiles to CSS

Makes life more joyful

Page 82: WVPDX 2014 - Hammering Responsive Web Design Into Shape

$phone-width: 320px;$laptop-width: 1024px; !.popup { left: 25%; position: fixed; width: 50%; z-index: 20; @media screen and (max-width: $phone-width) { left: 10%; width: 80%; } @media screen and (min-width: $laptop-width) { font-size: 2em; left: 15%; width: 70%; }}

Page 83: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Nested media queries

Expressive variables

More rational looking

Page 84: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Breakpoint

Page 85: WVPDX 2014 - Hammering Responsive Web Design Into Shape

breakpoint-sass.com

Page 86: WVPDX 2014 - Hammering Responsive Web Design Into Shape

$phone-width: max-width 320px;$laptop-width: min-width 1024px;.popup { left: 25%; position: fixed; width: 50%; z-index: 20; @include breakpoint($phone-width) { left: 10%; width: 80%; } @include breakpoint($laptop-width) { font-size: 2em; left: 15%; width: 70%; }}

Page 87: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Fun with PhantomJS

Page 88: WVPDX 2014 - Hammering Responsive Web Design Into Shape

phantomjs.org Headless Webkit browser

Page 89: WVPDX 2014 - Hammering Responsive Web Design Into Shape

phantomjs.org/download.html

brew install phantomjs

Page 90: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Take screen shots of websites

Record at varying device sizes

Page 91: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Needs some JavaScript coding to be the awesome

Page 92: WVPDX 2014 - Hammering Responsive Web Design Into Shape

var webpage = require('webpage'); var page; page = webpage.create(); page.viewportSize = {width: 1024, height: 768}; page.clipRect = {top: 0, left: 0, width: 1024, height: 768}; page.open('http://www.microsoft.com', function() { page.render('screenie_1024_768.png'); phantom.exit();});

phantomjs screenie.js

Page 93: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Script could take parameters:

width and height

url

picture filename

Page 94: WVPDX 2014 - Hammering Responsive Web Design Into Shape

ImageMagick processing

Page 95: WVPDX 2014 - Hammering Responsive Web Design Into Shape

imagemagick.org Selection of command-line image processing tools

Page 96: WVPDX 2014 - Hammering Responsive Web Design Into Shape

www.imagemagick.org/script/binary-releases.php

brew install imagemagick

Page 97: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Compare two images

Produce a third one

“Annotates distortions”

Page 98: WVPDX 2014 - Hammering Responsive Web Design Into Shape

XOR Bitwise Operator

Page 99: WVPDX 2014 - Hammering Responsive Web Design Into Shape

0 XOR 0 = false 0 XOR 1 = true 1 XOR 0 = true 1 XOR 1 = false

Page 100: WVPDX 2014 - Hammering Responsive Web Design Into Shape

compare image1.png image2.png image3.png

Page 101: WVPDX 2014 - Hammering Responsive Web Design Into Shape
Page 102: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Automate this

Collect visual history

Detect design divergence

Page 103: WVPDX 2014 - Hammering Responsive Web Design Into Shape

Responses?

Page 104: WVPDX 2014 - Hammering Responsive Web Design Into Shape

!

Have Fun! bit.ly/KenSlideShare

!

!

@KenTabor