$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTML5: Introduction
Search
Guille Paz
November 02, 2012
Programming
8
350
HTML5: Introduction
Guille Paz
November 02, 2012
Tweet
Share
More Decks by Guille Paz
See All by Guille Paz
The Road to Node
pazguille
0
240
No me robes el Scroll!
pazguille
0
250
User First
pazguille
1
200
#OfflineFirst
pazguille
3
5.9k
ES6 in Production
pazguille
10
3.1k
No me hagas esperar!
pazguille
1
170
CSS Sprites vs. Data URIs
pazguille
0
440
Hello, Style Guides!
pazguille
0
270
Decoupling your JavaScript
pazguille
0
180
Other Decks in Programming
See All in Programming
ゲームの物理 剛体編
fadis
0
330
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
340
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
20k
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
370
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
関数実行の裏側では何が起きているのか?
minop1205
1
680
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
370
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
570
AIコーディングエージェント(Gemini)
kondai24
0
200
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
140
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
6
2.1k
Featured
See All Featured
Side Projects
sachag
455
43k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Scaling GitHub
holman
464
140k
The Language of Interfaces
destraynor
162
25k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Optimizing for Happiness
mojombo
379
70k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
How STYLIGHT went responsive
nonsquared
100
6k
Agile that works and the tools we love
rasmusluckow
331
21k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Rails Girls Zürich Keynote
gr2m
95
14k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
HTML5 Everything changes...
HTML5 is awesome!
HTML 4 <h2>Título de un artículo</h2> <p> <strong>Había una vez...<strong>
un ninja que <em>estaba sólo</em>. </p>
HTML5 <h2>Título de un artículo</h2> <p> <strong>Había una vez...<strong> un
ninja que <em>estaba sólo</em>. </p>
HTML5 <h2>Título de un artículo</h2> <p> <strong>Había una vez...<strong> un
ninja que <em>estaba sólo</em>. </p>
Thanks!
HTML5 is awesome!
HTML5 HTML CSS JavaScript
Collection of tools • Semantics • Offline & Storage •
Devices Access • Connectivity • Multimedia • 3D, Graphics & Effects • Performance & Integration
Semantics & Markup
Semantics • More meaningful elements • Better semantic tags and
attributes • Semantic structure • Microdata / Microformats • ARIA attributes • New form types • More simple and cool
Doctype
Doctype • Switch the content into standards mode • Prevent
quirks mode • Case-insensitive
<!DOCTYPE html PUBLIC"-/ /W3C/ /DTD XHTML 1.0 Transitional/ /EN""http:/ /www.w3.org/TR/xhtml1/
DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC"-/ /W3C/ /DTD XHTML 1.0 Transitional/ /EN""http:/ /www.w3.org/TR/xhtml1/
DTD/xhtml1-transitional.dtd">
<!DOCTYPE html>
Better semantic tags
HTML 4
HTML5
Custom data attribute
Custom data attribute data-* inside HTML elements Parse them using
JavaScript (getAttribute method) * = custom attributes: user, name, phone, id, chico, meli, etc...
data-* <a id="CATEG:1039" href="/camaras">Cámaras</a>
data-* <a data-id="CATEG:1039" href="/camaras">Cámaras</a>
Mircrodata • Semantic attributes and properties • Search engines, Web
crawlers, Browsers • Provide a richer browsing experience for users
<p itemscope> I’m going to the <a itemprop="url" href="http:/ /www.saltercane.com/">Salter
Cane</a> gig <data itemprop="date" datetime="2010-07-18">next week</data>. Excited!</p>
ARIA
ARIA attributes • Improve the accessibility of RIAs • JavaScript
components • Helps with dynamic content • Semantic attributes and properties: • roles (tree, navigation, presentation) • properties (aria-selected, aria-hidden)
<a href=”/buy” role=”button”>Comprar</a>
<div role=”tooltip”>For Nerds, by Nerds</div>
Forms
New forms • Semantic types and attributes • Mobile compatibility
• Validation engine • Custom patterns • More control
<input type=”email”> <input type=”tel”>
<input type=”date”> <input type=”range”> <input type=”color”>
<input type=“text” placeholder=”Search Bookmarks and His”> <input type=“text” required=“required”>
Offline & storage
Web Storage • Local storage / Session storage • IndexedDB
• Application Cache (offline apps)
Local Storage • JavaScript API • Cliente-side database • Key-value
notation (JSON) • Stored in users browsers • 5 MB (per domain) • the data persists (after the browser is shutdown or the session is closed)
<ul id="tree1" role="tree" tabindex="0" aria-labelledby="label_1"> <li role="treeitem" tabindex="-1" aria- expanded="true">Fruits</li>
<li role="group"> <ul> <li role="treeitem" tabindex="-1">Oranges</li> <li role="treeitem" tabindex="-1">Pineapples</li> ... </ul> </li> </ul>
Session Storage = Local Storage
limited to the time span where the current window is
open once the window is shut will be invalid Session Storage = Local Storage
IndexDB
IndexDB • Web SQL database must die! • Object Store
• http://www.html5rocks.com/en/ tutorials/indexeddb/todo/
AppCache
AppCache • Offline First • Chache manifest (*.appcache => file)
• Load from local cache (HTML, CSS, JS and images) • mimetype: text/cache-manifest • 5MB (chrome = unlimitedStorage) • window.applicationCache
<html manifest="chico.appcache"> CACHE MANIFEST # v0.11 CACHE: versions/latest/chico.css versions/latest/jquery.js versions/latest/chico.js
src/assets/ninja.png NETWORK: *
Device Access
Device Access • Geolocation API • Camera / Microphone •
Local Data (contacts and events) • Device Orientation • Device Motion • Vibration • Notification
Device Access • Geolocation API • Camera / Microphone •
Local Data (contacts and events) • Device Orientation • Device Motion • Vibration • Notification
Connectivity
Connectivity • Web Sockets • Server-sent events • Real time
Web Sockets • JavaScript API • Real time connections •
Bi-directional communications
Who is using Web Sockets? • Facebook (chat, notifications, comments)
• Gmail • Twitter
Multimedia
Multimedia •Video •Audio
Who is using Multimedia? • Youtube • Vimeo • GrooveShark
Video Audio
None
3D, Graphics, Effects
3D, Graphics, Effects • SVG • Canvas • WebGL •
CSS3 3D
SVG • Scalable Vector Graphic • Language for rich graphical
content like as: • Pie charts, • Two-dimensional graphs
<svg id="svgelem" height="200" xmlns="http:/ /www.w3.org/2000/ svg"> ! <circle id="redcircle" cx="50"
cy="50" r="50" fill="red" /> </svg>
Canvas • HTML Element • Draw graphics (with JavaScript) •
Control every pixel
Canvas
WebGL • Web-based Graphics Library • Interactive 3D graphics •
Canvas 3D • JavaScript API
http:/ /helloracer.com/webgl/ WebGL
Performance & Integration
Performance & Integration •Web Workers •XMLHttpRequest2
Web Workers •JavaScript API •Load JS file dynamically •Process code
in a background •Multi JavaScript thread
XMLHttpRequest2 •Ajax •Uploading progress events (progress tag) •Working with files
(file system api) •FormData •CORS (cross domain request)
CSS3
CSS3 • Transitions • Animations • Transforms • Gradients •
Rounded corners • Flexible Box Model • Multi-column Webfonts Text wrapping Columns Opacity Backgrounds CSS selectors Shadows
Transforms, Transitions and Animations http:/ /leaverou.github.com/animatable/ http:/ /cubic-bezier.com/#.17,.67,.83,.67
Gradients btn.primary { background-image: linear-gradient(top, #BACDFF, #4055A5 3%, #283077); }
Rounded corners btn.primary { border-radius: 5px; }
CSS selectors p:nth-child(3) { } input:checked { } p:first-of-type {
} p ~ ul { }
Thanks!