rockinhtml5withdrupal badcamp

70
Rockin’ HTML5 with DRUPAL BAD CAMP 2010

Upload: jen-simmons

Post on 12-May-2015

2.369 views

Category:

Technology


0 download

DESCRIPTION

It's time to start considering HTML5 for your next project. Many aspects of HTML5 work today, others are right around the corner. What is the state of browser support for HTML5? Why would you want to use it? And how in the world can you get Drupal to fully-output HTML5? (Some parts are quite easy. Others are not.) I'll talk about this and more, including how you can join the movement to transform Drupal into a HTML5-generating machine.

TRANSCRIPT

Page 1: Rockinhtml5withdrupal badcamp

Rockin’HTML5

with DRUPALBAD CAMP 2010

Page 2: Rockinhtml5withdrupal badcamp

Jen Simmonsdesigner, front-end developer

creating websites since HTML2made the Bartik theme for Drupal 7member of HTML5 Drupal Group

jensimmons.com

Page 3: Rockinhtml5withdrupal badcamp

These slides are already at:

jen.cm/h2

Page 4: Rockinhtml5withdrupal badcamp

HTML5What’s up with that?

Page 5: Rockinhtml5withdrupal badcamp

A SUPER-FAST HISTORY

Page 6: Rockinhtml5withdrupal badcamp

Tim Berners-Lee created HTML and invented the web.

“HTML Tags” in 1991

slides at: jen.cm/h2

Page 7: Rockinhtml5withdrupal badcamp

HTML Tags (TBL) 1991

HTML 2.0 (IETF) 1995

HTML 3.2 (W3C) 1997

HTML 4.0 (W3C) 1997

HTML 4.01 (W3C) 1999slides at: jen.cm/h2

Page 8: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 9: Rockinhtml5withdrupal badcamp
Page 10: Rockinhtml5withdrupal badcamp
Page 11: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 12: Rockinhtml5withdrupal badcamp

XHTML 1.0<div class="blog-post">

.blog-post {color:green

}

NOT<FONT COLOR=GREEN>

slides at: jen.cm/h2

Page 13: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

XHTML 1.1“text/html” mime-type not allowedbut IE can’t read the xml mime-type…

Page 14: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

XHTML 2if we knew then what we know now…

Page 15: Rockinhtml5withdrupal badcamp

Then some stu! happened.there was a meeting and this vote…

slides at: jen.cm/h2

Page 16: Rockinhtml5withdrupal badcamp

THE GREAT WEB STANDARDS / SEMANTICS SCHISM OF JUNE 2004

evolving XHTML1.0 + CSS + DOM (including javascript) + (later) Microformatsvs.replacing existing technology with XHTML2 + XForms + SVG + MathML + RDFa

slides at: jen.cm/h2

Page 17: Rockinhtml5withdrupal badcamp

W3C

XHTML 2

WHATWG

HTML5

HTML 5slides at: jen.cm/h2

Page 18: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

HTML5

Page 19: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

“Priority of Constituencies”users

authorsimplementors

specifierstheoretical purity

Page 20: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

DESIGN PRINCIPLES

Priority of Constituencies.Support existing content.Do not reinvent the wheel.Pave the Cowpaths.

Page 22: Rockinhtml5withdrupal badcamp

SO CAN WE USE HTML5 TODAY?

Page 23: Rockinhtml5withdrupal badcamp

YES.It was made with backwards and forwards compatibility in mind.

Page 24: Rockinhtml5withdrupal badcamp

Old BrowserNew Website

New BrowserOld Website

Must work both ways.

Page 25: Rockinhtml5withdrupal badcamp

HTML5 Semantics

(Yummy!)

Page 26: Rockinhtml5withdrupal badcamp

Simplified Document Head

<!DOCTYPE html>

<meta charset="utf-8" />

<script src="file.js"></script>

<link rel="stylesheet" href="file.css" />

Page 27: Rockinhtml5withdrupal badcamp

New Structural Elements

<section>

<header>

<hgroup>

<footer>

<aside>

<article>

<nav>

+ outlining

Page 28: Rockinhtml5withdrupal badcamp

Other New (or re-educated) Elements

<mark>

<time>

<pubdate>

<meter>

<progress>

<small>

<ruby>

+ more!

Page 29: Rockinhtml5withdrupal badcamp

*screenshot from HTML5 Now

Page 30: Rockinhtml5withdrupal badcamp

ARIA Roles

<header role="banner">

<div role="main">

div[role=main] { color:#999; }

Page 32: Rockinhtml5withdrupal badcamp

Introducing HTML5

Bruce Lawson & Remy Sharpintroducinghtml5.com

slides at: jen.cm/h2

Page 33: Rockinhtml5withdrupal badcamp

HTML5 NOW

Tantek Çelik

tantek.com/html5now

slides at: jen.cm/h2

Page 34: Rockinhtml5withdrupal badcamp

The Spec Itself

slides at: jen.cm/h2http://www.whatwg.org/html5

Page 35: Rockinhtml5withdrupal badcamp

DRUPAL+

HTML5

Page 36: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 37: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 38: Rockinhtml5withdrupal badcamp

HTML5 BASEdrupal.org/project/html5_base

slides at: jen.cm/h2

Page 39: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 40: Rockinhtml5withdrupal badcamp

HTML5 TOOLSdrupal.org/project/html5_tools

slides at: jen.cm/h2

Page 41: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 42: Rockinhtml5withdrupal badcamp

Drupal 6.19 + Basic

slides at: jen.cm/h2

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>d6.local</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="shortcut icon" href="/misc/favicon.ico" type="image/x-icon" /><link type="text/css" rel="stylesheet" media="all" href="/modules/node/node.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/modules/system/defaults.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/modules/system/system.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/modules/system/system-menus.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/modules/user/user.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/cck/theme/content-module.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/sites/all/modules/views/css/views.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/basic/css/default.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/basic/css/layout.css?T" /><link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/basic/css/style.css?T" /><link type="text/css" rel="stylesheet" media="print" href="/sites/all/themes/basic/css/print.css?T" /> <!--[if lte IE 6]><style type="text/css" media="all">@import "/sites/all/themes/basic/css/ie6.css";</style><![endif]--> <!--[if IE 7]><style type="text/css" media="all">@import "/sites/all/themes/basic/css/ie7.css";</style><![endif]--> </head>

Page 43: Rockinhtml5withdrupal badcamp

Drupal 6.19 + Basic + Tools

slides at: jen.cm/h2

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>d6.local</title> <link rel="shortcut icon" href="/misc/favicon.ico" type="image/x-icon" /><link rel="stylesheet" media="all" href="/modules/node/node.css?z" /><link rel="stylesheet" media="all" href="/modules/system/defaults.css?z" /><link rel="stylesheet" media="all" href="/modules/system/system.css?z" /><link rel="stylesheet" media="all" href="/modules/system/system-menus.css?z" /><link rel="stylesheet" media="all" href="/modules/user/user.css?z" /><link rel="stylesheet" media="all" href="/sites/all/modules/cck/theme/content-module.css?z" /><link rel="stylesheet" media="all" href="/sites/all/modules/views/css/views.css?z" /><link rel="stylesheet" media="all" href="/sites/all/themes/basic/css/default.css?z" /><link rel="stylesheet" media="all" href="/sites/all/themes/basic/css/layout.css?z" /><link rel="stylesheet" media="all" href="/sites/all/themes/basic/css/style.css?z" /><link rel="stylesheet" media="print" href="/sites/all/themes/basic/css/print.css?z" /> <!--[if lte IE 6]><style type="text/css" media="all">@import "/sites/all/themes/basic/css/ie6.css";</style><![endif]--> <!--[if IE 7]><style type="text/css" media="all">@import "/sites/all/themes/basic/css/ie7.css";</style><![endif]--> </head>

removed type="text/css"

Page 44: Rockinhtml5withdrupal badcamp

Drupal 6.19 + Base + Tools

slides at: jen.cm/h2

<!DOCTYPE html><html lang="en" dir="ltr" >

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>d6.local</title> <link rel="shortcut icon" href="/misc/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" media="all" href="/modules/node/node.css?G" /><link rel="stylesheet" media="all" href="/modules/system/defaults.css?G" /><link rel="stylesheet" media="all" href="/modules/system/system.css?G" /><link rel="stylesheet" media="all" href="/modules/system/system-menus.css?G" /><link rel="stylesheet" media="all" href="/modules/user/user.css?G" /><link rel="stylesheet" media="all" href="/sites/all/modules/cck/theme/content-module.css?G" /><link rel="stylesheet" media="all" href="/sites/all/modules/views/css/views.css?G" /><link rel="stylesheet" media="all" href="/sites/all/themes/html5_base/css/default.css?G" /><link rel="stylesheet" media="all" href="/sites/all/themes/html5_base/css/html5.css?G" /><link rel="stylesheet" media="all" href="/sites/all/themes/html5_base/css/layout.css?G" /><link rel="stylesheet" media="all" href="/sites/all/themes/html5_base/css/style.css?G" /><link rel="stylesheet" media="print" href="/sites/all/themes/html5_base/css/print.css?G" /> <!-- www.phpied.com/conditional-comments-block-downloads/ --> <!--[if IE]><![endif]--> <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> </head>

Page 45: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 46: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 47: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 48: Rockinhtml5withdrupal badcamp

HTML5 Forms

Page 49: Rockinhtml5withdrupal badcamp

HTML5 FORM API

<label for="favorite-cms">Your Favorite CMS</label>

<input id="favorite-cms" name="favorite-cms" type="text" placeholder="Drupal. What else?" />

Page 50: Rockinhtml5withdrupal badcamp

<label for="email">Email address</label><input id="email" name="email" type="email" />

<label for="website">Website </label><input id="website" name="website" type="url" />

<label for="phone">Phone number</label><input id="phone" name="phone" type="tel" />

<label for="number">How many?</label><input id="number" name="number" type="number" min="0" max="11" step="1" value="5"/>

Page 52: Rockinhtml5withdrupal badcamp

HTML5 FORMSdate picker

search box

number as a slider with a range

input type="color"

Page 53: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 54: Rockinhtml5withdrupal badcamp

HTML5 TOOLS+

ELEMENTS

slides at: jen.cm/h2

Page 55: Rockinhtml5withdrupal badcamp

HTML5 Video & Audio

Page 56: Rockinhtml5withdrupal badcamp

REALLY COOL.

Page 57: Rockinhtml5withdrupal badcamp

HTML5 Other APIs

Page 58: Rockinhtml5withdrupal badcamp

HTML5 APIsGeolocation

Communication APIs

Websockets

Web Workers

Web Storage

O"ine Applications

Page 59: Rockinhtml5withdrupal badcamp

slides at: jen.cm/h2

Page 60: Rockinhtml5withdrupal badcamp

PRO HTML5 PROGRAMMING

Peter Lubbers, Brian Albers and Frank Salim

slides at: jen.cm/h2

Page 61: Rockinhtml5withdrupal badcamp

HTML5 Resources

Page 62: Rockinhtml5withdrupal badcamp

http://diveintohtml5.org/slides at: jen.cm/h2

Page 63: Rockinhtml5withdrupal badcamp

http://html5doctor.com/slides at: jen.cm/h2

Page 65: Rockinhtml5withdrupal badcamp

Introducing HTML5

Bruce Lawson & Remy Sharpintroducinghtml5.com

slides at: jen.cm/h2

Page 66: Rockinhtml5withdrupal badcamp

HTML5 NOW

Tantek Çelik

tantek.com/html5now

slides at: jen.cm/h2

Page 67: Rockinhtml5withdrupal badcamp

PRO HTML5 PROGRAMMING

Peter Lubbers, Brian Albers and Frank Salim

slides at: jen.cm/h2

Page 68: Rockinhtml5withdrupal badcamp

The Spec Itself

slides at: jen.cm/h2http://www.whatwg.org/html5

Page 69: Rockinhtml5withdrupal badcamp

HTML5 + Drupal:Drupal HTML5 Group

IRC: #drupal-html5

HTML5 Tools (& issue queue)

HTML5 Base (& issue queue)

slides at: jen.cm/h2

Page 70: Rockinhtml5withdrupal badcamp

Jen Simmonstwitter: jensimmons

jensimmons.comirc: jensimmons

please comment at jen.cm/h2