SlideShare a Scribd company logo
@stopsatgreen 
WEB COMPONENTS 
What, Why, How, When 
#LWSROOTS, 24/11
@stopsatgreen 
@stopsatgreen 
Peter Gasston 
broken-links.com
@stopsatgreen 
WEB COMPONENTS
@stopsatgreen 
‘Demeaning’ 
‘Condescending’ 
‘A bit silly’
@stopsatgreen
@stopsatgreen
@stopsatgreen 
WHAT?
@stopsatgreen 
“The component model 
for the Web.”
@stopsatgreen 
A suite of technologies 
for making reusable UI 
controls or services.
@stopsatgreen 
Fundamental change to 
the way we build the Web.
@stopsatgreen
@stopsatgreen
@stopsatgreen
® The Lego Group @stopsatgreen
@stopsatgreen 
Custom Elements
@stopsatgreen 
Shadow DOM
@stopsatgreen 
HTML Imports
@stopsatgreen
@stopsatgreen 
Templates
@stopsatgreen 
WHY?
@stopsatgreen
@stopsatgreen 
Java Applets 
Dynamic Drive 
OOCSS 
BEM 
jQuery UI 
Bootstrap 
React 
Ember 
Web Components
@stopsatgreen 
W3C WHATWG
@stopsatgreen
@stopsatgreen 
• jQuery : querySelector(), classList 
• Modernizr : @supports 
• Sass : --custom-properties()
@stopsatgreen 
#extendthewebforward 
http://extensiblewebmanifesto.org/
@stopsatgreen 
<flex-carousel> 
<prev-next> 
<open-lightbox> 
<show-position>
http://msdn.microsoft.com/library/ie/ms531426.aspx @stopsatgreen
@stopsatgreen
@stopsatgreen
@stopsatgreen
@stopsatgreen 
meaningful naming 
+ modularisation 
+ encapsulation 
+ sharing 
= web components
@stopsatgreen 
HOW?
@stopsatgreen 
document.registerElement('indiana-jones'); 
<indiana-jones></indiana-jones>
@stopsatgreen 
proto = Object.create(HTMLElement.prototype); 
proto.whip = function(…); 
document.registerElement('indiana-jones', 
{ prototype: proto }); 
indy = document.querySelector('indiana-jones'); 
indy.whip();
@stopsatgreen 
<button is="indiana-jones"></button> 
proto = Object.create(HTMLButtonElement.prototype); 
proto.whip = function(…); 
document.registerElement('indiana-jones', { 
prototype: proto, 
extends: 'button' 
});
@stopsatgreen
@stopsatgreen
@stopsatgreen 
var root = foo.createShadowRoot(); 
root.innerHTML = '<div>…</div>';
@stopsatgreen 
<indiana-jones> 
<template id="doom">…</template> 
<script>…</script> 
</indiana-jones>
@stopsatgreen 
<link rel="import" href="button-super.htm">
http://leafletjs.com/ @stopsatgreen
<leaf-map lat="33.9186805" lon="8.1198406"></leaf-map> 
@stopsatgreen 
<link rel="import" href="leaflet-map.htm">
@stopsatgreen 
Everything 
Useful 
Useful & well-made Crap 
http://en.wikipedia.org/wiki/Sturgeon%27s_law
http://addyosmani.com/first/ @stopsatgreen
http://www.paciellogroup.com/blog/2014/09/web-components-punch-list/ @stopsatgreen
@stopsatgreen
@stopsatgreen
@stopsatgreen 
/path/to/library.min.js 
/path/to/a/library.min.js
@stopsatgreen 
<link rel="import" href="//foo.com/btn-a.htm"> 
<link rel="import" href="//bar.com/btn-b.htm"> 
<link rel="import" href="//baz.com/btn-c.htm">
@stopsatgreen 
WHEN?
Browser Custom Elements Shadow DOM HTML Imports Template 
@stopsatgreen 
✓ ✓ ✓ 
✓ ✓ ✓ 
Who knows? 
‘Under consideration’ 
✓ 
✓ 
✓ 
http://jonrimmer.github.io/are-we-componentized-yet/
@stopsatgreen
Polymer Core Bosonic 
Platform.js (polyfill) 
Core Elements 
Brick 
Paper Elements 
Elements 
Standard 
polymer-project.org | brick.mozilla.io | bosonic.github.io | webcomponents.org
@stopsatgreen 
Web Components are for you to 
drive the future of the web. 
Please drive responsibly.
@stopsatgreen 
THE END
@stopsatgreen 
Unless otherwise stated, all photos in this deck 
are copyright George Lucas or Mickey Mouse or 
someone and used without permission.

More Related Content

PDF
Fronted From Scratch - Supercharge Magento page speed
PDF
Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
PDF
Movable Type 5 : テーマの作成方法
PPT
Desenvolvimento web com jQuery Mobile
PDF
Future of Web Development
PDF
Django の認証処理実装パターン / Django Authentication Patterns
PDF
Embracing Capybara
PDF
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Fronted From Scratch - Supercharge Magento page speed
Beyond DOM Manipulations: Building Stateful Modules with Events and Promises
Movable Type 5 : テーマの作成方法
Desenvolvimento web com jQuery Mobile
Future of Web Development
Django の認証処理実装パターン / Django Authentication Patterns
Embracing Capybara
Djangoアプリのデプロイに関するプラクティス / Deploy django application

What's hot (20)

PDF
The Future of CSS with Web Components
PPTX
BOOM Performance
PDF
jQtouch, Building Awesome Webapps
PDF
Introduction to Backbone.js - DDD North
PDF
Our application got popular and now it breaks
PDF
jQuery UI and Plugins
KEY
关于 Html5 那点事
DOCX
“Good design is obvious. Great design is transparent.” — How we use Bootstrap...
PDF
Plugging into plugins
PPTX
J Query - Your First Steps
ODP
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
DOCX
programming
PDF
Nobody Wants Junior Engineers
PDF
Liferay + Wearables
PPT
jQuery For Beginners - jQuery Conference 2009
PPTX
Microdata semantic-extend
PDF
モバイル検索とアプリ
DOCX
Using HTML code to add page number and its output are there..
TXT
Jackie's porfolio edited
TXT
Calender
The Future of CSS with Web Components
BOOM Performance
jQtouch, Building Awesome Webapps
Introduction to Backbone.js - DDD North
Our application got popular and now it breaks
jQuery UI and Plugins
关于 Html5 那点事
“Good design is obvious. Great design is transparent.” — How we use Bootstrap...
Plugging into plugins
J Query - Your First Steps
Widgets: Making Your Site Great and Letting Others Help - WordCamp Victoria
programming
Nobody Wants Junior Engineers
Liferay + Wearables
jQuery For Beginners - jQuery Conference 2009
Microdata semantic-extend
モバイル検索とアプリ
Using HTML code to add page number and its output are there..
Jackie's porfolio edited
Calender
Ad

Similar to Web Components: What, Why, How, and When (17)

PDF
Web Components: The future of Web Application Development
PDF
Real World Web components
PPTX
An Introduction to Web Components
PDF
Introduction to Web Components
PDF
Your Future HTML: The Evolution of Site Design with Web Components
PDF
Web Components
PDF
Web Components and Modular CSS
PDF
Web Components With Rails
PDF
Polymer Web Framework - Swecha Boot Camp
PDF
Introduction to Web Components
PPTX
Rawnet Lightning Talk - Web Components
PPTX
Web components Introduction
PDF
Devoxx 2014-webComponents
PDF
Webcomponents v2
PDF
Web Components + Backbone: a Game-Changing Combination
PDF
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
PPTX
User-Customizable Web Components for Building One-Page Sites
Web Components: The future of Web Application Development
Real World Web components
An Introduction to Web Components
Introduction to Web Components
Your Future HTML: The Evolution of Site Design with Web Components
Web Components
Web Components and Modular CSS
Web Components With Rails
Polymer Web Framework - Swecha Boot Camp
Introduction to Web Components
Rawnet Lightning Talk - Web Components
Web components Introduction
Devoxx 2014-webComponents
Webcomponents v2
Web Components + Backbone: a Game-Changing Combination
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
User-Customizable Web Components for Building One-Page Sites
Ad

More from Peter Gasston (8)

PDF
CSS3 With A Safety Net - Sudweb 2012
PDF
CSS: The Boring Bits
PDF
The CSS of Tomorrow (Front Row 2011)
PDF
The CSS3 of Tomorrow (Version 2)
PDF
The Home of the Future: CSS Layouts
PDF
The CSS3 of Tomorrow
PDF
A Sensational Exposé With Bewildering Demonstrations
PDF
The Top 10 Best Biases
CSS3 With A Safety Net - Sudweb 2012
CSS: The Boring Bits
The CSS of Tomorrow (Front Row 2011)
The CSS3 of Tomorrow (Version 2)
The Home of the Future: CSS Layouts
The CSS3 of Tomorrow
A Sensational Exposé With Bewildering Demonstrations
The Top 10 Best Biases

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
KodekX | Application Modernization Development
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
KodekX | Application Modernization Development
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Programs and apps: productivity, graphics, security and other tools
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Machine learning based COVID-19 study performance prediction
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation theory and applications.pdf

Web Components: What, Why, How, and When