SlideShare una empresa de Scribd logo
1 de 37
Responsive Design
with WordPress
Joe Casabona

casabona.org
@jcasabona
Who Am I?*
*Besides a handsome devil
2
3
Responsive Web Design: The idea that your
website will automatically adapt to the
device it's being viewed on.

4
Why?
5
❖ EM-Based Breakpoints
❖ Breakpoints based

How?

on Content

❖ Consider

Connection Speeds

6
RESS

❖ My Plugin: rwdwp.com/22
❖ Jesse's: rwdwp.com/35

7
WURFL
Database
Database

❖ Device Detection
❖ Feature Detection
❖ Open Source
❖ Scientia Mobile

8
Scientia
Mobile
Mobile

9

rwdwp.com/20
wp_is_mobile()

10
function jlc_is_mobile_device($apikey){
try{
$config = new WurflCloud_Client_Config();
$config->api_key = $apikey;
$client = new
WurflCloud_Client_Client($config);
$client->detectDevice();
return $client>getDeviceCapability('is_wireless_device');
}catch (Exception $e){
return wp_is_mobile();
}
}
define( 'ISMOBILE', jlc_is_mobile_device());
11
if(ISMOBILE){
//display one way
}else{ //not mobile device
//display different way
}

12
Always ask what’s
best for the users!

13
❖ Sketch

Responsive
❖ Test
Workflow
❖ Repeat
❖ Code

14
Mobile First!
15
I use the web completely differently on
mobile devices.
- No One

16
Design in the
Browser
17
The next era in designing for the web is a more
advanced, mature and intelligent one. It’s about
streamlining, semantics, great markup,
responsive or fluid design, great typography,
web fonts, content first, rapid prototyping and
advanced javascript. My argument is that html,
CSS and the browser tools we need have all
advanced us past the point of needing
Photoshop.

- Josh Long (rwdwp.com/94
)
18
Expand Out!
19

bradfrostweb.com
Style Tiles
20

styletil.es
General Notes for
Page Weight

21
Make it Work with
WordPress

22
Navigation

❖ Do Nothing

❖ Select Box

❖ Hide n' Cry

❖ Responsive Nav

❖ Jump to

❖ Off-Canvas

23
<nav id=”main”>
<?php
if(!ISMOBILE){
wp_nav_menu( array('menu' => ‘Main',
'container_id' => 'top-menu'));
}else{
echo '<a href=”#footernav”>Jump to
Nav</a>';
}
?>
</nav>

24
<?php if(ISMOBILE){ ?>
<nav id=“footer-nav”>
<?php wp_nav_menu( array('menu' =>
‘Main’)); ?>
</nav>
<?php } ?>

25
Comments!
❖ Incremental Loading
❖ Pagination

❖ Separate Page

26
Responsive Images

27
picturefill.js
28
<span data-picture data-alt="A photo of a
thing">
<span data-src="small.jpg"></span>
<span data-src="medium.jpg"
datamedia="(min-width: 400px)"></span>
<span data-src="large.jpg"
datamedia="(min-width: 800px)"></span>
<span data-src="extralarge.jpg" datamedia="(min-width: 1000px)"></span>
<noscript>
<img src="small.jpg" alt="A giant
stone face at The Bayon temple in Angkor Thom,
Cambodia">
</noscript>
</span>
29
$(function(){
$(“.post
img).removeAttr(“width”).removeAttribute(“height”);
}

30
Images Are Hard!

31
@media(-webkit-min-device-pixel-ratio: 2),(minresolution: 192dpi) {
/* Retina-specific stuff here */
}

<span data-src="retina.jpg" data-media="(-webkitmin-device-pixel-ratio: 2) and (min-resolution:
192dpi)"></span>

32

rwdwp.com/95
Testing
33
❖ iPhone 4, 5
❖ iPad 2 or new iPad
❖ Android 4.0+ Phones: Galaxy Nexus, Galaxy Note II,
S3 or S4, Droid Incredible (one of them), Droid DNA
or Razor Maxx

Devices

❖ Android pre-4.0 Phones: Moto DroidX, Evo4G
❖ Android Tablets: Nexus 7, 10, Samsung Galaxy Note
10, Galaxy Tab 8.9, Kindle Fire, Moto XOOM

❖ At least one Blackberry (Q10, Z10)
❖ At least one Windows Phone (Lumia or HTC 8x)
34
❖ Broadband (wired or wifi connection)

Connectivity
❖ 4G (on multiple carriers if possible)
❖ 3G (on multiple carriers if possible)
❖ 4G and 3G while traveling

35
❖ The device’s native browser (Safari,
Browser, etc)

Browsers!

❖ Chrome on Android and iOS
❖ Mobile Opera
❖ Dolphin

❖ Mobile Firefox

36
Slides will be at
casabona.org/events

Questions?
Discount Code: RWDWP with you order
from peachpit.com

37

Más contenido relacionado

La actualidad más candente

How Not to Build a WordPress Plugin
How Not to Build a WordPress PluginHow Not to Build a WordPress Plugin
How Not to Build a WordPress Plugin
Will Norris
 
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
 
How to learn j query
How to learn j queryHow to learn j query
How to learn j query
Baoyu Xu
 

La actualidad más candente (19)

Mojolicious on Steroids
Mojolicious on SteroidsMojolicious on Steroids
Mojolicious on Steroids
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
 
Php cookies
Php cookiesPhp cookies
Php cookies
 
OUTDATED (Encore)
OUTDATED (Encore)OUTDATED (Encore)
OUTDATED (Encore)
 
Php sessions
Php sessionsPhp sessions
Php sessions
 
WordPress Kitchen 2014 - Александр Стриха: Кеширование в WordPress
WordPress Kitchen 2014 - Александр Стриха: Кеширование в WordPress WordPress Kitchen 2014 - Александр Стриха: Кеширование в WordPress
WordPress Kitchen 2014 - Александр Стриха: Кеширование в WordPress
 
Nanoc
NanocNanoc
Nanoc
 
HOW TO UPLOAD AND DISPLAY IMAGE PHP HTML SQL
HOW TO UPLOAD AND DISPLAY IMAGE PHP HTML SQLHOW TO UPLOAD AND DISPLAY IMAGE PHP HTML SQL
HOW TO UPLOAD AND DISPLAY IMAGE PHP HTML SQL
 
How Not to Build a WordPress Plugin
How Not to Build a WordPress PluginHow Not to Build a WordPress Plugin
How Not to Build a WordPress Plugin
 
Persistent mobile JavaScript
Persistent mobile JavaScriptPersistent mobile JavaScript
Persistent mobile JavaScript
 
Backbone js in drupal core
Backbone js in drupal coreBackbone js in drupal core
Backbone js in drupal core
 
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
 
Ember background basics
Ember background basicsEmber background basics
Ember background basics
 
HTTP Caching and PHP
HTTP Caching and PHPHTTP Caching and PHP
HTTP Caching and PHP
 
How to learn j query
How to learn j queryHow to learn j query
How to learn j query
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
 
WordPress Plugin & Theme Security - WordCamp Melbourne - February 2011
WordPress Plugin & Theme Security - WordCamp Melbourne - February 2011WordPress Plugin & Theme Security - WordCamp Melbourne - February 2011
WordPress Plugin & Theme Security - WordCamp Melbourne - February 2011
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
 
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
 

Similar a Responsive Design with WordPress (WCPHX)

09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
Chris Alfano
 

Similar a Responsive Design with WordPress (WCPHX) (20)

Drupal as a web framework
Drupal as a web frameworkDrupal as a web framework
Drupal as a web framework
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
 
WCLA12 JavaScript
WCLA12 JavaScriptWCLA12 JavaScript
WCLA12 JavaScript
 
jQuery (MeshU)
jQuery (MeshU)jQuery (MeshU)
jQuery (MeshU)
 
Everything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the WebEverything is Awesome - Cutting the Corners off the Web
Everything is Awesome - Cutting the Corners off the Web
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
 
Progressive What Apps?
Progressive What Apps?Progressive What Apps?
Progressive What Apps?
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
jQuery (BostonPHP)
jQuery (BostonPHP)jQuery (BostonPHP)
jQuery (BostonPHP)
 
Asynchronous Interfaces
Asynchronous InterfacesAsynchronous Interfaces
Asynchronous Interfaces
 
Responsive Web in Brief
Responsive Web in BriefResponsive Web in Brief
Responsive Web in Brief
 
Intro to Php Security
Intro to Php SecurityIntro to Php Security
Intro to Php Security
 
Responsive WordPress workflow
Responsive WordPress workflowResponsive WordPress workflow
Responsive WordPress workflow
 
CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the World
 
Webpack packing it all
Webpack packing it allWebpack packing it all
Webpack packing it all
 
Packing it all: JavaScript module bundling from 2000 to now
Packing it all: JavaScript module bundling from 2000 to nowPacking it all: JavaScript module bundling from 2000 to now
Packing it all: JavaScript module bundling from 2000 to now
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
 
Responsive Responsive Design
Responsive Responsive DesignResponsive Responsive Design
Responsive Responsive Design
 
RESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side ComponentsRESS – Responsive Webdesign and Server Side Components
RESS – Responsive Webdesign and Server Side Components
 

Más de Joe Casabona

WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and Security
Joe Casabona
 

Más de Joe Casabona (9)

Building Parsec : The Planning Stage
Building Parsec : The Planning StageBuilding Parsec : The Planning Stage
Building Parsec : The Planning Stage
 
Local Development Environments
Local Development EnvironmentsLocal Development Environments
Local Development Environments
 
Hacking the Luminis 5 Portal
Hacking the Luminis 5 PortalHacking the Luminis 5 Portal
Hacking the Luminis 5 Portal
 
Wearable Technology: The Next Big Thing
Wearable Technology: The Next Big ThingWearable Technology: The Next Big Thing
Wearable Technology: The Next Big Thing
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and Security
 
My Top WordPress Plugins
My Top WordPress PluginsMy Top WordPress Plugins
My Top WordPress Plugins
 
Using PHP to Create a Web Based Mobile Banner Application
Using PHP to Create a Web Based Mobile Banner ApplicationUsing PHP to Create a Web Based Mobile Banner Application
Using PHP to Create a Web Based Mobile Banner Application
 
Building a Simple Theme Framework
Building a Simple Theme FrameworkBuilding a Simple Theme Framework
Building a Simple Theme Framework
 
Connecting Custom Post Types
Connecting Custom Post TypesConnecting Custom Post Types
Connecting Custom Post Types
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Responsive Design with WordPress (WCPHX)

Notas del editor

  1. Web Developer, Writer Started Freelancing at 15 HS, College, Grad School 2 years full time, PT Fac tell mt carmel story. Tell them to interrupt me and not to make users feel dumb
  2. Out Dec. 16. Presentation will be a teaser for the book.
  3. casabona.org: Visit it on Desktop &amp; Smartphone, and the same site will display 2 different ways. ***Just as much about big screens as small screens***
  4. * Look at all of those devices (photo from bradfrostweb.com) * Projected by 2015, 50% of American Adults will using mobile as main source for Internet. It already is that in other place, like parts of Africa and India. * Mobile e-commerce traffic was over 50% and mobile was responsible for over 25% of purchases made on Thanksgiving in 2013. * Recently the Galaxy Gear was hacked to include a browser. BUT - RWD is more than Screen Resizing!
  5. We want GOOD RWD. That means EM breakpoints. these adapt to the user’s settings, not just set pixel widths No arbitrary breakpoints based on device. then all you have is a website that looks good on 3 devices. 75% of users abandon a website after 5 seconds. And not everyone has fast internet! (I know; I was just in the Philly airport)
  6. * REsponsive Design + Server Side Programming. * Basically, do device detection on the sever end and display template files/section of code based on the results. * One note: You cannot test RESS driven elements by only resizing your browser. You will have to use a real device. * 2 plugins that can help: Mine &amp; Jesse Friedman&apos;s
  7. “Wireless Universal Resource FiLe” This API give you access to a full list of devices and features you can get by using built-in functions ex: screenwidth, wireless, There are open source, free, downloadable- but you need to update manually and they lag 2-3 months behind.
  8. Monthly Subscription There is a free version with limited capabilities This is automatically updated for you.
  9. built-in to WordPress Does user agent testing. I built a function that makes them work together.
  10. Sidebar: Do error checking/catching.
  11. **NOT different content…different layouts. Perfect example usage: navigation…will look at later In WP, we can even enqueue different scripts based on device. It’s important to remember NOT to change the content though!
  12. Also, know your users! - From what class/type of devices do my users access the site? - Are my users there to see what’s on the home page, or do they usually go to a different page? - What information do I want to present as most important?- How tech-savvy are my users?
  13. How do I do RWD? I’m not much of a photoshop guy, so I never really designed in photoshop. My tools: Paper, pencil, Code and the browser.
  14. The mobile design bible, written by Luke Wroblewski Start with the smallest screen! This will allow you to determine what the most important content. Helps you avoid things like too many nav items, hiding content, and overloading the user Lots of stats and UX info (one thumb, one eyeball)
  15. Don’t hide or change content for mobile devices.
  16. You can’t capture the essence of a responsive site with photoshop. How do you choose what resolutions to mock up? Designing in the browser let’s you rapidly prototype, and see what you need to do in real time.
  17. This is how you determine breakpoints Move your browser out until the content looks bad. When it does, that’s a breakpoint. Start with lowest common denominator. What about determining the site’s style?
  18. talk about when to include JS (do I really need this?) Tools like image-optim for shrinking images tools like picturefill.js (we will look at)
  19. Whole point of my book! Too much to cover all of the points, but I will mention some of the more fun stuff, and even include some never release code from the book!
  20. * HnC is bad. Don&apos;t use that one. * With Jump to &amp; Select Box I make use of RESS as to not load 2 different navs. *
  21. * Jump to technique with RESS * Why? Now we don’t have to show/hide elements with CSS, meaning that users will see all of the markup added. * Could do the same thing for Select box, but select will require custom walker (covered in my book!).
  22. *Note about adding smooth scrolling with jQuery
  23. Remember to style things nicely- especially the form! Make it easy for users to input date. As far as rendering… I propose 3 possible methods: -Incremental Loading (load only a few- requires JS) -Pagination (may require extra loading; must load page each time) -Separate page (I like this one)
  24. Really tricky * WordPress creates multiple versions of image when uploaded. * You can even create more using add_image_size() * There are libraries that will display images based on width- like picturefill.js
  25. One proposed method for responsive images is a &lt;picture&gt; element where you can select images to display based on screen width. This is a long way away, so Filament Group made this!
  26. * We can use this technique with the multiple WordPress uploads. * There is a lot that goes into this portion so I won’t go over it here, but it’s explained thoroughly in the book * One Note- during research, I found that doing this for every image on the site on the fly…not very efficient (crazy, right)? At the moment, there is not a great way to do this- hopefully in the future. * To combat this, you could use a short code, however, this would render the media uploader/inserter useless.
  27. * At the very least, using jQuery, we can remove the width and height that the WordPress editor adds in.
  28. This is a problem still being solved. Aside from sizes there is retina issues, loading issues, and much more. It will likely continue until there is some sort of browser support.
  29. * Multiple Devices * Multiple Connections * Browsers on devices
  30. You MUST test on devices!! Don’t just rely on your computer’s browser That’s a lot of devices! Use discretion of course; what are your users using? Look for open devices labs, buy cheap devices, ask friends There are tools like browserstack to help as well (also, Edge Inspect)
  31. Not everyone will have super fast Internet connections. Some people might even have…edge. (net neutrality joke)
  32. Not to mention desktop browsers…FF, Chrome, Safari, Opera, and (dun dun dun) IE. IE: at least 9, 8 if your users need it. Remember: 9 doesn’t support media queries.