0
WordCamp Ottawa 2014
Build a Responsive WordPress Theme with
ZURBs Foundation 5 Framework.
Before we can code responsively,
we must understand the fundamentals.
Originally from WordCamp Montreal 2013
What the heck is
responsive web design?
Originally from WordCamp Montreal 2013
A website or app that responds to the
device that accesses it and delivers the
appropriate output for it.
Originally from ...
No pinch and zoom!
Originally from WordCamp Montreal 2013
One Site
to Rule
Them ALL!
Cheesy movie reference :)
Originally from WordCamp Montreal 2013
Why build responsively?
Originally from WordCamp Montreal 2013
“Day by day, the number of devices,
platforms, and browsers that need to
work with your site grows. Responsive
web design ...
Some basic stats ...
because I’m a marketing guy :)
Originally from WordCamp Montreal 2013
1 in every 5 people in the
world own a smartphone, and
1 in every 17 own a tablet
Updated from WordCamp Montreal 2013
28% of Internet
usage comes from a
mobile phone
Updated from WordCamp Montreal 2013
20% of Google
searches are being
performed on a
mobile device
Updated from WordCamp Montreal 2013
61% of people have
a better opinion of
brands when they
offer a good mobile
experience
Updated from WordCamp Montreal 2013
28.85% of all emails
are opened on mobile
phones, and 10.16%
are opened on tablets.
Updated from WordCamp Montreal 2013
Over $300 billion
mobile transactions
were made in 2013
This number is expected to
grow by a 100% for 2014
Updated from Wo...
We must build responsively,
the web depends on it!
Originally from WordCamp Montreal 2013
The basics of responsive web design
Originally from WordCamp Montreal 2013
Before you wireframe, design, or code ...
Think mobile first!
Originally from WordCamp Montreal 2013
consider ...
1
2
3
4
5
Originally from WordCamp Montreal 2013
here are a few media queries we target ...
Originally from WordCamp Montreal 2013
! ! /* iphone 3-4 (320 x 480) */
! ! @me...
Use a responsive framework
We use Foundation 5 by ZURB
Originally from WordCamp Montreal 2013
Why we chose Foundation
★ Designed for Mobile First!
★ Small, medium, and large 12-column grid
★ Rapid prototyping
★ Mobil...
It’s all about the grids!
Updated from WordCamp Montreal 2013
What you need to consider in the design phase
Image sizing
Stacking & Re-ordering of columns
Mobile Navigation
Originally ...
Design for mobile navigation
Toggle menu Off-canvas menuvs.
Originally from WordCamp Montreal 2013
Responsive Navigation: Optimizing for
Touch Across Devices
Adapting
Common Patterns
Read: Responsive Navigation: Optimizin...
Now that we covered the basics,
let’s look at the code ...
Originally from WordCamp Montreal 2013
But, you can download everything in the
framework in simple, vanilla CSS and JS
http://foundation.zurb.com/develop/downloa...
http://foundation.zurb.com/docs/sass.html
What you need to get started
★ Git
★ Ruby 1.9+
★ NodeJS
★ Bower
★ Compass
It’s e...
If it ain’t broke don’t fix it!
Get Reverie by ThemeFortress
You could build a WP Foundation theme from scratch but ...
Easy to hack
Most stable Foundation
WP theme
Child Starter Theme
Updated from WordCamp Montreal 2013
Of course there are other options
★ FoundationPress - http://foundationpress.olefredrik.com/
★ WP-Foundation - http://320p...
Starting a new project is as simple as
foundation new project_name
or get the reverie-child theme
https://github.com/miloh...
Child theme architecture
★ CSS directory - compiled SCSS files
★ SCSS directory
★ config.rb - required for compass to comp...
Getting setup
/*
Theme Name: Theme Name
Description: Child theme for the Reverie
Author: Brendan & Brendan Inc.
Template: ...
Getting setup
//
// FOUNDATION SETTINGS
//
// This is the default html and body font-size for the base rem value.
// $rem-...
Getting setup - optional
// FONT-STACK //
$main-font: 'OpenSans';
// LINK COLORS //
$normal : #282828;
$hover : #111111;
$...
Foundation 5 Markup
<?php get_header(); ?>
<!-- Row for main content area -->
! <div class="small-12 large-8 columns" id="...
Foundation 5 Markup
$recent_posts = new WP_Query( $args );
if ( $recent_posts ) { ?>
<div class="row full-row">
<?php whil...
Some Examples
Some Examples
Some Examples
Some Examples
If you’re in Montreal in May come check out ...
http://www.thebrendans.com/events-workshops/
Want to join the team?
Check our internship program
http://www.thebrendans.com/internships/
Want to join the team?
Check our internship program
Thank You!
www.TheBrendans.com
www.KeepMarketingFun.com
@TheBrendans
www.facebook.com/thebrendans
@digibomb
Upcoming SlideShare
Loading in...5
×

Build a Responsive Theme in WordPress with ZURBs Foundation 5 Framework

7,907

Published on

Responsive design is becoming an expected standard for web developers. Your website or blog needs to look good and function on all screens and devices all the time, and just choosing a “responsive” WordPress theme isn’t always the best choice. In this session you’ll learn how easy it is to integrate foundation.css into your WordPress theme and how to get added functionality from their jQuery and zepto libraries. We’ll also dive into the css to understand how “responsivity” works.

Published in: Technology, Business
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,907
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
117
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Transcript of "Build a Responsive Theme in WordPress with ZURBs Foundation 5 Framework"

  1. 1. WordCamp Ottawa 2014 Build a Responsive WordPress Theme with ZURBs Foundation 5 Framework.
  2. 2. Before we can code responsively, we must understand the fundamentals. Originally from WordCamp Montreal 2013
  3. 3. What the heck is responsive web design? Originally from WordCamp Montreal 2013
  4. 4. A website or app that responds to the device that accesses it and delivers the appropriate output for it. Originally from WordCamp Montreal 2013
  5. 5. No pinch and zoom! Originally from WordCamp Montreal 2013
  6. 6. One Site to Rule Them ALL! Cheesy movie reference :) Originally from WordCamp Montreal 2013
  7. 7. Why build responsively? Originally from WordCamp Montreal 2013
  8. 8. “Day by day, the number of devices, platforms, and browsers that need to work with your site grows. Responsive web design represents a fundamental shift in how we’ll build websites for the decade to come.” - Jeffrey Veen Jeffrey Veen is the author of "The Art and Science of Web Design" Originally from WordCamp Montreal 2013
  9. 9. Some basic stats ... because I’m a marketing guy :) Originally from WordCamp Montreal 2013
  10. 10. 1 in every 5 people in the world own a smartphone, and 1 in every 17 own a tablet Updated from WordCamp Montreal 2013
  11. 11. 28% of Internet usage comes from a mobile phone Updated from WordCamp Montreal 2013
  12. 12. 20% of Google searches are being performed on a mobile device Updated from WordCamp Montreal 2013
  13. 13. 61% of people have a better opinion of brands when they offer a good mobile experience Updated from WordCamp Montreal 2013
  14. 14. 28.85% of all emails are opened on mobile phones, and 10.16% are opened on tablets. Updated from WordCamp Montreal 2013
  15. 15. Over $300 billion mobile transactions were made in 2013 This number is expected to grow by a 100% for 2014 Updated from WordCamp Montreal 2013
  16. 16. We must build responsively, the web depends on it! Originally from WordCamp Montreal 2013
  17. 17. The basics of responsive web design Originally from WordCamp Montreal 2013
  18. 18. Before you wireframe, design, or code ... Think mobile first! Originally from WordCamp Montreal 2013
  19. 19. consider ... 1 2 3 4 5 Originally from WordCamp Montreal 2013
  20. 20. here are a few media queries we target ... Originally from WordCamp Montreal 2013 ! ! /* iphone 3-4 (320 x 480) */ ! ! @media only screen and (min-device-width:320px) and (max-device-width: 480px) and (orientation:portrait) { ! ! } ! ! @media only screen and (min-device-width:320px) and (max-device-width: 480px) and (orientation:landscape) { ! ! } ! ! /* iphone 5 (320 x 568) */ ! ! @media only screen and (min-device-width:320px) and (max-device-width: 568px) and (orientation:portrait) { ! ! }!! ! ! @media only screen and (min-device-width:320px) and (max-device-width: 568px) and (orientation:landscape) { ! ! } ! ! /* ipad (768 x 1024) */ ! ! @media only screen and (min-device-width:768px) and (max-device-width: 1024px) and (orientation:portrait) { ! ! } */
  21. 21. Use a responsive framework We use Foundation 5 by ZURB Originally from WordCamp Montreal 2013
  22. 22. Why we chose Foundation ★ Designed for Mobile First! ★ Small, medium, and large 12-column grid ★ Rapid prototyping ★ Mobile visibility elements ★ Mobile navigation - toggle or off-canvas ★ Font icon library ★ Powerful jQuery and Zepto libraries ★ Foundation is developed in Sass ★ Most importantly an existing WP theme Updated from WordCamp Montreal 2013
  23. 23. It’s all about the grids! Updated from WordCamp Montreal 2013
  24. 24. What you need to consider in the design phase Image sizing Stacking & Re-ordering of columns Mobile Navigation Originally from WordCamp Montreal 2013
  25. 25. Design for mobile navigation Toggle menu Off-canvas menuvs. Originally from WordCamp Montreal 2013
  26. 26. Responsive Navigation: Optimizing for Touch Across Devices Adapting Common Patterns Read: Responsive Navigation: Optimizing for Touch Across Devices by Luke WroblewskiOriginally from WordCamp Montreal 2013
  27. 27. Now that we covered the basics, let’s look at the code ... Originally from WordCamp Montreal 2013
  28. 28. But, you can download everything in the framework in simple, vanilla CSS and JS http://foundation.zurb.com/develop/download.html We do it in Sass
  29. 29. http://foundation.zurb.com/docs/sass.html What you need to get started ★ Git ★ Ruby 1.9+ ★ NodeJS ★ Bower ★ Compass It’s easier than it looks Step by step instructions
  30. 30. If it ain’t broke don’t fix it! Get Reverie by ThemeFortress You could build a WP Foundation theme from scratch but ...
  31. 31. Easy to hack Most stable Foundation WP theme Child Starter Theme Updated from WordCamp Montreal 2013
  32. 32. Of course there are other options ★ FoundationPress - http://foundationpress.olefredrik.com/ ★ WP-Foundation - http://320press.com/wp-foundation/ ★ JointsWP - http://jointswp.com/ ★ Reactor - http://awtheme.com/ ★ ZurbPress - http://zurbpress.wpprofs.com/ to name a few ...
  33. 33. Starting a new project is as simple as foundation new project_name or get the reverie-child theme https://github.com/milohuang/reverie-child
  34. 34. Child theme architecture ★ CSS directory - compiled SCSS files ★ SCSS directory ★ config.rb - required for compass to compile project ★ style.css - to register child theme in WordPress the rest is up to you
  35. 35. Getting setup /* Theme Name: Theme Name Description: Child theme for the Reverie Author: Brendan & Brendan Inc. Template: reverie-master */ /* This is the CSS file loaded by WordPress in backend, * it will not be loaded in the frontend. * Go to the css/ folder and find style.css, * this is the CSS file loaded by WordPress in frontend. * Using Sass/Scss? Find the style.scss under scss/ folder. * http://themefortress.com/reverie */ style.css 1
  36. 36. Getting setup // // FOUNDATION SETTINGS // // This is the default html and body font-size for the base rem value. // $rem-base: 16px; // Allows the use of rem-calc() or lower-bound() in your settings @import "foundation/functions"; // Grid // $include-html-grid-classes: $include-html-classes; $row-width: rem-calc(1140); $column-gutter: rem-calc(30); _settings.scss 2 Load functions Customize Foundation first few lines ...
  37. 37. Getting setup - optional // FONT-STACK // $main-font: 'OpenSans'; // LINK COLORS // $normal : #282828; $hover : #111111; $active : #cccccc; $visited: #aaaaaa; $focus: #222222; architecture.scss 3 Set global variables Custom mixins // FONT SMOOTHING MIXIN // @mixin font-smoothing($value: on) { ! @if $value == on { ! ! -webkit-font-smoothing: antialiased; ! ! -moz-osx-font-smoothing: grayscale; ! } ! @else { ! ! -webkit-font-smoothing: subpixel-antialiased; ! ! -moz-osx-font-smoothing: auto; ! } } .menu { @include font-smoothing(on); } Then we include it like this
  38. 38. Foundation 5 Markup <?php get_header(); ?> <!-- Row for main content area --> ! <div class="small-12 large-8 columns" id="content" role="main"> ! ! <?php /* Start loop */ ?> ! <?php while (have_posts()) : the_post(); ?> ! ! <article <?php post_class() ?> id="post-<?php the_ID(); ?>"> ! ! ! <header> ! ! ! ! <h1 class="entry-title"><?php the_title(); ?></h1> ! ! ! ! <?php reverie_entry_meta(); ?> ! ! ! </header> ! ! ! <div class="entry-content"> ! ! ! ! <?php the_content(); ?> ! ! ! </div> ! ! </article> ! <?php endwhile; // End the loop ?> ! </div> ! <?php get_sidebar(); ?>! <?php get_footer(); ?> page.php Grid classes
  39. 39. Foundation 5 Markup $recent_posts = new WP_Query( $args ); if ( $recent_posts ) { ?> <div class="row full-row"> <?php while ( $recent_posts->have_posts() ) : $recent_posts->the_post(); $post_id = get_the_ID(); if ( get_the_post_thumbnail( $post_id ) ) { ?> <div class="large-4 columns text-center pad-row"> <a class="fade" href="<?php the_permalink(); ?>"> ! <?php the_post_thumbnail( 'masonry-thumbnail' ); ?> <div class="row"> ! <div class="large-12 columns tags-box"> ! ! <p class="thumb-title"><?php the_title(); ?></p> ! ! <p class="thumb-tag"><?php the_tags(); ?></p> ! </div> </div> </a> </div> functions.php - a snippet using masonry Call Foundation classes from anywhere Credit @isotrope
  40. 40. Some Examples
  41. 41. Some Examples
  42. 42. Some Examples
  43. 43. Some Examples
  44. 44. If you’re in Montreal in May come check out ... http://www.thebrendans.com/events-workshops/
  45. 45. Want to join the team? Check our internship program
  46. 46. http://www.thebrendans.com/internships/ Want to join the team? Check our internship program
  47. 47. Thank You! www.TheBrendans.com www.KeepMarketingFun.com @TheBrendans www.facebook.com/thebrendans @digibomb
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×