Peter Lubbers
Program Manager
Google Chrome Developer Relations
Markup and forms
Pave the cowpaths.
^((?>[a-zA-Z\d!#$%&\'*+\-/=?^_`{|}~]+\x20*|\"((?=[\x01-\x7f])[^\"\\] |\\[\x01-\x7f])*\"\x20*)*(?<))?((?!\.)(?>\.?[a-zA-Z\d!#$% &\'*+\-/=?^_\`{|}~]+)+|\"((?=[\x01-\x7f])[^\"\\]|\\[\x01-\x7f])*\")@((( ?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25 [0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01- \x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
<form> <input type=email name=email required> </form>
:invalid {background-color: #ffdddd;} :valid {background-color: #ddffdd;}
<details> <summary>More information</summary> <p>More, detailed information goes here</p> </details>
Here is some more, detailed information that is probably boring for most people, but super handy for others.
details[open] { border: 3px solid paleturquoise; border-radius:8px; }
Template contains inert markup intended to be used later:
<template id="mytemplate"> <img src="" alt="great image"> <div class="comment"></div> </template>
Appending inert DOM to a node makes it go "live":
var t = document.querySelector('#mytemplate'); t.content.querySelector('img').src = 'http://...'; document.body.appendChild(t.content.cloneNode(true));
Note: Work directly with the DOM, content is parsed, not rendered.
Rich graphics and animation
Offline web apps
CACHE MANIFEST # version 2011-07-012 06:06:44 CACHE: # html files cache.html index.html # css files css/style.css # image files apple-touch-icon.png favicon.ico img/fallback.png FALLBACK: / /demo/fallback.html NETWORK: * # Although it was removed from the spec, some browsers still require server configuration (mime type for *.appcache)
<doctype html> <html class="no-js" lang="en" manifest="manifest.appcache">
Responsive design
Touch input
"Responsive input" and simultaneous interactions using both mouse/trackpad and touchscreen
Pointer events specification: goo.gl/fAAdp
Beyond touch
Developing HTML5
IF UX NOT CODE, NO GOOD AT WEB.
CTRL + SHIFT + I (Windows) or CMD + OPTION + I (Mac)
Final notes
First and largest HTML5 Meetup in the world
Free monthly events (professionally recorded)
Tune in to the Chrome Developers Channel (live and recorded)!
Udacity's HTML5 Game Programming course (CS255)