SlideShare a Scribd company logo
Building Responsive
 Websites and Apps
 with Drupal
 Dallas Drupal Days 2011




2011.07.09 - Dallas Drupal Days
http://dallasdrupal.org/sessions/building-responsive-websites-and-apps-
drupal
What is Responsive?
‣   Responsive layouts are the original design on the
    web: http://naked.dustindiaz.com/
‣   As screens got bigger, we got pickier about the
    look of a site on the desktop monitor
What is Responsive?
 ‣   Now we deal with these:




Credits: Aaron Stanush
What is Responsive?
 ‣   Now we deal with these:




Credits: Aaron Stanush
What is Responsive?
 ‣   Not to mention these:




Credits: http://j.mp/rethink-mobile
So many browsers




Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
So many browsers
 ‣   Do you really have time to test for and cater to:




Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
So many browsers
 ‣   Do you really have time to test for and cater to:
       ‣   Chrome, Firefox, Safari, Opera, Internet Explorer
           6-7-8-9-10, Symbian, iPhone, iPad, Android
           phones, Android tablets, RIM (Blackberry),
           Windows CE, Windows mobile, Windows Phone
           7, Linux, bada, MeeGo, Brew OS




Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
So many browsers
 ‣   Do you really have time to test for and cater to:
       ‣   Chrome, Firefox, Safari, Opera, Internet Explorer
           6-7-8-9-10, Symbian, iPhone, iPad, Android
           phones, Android tablets, RIM (Blackberry),
           Windows CE, Windows mobile, Windows Phone
           7, Linux, bada, MeeGo, Brew OS
       ‣   ...boo


Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
Forget about...
Forget about...
‣   User-agent detection + Separate mobile theme
Forget about...
‣   User-agent detection + Separate mobile theme
‣   Separate subdomain / path + redirection
Forget about...
‣   User-agent detection + Separate mobile theme
‣   Separate subdomain / path + redirection
‣   External services
Forget about...
‣   User-agent detection + Separate mobile theme
‣   Separate subdomain / path + redirection
‣   External services
‣   These are alternatives, each with strengths and
    weaknesses. We don’t care about them today :)
Go Responsive
Go Responsive
‣   Use the front-end the way it wants to be used —
    as a versatile presentation layer
Go Responsive
‣   Use the front-end the way it wants to be used —
    as a versatile presentation layer
‣   The layout of a website can shift and adapt to
    changes in screen size and device capability
Go Responsive
‣   Use the front-end the way it wants to be used —
    as a versatile presentation layer
‣   The layout of a website can shift and adapt to
    changes in screen size and device capability
‣   CSS3 Media Queries
    JavaScript tools that adapt real-time
    Feature detection
Example




Credits: http://mediaqueri.es
Example




Credits: http://mediaqueri.es
CSS Media Queries




<plug> or check out http://fourkitchens.com </
plug>
CSS Media Queries
 ‣   The spec:        http://www.w3.org/TR/css3-mediaqueries/




<plug> or check out http://fourkitchens.com </
plug>
CSS Media Queries
 ‣   The spec:        http://www.w3.org/TR/css3-mediaqueries/

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




<plug> or check out http://fourkitchens.com </
plug>
CSS Media Queries
 ‣   The spec:        http://www.w3.org/TR/css3-mediaqueries/

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

 ‣   The hotness:           http://mediaqueri.es




<plug> or check out http://fourkitchens.com </
plug>
Basic Example
<link rel=”stylesheet” href=”this.css”>
Basic Example
<link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”>
Basic Example
 <link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”>




 /* This CSS will always apply - global styles */
 body {padding: 10px; }
 #container {width: 100%; margin: 0; }




Do not use these in conjunction!
Basic Example
 <link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”>




 /* This CSS will always apply - global styles */
 body {padding: 10px; }
 #container {width: 100%; margin: 0; }

 /* This CSS will only apply when the window is 960px or greater */
 @media screen and (min-width: 960px) {
   body {padding: 0; }
   #container {width: 960px; margin: 0 auto; }
 }




Do not use these in conjunction!
cool, but...
cool, but...
‣   IE 8 and below do not recognize media queries
    (weep not, more on this later)
cool, but...
‣   IE 8 and below do not recognize media queries
    (weep not, more on this later)

‣   Don’t just pop open your existing stylesheets, wrap
    them in queries, and call it a day
cool, but...
‣   IE 8 and below do not recognize media queries
    (weep not, more on this later)

‣   Don’t just pop open your existing stylesheets, wrap
    them in queries, and call it a day
‣   We need to mentally remove the line between
    mobile and desktop...
cool, but...
‣   IE 8 and below do not recognize media queries
    (weep not, more on this later)

‣   Don’t just pop open your existing stylesheets, wrap
    them in queries, and call it a day
‣   We need to mentally remove the line between
    mobile and desktop...
‣   ...but don’t freak out.
    They’re just differently sized screens.
Mobile First Approach




http://j.mp/rethink-mobile
Mobile First Approach
 ‣   aka Progressive Enhancement




http://j.mp/rethink-mobile
Mobile First Approach
 ‣   aka Progressive Enhancement
 ‣   Read, re-read, and bookmark (game changer)
     http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu




http://j.mp/rethink-mobile
Mobile First Approach
 ‣   aka Progressive Enhancement
 ‣   Read, re-read, and bookmark (game changer)
     http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu




http://j.mp/rethink-mobile
Progressive CSS




http://j.mp/rethink-mobile
Progressive CSS
 ‣   No media query support is a media query




http://j.mp/rethink-mobile
Progressive CSS
 ‣   No media query support is a media query
 ‣   Target the least capable browser first




http://j.mp/rethink-mobile
Progressive CSS
 ‣   No media query support is a media query
 ‣   Target the least capable browser first
 ‣   Query for more functional browsers




http://j.mp/rethink-mobile
Progressive CSS
 ‣   No media query support is a media query
 ‣   Target the least capable browser first
 ‣   Query for more functional browsers
 ‣   More compatible than when you start with desktop
     styles and filter “down” to mobile version




http://j.mp/rethink-mobile
Feature Detection




http://www.modernizr.com/
Feature Detection
‣   Not just limited to screen size




http://www.modernizr.com/
Feature Detection
‣   Not just limited to screen size
‣   Modernizr tests for the specific features you need




http://www.modernizr.com/
Feature Detection
‣   Not just limited to screen size
‣   Modernizr tests for the specific features you need
‣   More reliable than user-agent detection




http://www.modernizr.com/
Feature Detection
‣   Not just limited to screen size
‣   Modernizr tests for the specific features you need
‣   More reliable than user-agent detection
‣   Modular and lightweight, pick your tests:
    http://www.modernizr.com/download/




http://www.modernizr.com/
Drupal Modules
Drupal Modules
‣   Responsive Images: http://drupal.org/project/responsive_images
    Mobile-first images
Drupal Modules
‣   Responsive Images: http://drupal.org/project/responsive_images
    Mobile-first images

‣   Modernizr: http://drupal.org/project/modernizr
    Modernizr integration
Drupal Modules
‣   Responsive Images: http://drupal.org/project/responsive_images
    Mobile-first images

‣   Modernizr: http://drupal.org/project/modernizr
    Modernizr integration

‣   Semantic Views: http://drupal.org/project/semanticviews
    Allows you to clean up your Views output sans templates
Drupal Modules
‣   Responsive Images: http://drupal.org/project/responsive_images
    Mobile-first images

‣   Modernizr: http://drupal.org/project/modernizr
    Modernizr integration

‣   Semantic Views: http://drupal.org/project/semanticviews
    Allows you to clean up your Views output sans templates

‣   Responder: http://drupal.org/sandbox/rupl/1104416
    Force module stylesheets into mobile-first approach
Drupal Themes
‣   Omega: http://drupal.org/project/omega
‣   Flex: http://drupal.org/sandbox/zachattack/1104458
Useful Libraries
Useful Libraries
‣   Respond.js - For I       ncapabl   E browsers
    https://github.com/scottjehl/Respond
Useful Libraries
‣   Respond.js - For I       ncapabl   E browsers
    https://github.com/scottjehl/Respond

‣   Responsive-Images - Bandwidth savings for smaller
    screens
    https://github.com/filamentgroup/Responsive-Images
Useful Libraries
‣   Respond.js - For I       ncapabl   E browsers
    https://github.com/scottjehl/Respond

‣   Responsive-Images - Bandwidth savings for smaller
    screens
    https://github.com/filamentgroup/Responsive-Images

‣   Adapt.js - JavaScript alternative to media queries.
    Built upon 960 Grid System
    https://github.com/nathansmith/adapt
Front-end Performance




http://www.webperformancetoday.com/2011/04/20/
desktop-vs-mobile-web-page-load-speed/
Front-end Performance
‣   Up to 97% of perceived mobile response time
    depends on the front-end... really




http://www.webperformancetoday.com/2011/04/20/
desktop-vs-mobile-web-page-load-speed/
Front-end Performance
‣   Up to 97% of perceived mobile response time
    depends on the front-end... really
‣   Your super-stack might serve requests quickly, but
    if you don’t request quickly, it still seems slow.




http://www.webperformancetoday.com/2011/04/20/
desktop-vs-mobile-web-page-load-speed/
Front-end Performance
Front-end Performance
‣   Cache HTML, internal and external if possible
Front-end Performance
‣   Cache HTML, internal and external if possible
‣   Optimize CSS/JS
Front-end Performance
‣   Cache HTML, internal and external if possible
‣   Optimize CSS/JS
‣   Move $scripts to the bottom of your templates
Front-end Performance
‣   Cache HTML, internal and external if possible
‣   Optimize CSS/JS
‣   Move $scripts to the bottom of your templates
‣   Use responsive images, data URIs, and/or sprites
Check your Work
Check your Work
Check your Work


‣   YSlow
    http://developer.yahoo.com/yslow/
Check your Work


‣   YSlow
    http://developer.yahoo.com/yslow/

‣   Page Speed
    http://code.google.com/speed/page-speed/docs/extension.html
Thank You!
 chris@fourkitchens.com
 twitter.com/rupl
 http://drupal.org/user/411999



2011.07.09 - Dallas Drupal Days
http://dallasdrupal.org/sessions/building-responsive-websites-and-apps-drupal
All content in this presentation, except where noted otherwise, is Creative Commons Attribution-
ShareAlike 3.0 licensed and copyright 2011 Four Kitchens, LLC.

More Related Content

What's hot

A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes back
Christian Heilmann
 
Looking for a place to hang my helmet
Looking for a place to hang my helmetLooking for a place to hang my helmet
Looking for a place to hang my helmet
Brad Frost
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
Christian Heilmann
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
Christian Heilmann
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
Russ Weakley
 
10 Web Performance Lessons For the 21st Century
10 Web Performance Lessons For the  21st Century10 Web Performance Lessons For the  21st Century
10 Web Performance Lessons For the 21st Century
Mateusz Kwasniewski
 
Beyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive Design
Brad Frost
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
지수 윤
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devs
Davidson Fellipe
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!
Rudy Rigot
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
Melanie Burger
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016
Christian Heilmann
 
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Mateusz Kwasniewski
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
Christian Heilmann
 
The Adobe Legal Department Style Guide
The Adobe Legal Department Style GuideThe Adobe Legal Department Style Guide
The Adobe Legal Department Style Guide
Adobe
 
Responsive Navigation Patterns, UX and Guidelines
Responsive Navigation Patterns, UX and GuidelinesResponsive Navigation Patterns, UX and Guidelines
Responsive Navigation Patterns, UX and Guidelines
Peter Rozek
 
How to build a website... the accessible way
How to build a website... the accessible wayHow to build a website... the accessible way
How to build a website... the accessible way
Isabel Brison
 
Responsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en OplossingenResponsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en Oplossingen
ThemePartner
 
Atomic Design - An Event Apart San Diego
Atomic Design - An Event Apart San DiegoAtomic Design - An Event Apart San Diego
Atomic Design - An Event Apart San Diego
Brad Frost
 

What's hot (20)

A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes back
 
Looking for a place to hang my helmet
Looking for a place to hang my helmetLooking for a place to hang my helmet
Looking for a place to hang my helmet
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
10 Web Performance Lessons For the 21st Century
10 Web Performance Lessons For the  21st Century10 Web Performance Lessons For the  21st Century
10 Web Performance Lessons For the 21st Century
 
Beyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive Design
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devs
 
Responsive Web Design - but for real!
Responsive Web Design - but for real!Responsive Web Design - but for real!
Responsive Web Design - but for real!
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
 
Responsive design
Responsive designResponsive design
Responsive design
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016
 
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 
The Adobe Legal Department Style Guide
The Adobe Legal Department Style GuideThe Adobe Legal Department Style Guide
The Adobe Legal Department Style Guide
 
Responsive Navigation Patterns, UX and Guidelines
Responsive Navigation Patterns, UX and GuidelinesResponsive Navigation Patterns, UX and Guidelines
Responsive Navigation Patterns, UX and Guidelines
 
How to build a website... the accessible way
How to build a website... the accessible wayHow to build a website... the accessible way
How to build a website... the accessible way
 
Responsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en OplossingenResponsive Design: Uitdagingen en Oplossingen
Responsive Design: Uitdagingen en Oplossingen
 
Atomic Design - An Event Apart San Diego
Atomic Design - An Event Apart San DiegoAtomic Design - An Event Apart San Diego
Atomic Design - An Event Apart San Diego
 

Viewers also liked

Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
Four Kitchens
 
The Web Chef Cookbook
The Web Chef CookbookThe Web Chef Cookbook
The Web Chef Cookbook
Four Kitchens
 
The state of web typography
The state of web typographyThe state of web typography
The state of web typography
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Four Kitchens
 
Making drupal beautiful with web fonts
Making drupal beautiful with web fontsMaking drupal beautiful with web fonts
Making drupal beautiful with web fontsFour Kitchens
 
Designing future proof websites
Designing future proof websitesDesigning future proof websites
Designing future proof websitesFour Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Four Kitchens
 
The type revolutionary's cookbook
The type revolutionary's cookbookThe type revolutionary's cookbook
The type revolutionary's cookbook
Four Kitchens
 
Open-source and no-cost tools for collaboration
Open-source and no-cost tools for collaborationOpen-source and no-cost tools for collaboration
Open-source and no-cost tools for collaboration
Four Kitchens
 
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Four Kitchens
 
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
Four Kitchens
 
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Four Kitchens
 
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
No RFPs! Why requests for proposal are bad for business (and how we can stop ...No RFPs! Why requests for proposal are bad for business (and how we can stop ...
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
Four Kitchens
 
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Four Kitchens
 
Drupal theming using the 960.gs grid system
Drupal theming using the 960.gs grid systemDrupal theming using the 960.gs grid system
Drupal theming using the 960.gs grid system
Four Kitchens
 
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
Four Kitchens
 
TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07
TIC MAGAZINE
 

Viewers also liked (20)

Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
Don't Design Websites. Design Web SYSTEMS! (UT Austin Drupal Users Group)
 
The Web Chef Cookbook
The Web Chef CookbookThe Web Chef Cookbook
The Web Chef Cookbook
 
The state of web typography
The state of web typographyThe state of web typography
The state of web typography
 
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
Don't Design Websites. Design Web SYSTEMS! (BADCamp 2011)
 
Making drupal beautiful with web fonts
Making drupal beautiful with web fontsMaking drupal beautiful with web fonts
Making drupal beautiful with web fonts
 
Designing future proof websites
Designing future proof websitesDesigning future proof websites
Designing future proof websites
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Copenhagen 2010)
 
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
Don't Design Websites. Design Web SYSTEMS! (Dallas Drupal Days 2011)
 
The type revolutionary's cookbook
The type revolutionary's cookbookThe type revolutionary's cookbook
The type revolutionary's cookbook
 
Open-source and no-cost tools for collaboration
Open-source and no-cost tools for collaborationOpen-source and no-cost tools for collaboration
Open-source and no-cost tools for collaboration
 
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
Accelerated grid theming using NineSixty (Dallas Drupal Days 2011)
 
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2010)
 
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
Accelerated grid theming using NineSixty (DrupalCon San Francisco 2010)
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon London 2011)
 
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
No RFPs! Why requests for proposal are bad for business (and how we can stop ...No RFPs! Why requests for proposal are bad for business (and how we can stop ...
No RFPs! Why requests for proposal are bad for business (and how we can stop ...
 
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
Accelerated grid theming using NineSixty (DrupalCamp LA 2011)
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp Stockholm 2011)
 
Drupal theming using the 960.gs grid system
Drupal theming using the 960.gs grid systemDrupal theming using the 960.gs grid system
Drupal theming using the 960.gs grid system
 
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
From Photoshop to Drupal Theme (DrupalCon San Francisco 2010)
 
TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07
 

Similar to Building Responsive Websites and Apps with Drupal

Mobile drupal
Mobile drupalMobile drupal
Mobile drupal
rupl
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"
Chris Mills
 
An Introduction to Responsive Design
An Introduction to Responsive DesignAn Introduction to Responsive Design
An Introduction to Responsive Design
Valtech UK
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusive
Chris Mills
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12touchtitans
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. Toolbox
Wojtek Zając
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
psophy
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013
Achieve Internet
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Thomas Carney
 
CSS3: the new style council
CSS3: the new style councilCSS3: the new style council
CSS3: the new style council
Chris Mills
 
Introduction to Responsive Design v.2
Introduction to Responsive Design v.2Introduction to Responsive Design v.2
Introduction to Responsive Design v.2
Clarissa Peterson
 
Active Web Development
Active Web DevelopmentActive Web Development
Active Web Development
Divya Manian
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
Luciano Amodio
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
Mike Wilcox
 
(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone
Chris Mills
 
Performance Optimization for Mobile Web | Fresh Tilled Soil
Performance Optimization for Mobile Web | Fresh Tilled SoilPerformance Optimization for Mobile Web | Fresh Tilled Soil
Performance Optimization for Mobile Web | Fresh Tilled Soil
Fresh Tilled Soil
 
When responsive web design meets the real world
When responsive web design meets the real worldWhen responsive web design meets the real world
When responsive web design meets the real worldJason Grigsby
 
Why Customers Love Responsive Design (And You Should Too!)
Why Customers Love Responsive Design (And You Should Too!)Why Customers Love Responsive Design (And You Should Too!)
Why Customers Love Responsive Design (And You Should Too!)
BrightEdge
 
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
Frédéric Harper
 

Similar to Building Responsive Websites and Apps with Drupal (20)

Mobile drupal
Mobile drupalMobile drupal
Mobile drupal
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"
 
RWD
RWDRWD
RWD
 
An Introduction to Responsive Design
An Introduction to Responsive DesignAn Introduction to Responsive Design
An Introduction to Responsive Design
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusive
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
Responsive websites. Toolbox
Responsive websites. ToolboxResponsive websites. Toolbox
Responsive websites. Toolbox
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013
 
Responsivedesign 7-3-2012
Responsivedesign 7-3-2012Responsivedesign 7-3-2012
Responsivedesign 7-3-2012
 
CSS3: the new style council
CSS3: the new style councilCSS3: the new style council
CSS3: the new style council
 
Introduction to Responsive Design v.2
Introduction to Responsive Design v.2Introduction to Responsive Design v.2
Introduction to Responsive Design v.2
 
Active Web Development
Active Web DevelopmentActive Web Development
Active Web Development
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone
 
Performance Optimization for Mobile Web | Fresh Tilled Soil
Performance Optimization for Mobile Web | Fresh Tilled SoilPerformance Optimization for Mobile Web | Fresh Tilled Soil
Performance Optimization for Mobile Web | Fresh Tilled Soil
 
When responsive web design meets the real world
When responsive web design meets the real worldWhen responsive web design meets the real world
When responsive web design meets the real world
 
Why Customers Love Responsive Design (And You Should Too!)
Why Customers Love Responsive Design (And You Should Too!)Why Customers Love Responsive Design (And You Should Too!)
Why Customers Love Responsive Design (And You Should Too!)
 
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
Responsive Web Design: the secret sauce - JavaScript Open Day Montreal - 2015...
 

More from Four Kitchens

Four Kitchens Presents: Future of the CMS
Four Kitchens Presents: Future of the CMSFour Kitchens Presents: Future of the CMS
Four Kitchens Presents: Future of the CMS
Four Kitchens
 
Four Kitchens: We make BIG websites
Four Kitchens: We make BIG websitesFour Kitchens: We make BIG websites
Four Kitchens: We make BIG websites
Four Kitchens
 
Big Websites for Small Screens: ICANN.org Case Study
Big Websites for Small Screens: ICANN.org Case StudyBig Websites for Small Screens: ICANN.org Case Study
Big Websites for Small Screens: ICANN.org Case Study
Four Kitchens
 
UX design for every screen
UX design for every screenUX design for every screen
UX design for every screen
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Four Kitchens
 
Intro to Drush
Intro to DrushIntro to Drush
Intro to Drush
Four Kitchens
 
Teaching Drupal
Teaching DrupalTeaching Drupal
Teaching Drupal
Four Kitchens
 
Big Websites
Big WebsitesBig Websites
Big Websites
Four Kitchens
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Four Kitchens
 
PHP for NonProgrammers (DrupalCon SF 2010)
PHP for NonProgrammers (DrupalCon SF 2010)PHP for NonProgrammers (DrupalCon SF 2010)
PHP for NonProgrammers (DrupalCon SF 2010)
Four Kitchens
 
Accelerated grid theming using NineSixty (DrupalCamp Dallas)
Accelerated grid theming using NineSixty (DrupalCamp Dallas)Accelerated grid theming using NineSixty (DrupalCamp Dallas)
Accelerated grid theming using NineSixty (DrupalCamp Dallas)
Four Kitchens
 
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
Four Kitchens
 

More from Four Kitchens (12)

Four Kitchens Presents: Future of the CMS
Four Kitchens Presents: Future of the CMSFour Kitchens Presents: Future of the CMS
Four Kitchens Presents: Future of the CMS
 
Four Kitchens: We make BIG websites
Four Kitchens: We make BIG websitesFour Kitchens: We make BIG websites
Four Kitchens: We make BIG websites
 
Big Websites for Small Screens: ICANN.org Case Study
Big Websites for Small Screens: ICANN.org Case StudyBig Websites for Small Screens: ICANN.org Case Study
Big Websites for Small Screens: ICANN.org Case Study
 
UX design for every screen
UX design for every screenUX design for every screen
UX design for every screen
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCamp LA 2011)
 
Intro to Drush
Intro to DrushIntro to Drush
Intro to Drush
 
Teaching Drupal
Teaching DrupalTeaching Drupal
Teaching Drupal
 
Big Websites
Big WebsitesBig Websites
Big Websites
 
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
Don't Design Websites. Design Web SYSTEMS! (DrupalCon Chicago 2011)
 
PHP for NonProgrammers (DrupalCon SF 2010)
PHP for NonProgrammers (DrupalCon SF 2010)PHP for NonProgrammers (DrupalCon SF 2010)
PHP for NonProgrammers (DrupalCon SF 2010)
 
Accelerated grid theming using NineSixty (DrupalCamp Dallas)
Accelerated grid theming using NineSixty (DrupalCamp Dallas)Accelerated grid theming using NineSixty (DrupalCamp Dallas)
Accelerated grid theming using NineSixty (DrupalCamp Dallas)
 
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
Accelerated grid theming using NineSixty (Drupal Design Camp Boston 2009)
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 

Building Responsive Websites and Apps with Drupal

  • 1. Building Responsive Websites and Apps with Drupal Dallas Drupal Days 2011 2011.07.09 - Dallas Drupal Days http://dallasdrupal.org/sessions/building-responsive-websites-and-apps- drupal
  • 2. What is Responsive? ‣ Responsive layouts are the original design on the web: http://naked.dustindiaz.com/ ‣ As screens got bigger, we got pickier about the look of a site on the desktop monitor
  • 3. What is Responsive? ‣ Now we deal with these: Credits: Aaron Stanush
  • 4. What is Responsive? ‣ Now we deal with these: Credits: Aaron Stanush
  • 5. What is Responsive? ‣ Not to mention these: Credits: http://j.mp/rethink-mobile
  • 6. So many browsers Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
  • 7. So many browsers ‣ Do you really have time to test for and cater to: Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
  • 8. So many browsers ‣ Do you really have time to test for and cater to: ‣ Chrome, Firefox, Safari, Opera, Internet Explorer 6-7-8-9-10, Symbian, iPhone, iPad, Android phones, Android tablets, RIM (Blackberry), Windows CE, Windows mobile, Windows Phone 7, Linux, bada, MeeGo, Brew OS Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
  • 9. So many browsers ‣ Do you really have time to test for and cater to: ‣ Chrome, Firefox, Safari, Opera, Internet Explorer 6-7-8-9-10, Symbian, iPhone, iPad, Android phones, Android tablets, RIM (Blackberry), Windows CE, Windows mobile, Windows Phone 7, Linux, bada, MeeGo, Brew OS ‣ ...boo Credits: http://en.wikipedia.org/wiki/Mobile_operating_system
  • 11. Forget about... ‣ User-agent detection + Separate mobile theme
  • 12. Forget about... ‣ User-agent detection + Separate mobile theme ‣ Separate subdomain / path + redirection
  • 13. Forget about... ‣ User-agent detection + Separate mobile theme ‣ Separate subdomain / path + redirection ‣ External services
  • 14. Forget about... ‣ User-agent detection + Separate mobile theme ‣ Separate subdomain / path + redirection ‣ External services ‣ These are alternatives, each with strengths and weaknesses. We don’t care about them today :)
  • 16. Go Responsive ‣ Use the front-end the way it wants to be used — as a versatile presentation layer
  • 17. Go Responsive ‣ Use the front-end the way it wants to be used — as a versatile presentation layer ‣ The layout of a website can shift and adapt to changes in screen size and device capability
  • 18. Go Responsive ‣ Use the front-end the way it wants to be used — as a versatile presentation layer ‣ The layout of a website can shift and adapt to changes in screen size and device capability ‣ CSS3 Media Queries JavaScript tools that adapt real-time Feature detection
  • 21. CSS Media Queries <plug> or check out http://fourkitchens.com </ plug>
  • 22. CSS Media Queries ‣ The spec: http://www.w3.org/TR/css3-mediaqueries/ <plug> or check out http://fourkitchens.com </ plug>
  • 23. CSS Media Queries ‣ The spec: http://www.w3.org/TR/css3-mediaqueries/ ‣ The buzz: http://www.alistapart.com/articles/responsive-web-design/ <plug> or check out http://fourkitchens.com </ plug>
  • 24. CSS Media Queries ‣ The spec: http://www.w3.org/TR/css3-mediaqueries/ ‣ The buzz: http://www.alistapart.com/articles/responsive-web-design/ ‣ The hotness: http://mediaqueri.es <plug> or check out http://fourkitchens.com </ plug>
  • 26. Basic Example <link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”>
  • 27. Basic Example <link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”> /* This CSS will always apply - global styles */ body {padding: 10px; } #container {width: 100%; margin: 0; } Do not use these in conjunction!
  • 28. Basic Example <link rel=”stylesheet” href=”this.css” media=”(min-width: 960px)”> /* This CSS will always apply - global styles */ body {padding: 10px; } #container {width: 100%; margin: 0; } /* This CSS will only apply when the window is 960px or greater */ @media screen and (min-width: 960px) { body {padding: 0; } #container {width: 960px; margin: 0 auto; } } Do not use these in conjunction!
  • 30. cool, but... ‣ IE 8 and below do not recognize media queries (weep not, more on this later)
  • 31. cool, but... ‣ IE 8 and below do not recognize media queries (weep not, more on this later) ‣ Don’t just pop open your existing stylesheets, wrap them in queries, and call it a day
  • 32. cool, but... ‣ IE 8 and below do not recognize media queries (weep not, more on this later) ‣ Don’t just pop open your existing stylesheets, wrap them in queries, and call it a day ‣ We need to mentally remove the line between mobile and desktop...
  • 33. cool, but... ‣ IE 8 and below do not recognize media queries (weep not, more on this later) ‣ Don’t just pop open your existing stylesheets, wrap them in queries, and call it a day ‣ We need to mentally remove the line between mobile and desktop... ‣ ...but don’t freak out. They’re just differently sized screens.
  • 35. Mobile First Approach ‣ aka Progressive Enhancement http://j.mp/rethink-mobile
  • 36. Mobile First Approach ‣ aka Progressive Enhancement ‣ Read, re-read, and bookmark (game changer) http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu http://j.mp/rethink-mobile
  • 37. Mobile First Approach ‣ aka Progressive Enhancement ‣ Read, re-read, and bookmark (game changer) http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu http://j.mp/rethink-mobile
  • 39. Progressive CSS ‣ No media query support is a media query http://j.mp/rethink-mobile
  • 40. Progressive CSS ‣ No media query support is a media query ‣ Target the least capable browser first http://j.mp/rethink-mobile
  • 41. Progressive CSS ‣ No media query support is a media query ‣ Target the least capable browser first ‣ Query for more functional browsers http://j.mp/rethink-mobile
  • 42. Progressive CSS ‣ No media query support is a media query ‣ Target the least capable browser first ‣ Query for more functional browsers ‣ More compatible than when you start with desktop styles and filter “down” to mobile version http://j.mp/rethink-mobile
  • 44. Feature Detection ‣ Not just limited to screen size http://www.modernizr.com/
  • 45. Feature Detection ‣ Not just limited to screen size ‣ Modernizr tests for the specific features you need http://www.modernizr.com/
  • 46. Feature Detection ‣ Not just limited to screen size ‣ Modernizr tests for the specific features you need ‣ More reliable than user-agent detection http://www.modernizr.com/
  • 47. Feature Detection ‣ Not just limited to screen size ‣ Modernizr tests for the specific features you need ‣ More reliable than user-agent detection ‣ Modular and lightweight, pick your tests: http://www.modernizr.com/download/ http://www.modernizr.com/
  • 49. Drupal Modules ‣ Responsive Images: http://drupal.org/project/responsive_images Mobile-first images
  • 50. Drupal Modules ‣ Responsive Images: http://drupal.org/project/responsive_images Mobile-first images ‣ Modernizr: http://drupal.org/project/modernizr Modernizr integration
  • 51. Drupal Modules ‣ Responsive Images: http://drupal.org/project/responsive_images Mobile-first images ‣ Modernizr: http://drupal.org/project/modernizr Modernizr integration ‣ Semantic Views: http://drupal.org/project/semanticviews Allows you to clean up your Views output sans templates
  • 52. Drupal Modules ‣ Responsive Images: http://drupal.org/project/responsive_images Mobile-first images ‣ Modernizr: http://drupal.org/project/modernizr Modernizr integration ‣ Semantic Views: http://drupal.org/project/semanticviews Allows you to clean up your Views output sans templates ‣ Responder: http://drupal.org/sandbox/rupl/1104416 Force module stylesheets into mobile-first approach
  • 53. Drupal Themes ‣ Omega: http://drupal.org/project/omega ‣ Flex: http://drupal.org/sandbox/zachattack/1104458
  • 55. Useful Libraries ‣ Respond.js - For I ncapabl E browsers https://github.com/scottjehl/Respond
  • 56. Useful Libraries ‣ Respond.js - For I ncapabl E browsers https://github.com/scottjehl/Respond ‣ Responsive-Images - Bandwidth savings for smaller screens https://github.com/filamentgroup/Responsive-Images
  • 57. Useful Libraries ‣ Respond.js - For I ncapabl E browsers https://github.com/scottjehl/Respond ‣ Responsive-Images - Bandwidth savings for smaller screens https://github.com/filamentgroup/Responsive-Images ‣ Adapt.js - JavaScript alternative to media queries. Built upon 960 Grid System https://github.com/nathansmith/adapt
  • 59. Front-end Performance ‣ Up to 97% of perceived mobile response time depends on the front-end... really http://www.webperformancetoday.com/2011/04/20/ desktop-vs-mobile-web-page-load-speed/
  • 60. Front-end Performance ‣ Up to 97% of perceived mobile response time depends on the front-end... really ‣ Your super-stack might serve requests quickly, but if you don’t request quickly, it still seems slow. http://www.webperformancetoday.com/2011/04/20/ desktop-vs-mobile-web-page-load-speed/
  • 62. Front-end Performance ‣ Cache HTML, internal and external if possible
  • 63. Front-end Performance ‣ Cache HTML, internal and external if possible ‣ Optimize CSS/JS
  • 64. Front-end Performance ‣ Cache HTML, internal and external if possible ‣ Optimize CSS/JS ‣ Move $scripts to the bottom of your templates
  • 65. Front-end Performance ‣ Cache HTML, internal and external if possible ‣ Optimize CSS/JS ‣ Move $scripts to the bottom of your templates ‣ Use responsive images, data URIs, and/or sprites
  • 68. Check your Work ‣ YSlow http://developer.yahoo.com/yslow/
  • 69. Check your Work ‣ YSlow http://developer.yahoo.com/yslow/ ‣ Page Speed http://code.google.com/speed/page-speed/docs/extension.html
  • 70. Thank You! chris@fourkitchens.com twitter.com/rupl http://drupal.org/user/411999 2011.07.09 - Dallas Drupal Days http://dallasdrupal.org/sessions/building-responsive-websites-and-apps-drupal
  • 71. All content in this presentation, except where noted otherwise, is Creative Commons Attribution- ShareAlike 3.0 licensed and copyright 2011 Four Kitchens, LLC.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n