Web Components: What, Why, How, and When

57
@stopsatgreen WEB COMPONENTS What, Why, How, When #LWSROOTS, 24/11

Transcript of Web Components: What, Why, How, and When

Page 1: Web Components: What, Why, How, and When

@stopsatgreen

WEB COMPONENTS What, Why, How, When

#LWSROOTS, 24/11

Page 2: Web Components: What, Why, How, and When

@stopsatgreen

@stopsatgreen Peter Gasston

broken-links.com

Page 3: Web Components: What, Why, How, and When

@stopsatgreen

WEB COMPONENTS

Page 4: Web Components: What, Why, How, and When

@stopsatgreen

‘Demeaning’‘Condescending’

‘A bit silly’

Page 5: Web Components: What, Why, How, and When

@stopsatgreen

Page 6: Web Components: What, Why, How, and When

@stopsatgreen

Page 7: Web Components: What, Why, How, and When

@stopsatgreen

WHAT?

Page 8: Web Components: What, Why, How, and When

@stopsatgreen

“The component model for the Web.”

Page 9: Web Components: What, Why, How, and When

@stopsatgreen

A suite of technologies for making reusable UI controls or services.

Page 10: Web Components: What, Why, How, and When

@stopsatgreen

Fundamental change to the way we build the Web.

Page 11: Web Components: What, Why, How, and When

@stopsatgreen

Page 12: Web Components: What, Why, How, and When

@stopsatgreen

Page 13: Web Components: What, Why, How, and When

@stopsatgreen

Page 14: Web Components: What, Why, How, and When

@stopsatgreen® The Lego Group

Page 15: Web Components: What, Why, How, and When

@stopsatgreen

Custom Elements

Page 16: Web Components: What, Why, How, and When

@stopsatgreen

Shadow DOM

Page 17: Web Components: What, Why, How, and When

@stopsatgreen

HTML Imports

Page 18: Web Components: What, Why, How, and When

@stopsatgreen

Page 19: Web Components: What, Why, How, and When

@stopsatgreen

Templates

Page 20: Web Components: What, Why, How, and When

@stopsatgreen

WHY?

Page 21: Web Components: What, Why, How, and When

@stopsatgreen

Page 22: Web Components: What, Why, How, and When

@stopsatgreen

OOCSS BEM

Java Applets Dynamic Drive

React Ember

jQuery UI Bootstrap

Web Components

Page 23: Web Components: What, Why, How, and When

@stopsatgreen

W3C WHATWG

Page 24: Web Components: What, Why, How, and When

@stopsatgreen

Page 25: Web Components: What, Why, How, and When

@stopsatgreen

• jQuery : querySelector(), classList • Modernizr : @supports • Sass : --custom-properties()

Page 26: Web Components: What, Why, How, and When

@stopsatgreen

#extendthewebforward

http://extensiblewebmanifesto.org/

Page 27: Web Components: What, Why, How, and When

@stopsatgreen

<flex-carousel>

<prev-next><show-position>

<open-lightbox>

Page 28: Web Components: What, Why, How, and When

@stopsatgreenhttp://msdn.microsoft.com/library/ie/ms531426.aspx

Page 29: Web Components: What, Why, How, and When

@stopsatgreen

Page 30: Web Components: What, Why, How, and When

@stopsatgreen

Page 31: Web Components: What, Why, How, and When

@stopsatgreen

Page 32: Web Components: What, Why, How, and When

@stopsatgreen

meaningful naming + modularisation + encapsulation + sharing = web components

Page 33: Web Components: What, Why, How, and When

@stopsatgreen

HOW?

Page 34: Web Components: What, Why, How, and When

@stopsatgreen

<indiana-jones></indiana-jones>

document.registerElement('indiana-jones');

Page 35: Web Components: What, Why, How, and When

@stopsatgreen

proto = Object.create(HTMLElement.prototype); proto.whip = function(…); document.registerElement('indiana-jones', { prototype: proto });

indy = document.querySelector('indiana-jones');indy.whip();

Page 36: Web Components: What, Why, How, and When

@stopsatgreen

<button is="indiana-jones"></button>

proto = Object.create(HTMLButtonElement.prototype); proto.whip = function(…); document.registerElement('indiana-jones', { prototype: proto, extends: 'button' });

Page 37: Web Components: What, Why, How, and When

@stopsatgreen

Page 38: Web Components: What, Why, How, and When

@stopsatgreen

Page 39: Web Components: What, Why, How, and When

@stopsatgreen

var root = foo.createShadowRoot(); root.innerHTML = '<div>…</div>';

Page 40: Web Components: What, Why, How, and When

@stopsatgreen

<indiana-jones> <template id="doom">…</template> <script>…</script></indiana-jones>

Page 41: Web Components: What, Why, How, and When

@stopsatgreen

<link rel="import" href="button-super.htm">

Page 42: Web Components: What, Why, How, and When

@stopsatgreenhttp://leafletjs.com/

Page 43: Web Components: What, Why, How, and When

@stopsatgreen

<leaf-map lat="33.9186805" lon="8.1198406"></leaf-map>

<link rel="import" href="leaflet-map.htm">

Page 44: Web Components: What, Why, How, and When

@stopsatgreen

Everything

Useful

Useful & well-made Crap

http://en.wikipedia.org/wiki/Sturgeon%27s_law

Page 45: Web Components: What, Why, How, and When

@stopsatgreenhttp://addyosmani.com/first/

Page 46: Web Components: What, Why, How, and When

@stopsatgreenhttp://www.paciellogroup.com/blog/2014/09/web-components-punch-list/

Page 47: Web Components: What, Why, How, and When

@stopsatgreen

Page 48: Web Components: What, Why, How, and When

@stopsatgreen

Page 49: Web Components: What, Why, How, and When

@stopsatgreen

/path/to/library.min.js /path/to/a/library.min.js

Page 50: Web Components: What, Why, How, and When

@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">

Page 51: Web Components: What, Why, How, and When

@stopsatgreen

WHEN?

Page 52: Web Components: What, Why, How, and When

@stopsatgreen

Browser Custom Elements Shadow DOM HTML Imports Template

Who knows?

‘Under consideration’

✓ ✓ ✓ ✓ ✓ ✓

✓ ✓ ✓

http://jonrimmer.github.io/are-we-componentized-yet/

Page 53: Web Components: What, Why, How, and When

@stopsatgreen

Page 54: Web Components: What, Why, How, and When

Platform.js (polyfill)

Polymer Core Bosonic

Core Elements

Brick

Paper Elements

Elements

polymer-project.org | brick.mozilla.io | bosonic.github.io | webcomponents.org

Standard

Page 55: Web Components: What, Why, How, and When

@stopsatgreen

Web Components are for you to drive the future of the web.

Please drive responsibly.

Page 56: Web Components: What, Why, How, and When

@stopsatgreen

THE END

Page 57: Web Components: What, Why, How, and When

@stopsatgreen

Unless otherwise stated, all photos in this deck are copyright George Lucas or Mickey Mouse or

someone and used without permission.