Workshop:
Introduction to Web Components & Polymer
John Riviello
@JohnRiv
Mid-Atlantic Developer Conference - July 13, 2018
Workshop materials are available at:
http://tinyurl.com/
mdc-polymer�-workshop
If you haven’t already, go there now :-)
WEB COMPONENTS
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
4
… a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps...
Source: https://www.webcomponents.org/introduction
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
5
… [built] on the Web Component standards, will work across modern browsers, and
can be used with any JavaScript library or framework that works with HTML.
Source: https://www.webcomponents.org/introduction
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
6
4 Specs
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
7
Custom Elements
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
8
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
9
Custom Elements
<paper-tabs selected="0" scrollable>� <paper-tab>The first tab</paper-tab>� <paper-tab>Tab two</paper-tab>� <paper-tab>The third tab</paper-tab>� <paper-tab>Fourth tab</paper-tab>�</paper-tabs>
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
10
HTML Imports
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
11
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
12
HTML Imports
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
13
Templates
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
14
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
15
JavaScript, which will quickly render the content
Templates
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
16
Shadow DOM
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
17
What Are Web Components?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
18
hide it from the document scope
<select>, <video>, & <input type="date">
Shadow DOM
Can we even use these things?
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
20
Source: https://www.webcomponents.org/
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
21
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
22
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
23
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
24
Source: https://developer.microsoft.com/en-us/microsoft-edge/platform/status/
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
25
Source: https://developer.microsoft.com/en-us/microsoft-edge/platform/status/
What’s
Google Polymer?
Google Polymer Project
Polymer 3.0
https://www.polymer-project.org/3.0/�docs/devguide/feature-overview
Let’s code!
Codelab:
Build Google Maps using
Web Components & No Code!
tinyurl.com/comcast-polymer-map
Codelab: Build Google Maps using Web Components & No Code!
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
34
Codelab URL: tinyurl.com/comcast-polymer-map
Relevant Map Data:
Takeaways!
Intro to Web Components & Polymer
Framework/Library Sizes (with GZIP compression)
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
36
Source: http://minime.stephan-brumme.com
React’s size is react + react-dom & gzipped via http://cnvyr.io/online
Polymer’s range is v2.6.0 with just polymer-element.html, to polymer.html without the legacy imports. Bundled, minified & gzipped.
113.7kb
57.2kb
29.2kb
30.4kb
12.8kb -
21.6kb
33.3kb
v3.0.0
v1.6.9
v3.3.1
v2.5.16
v2.6.0
v16.3.0
Break
Codelab: Build Google Maps using Web Components & No Code!
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
38
Back early? Try these BONUS challenges!
Codelab Part 2:
Build a Toast
Web Components & With Code!
tinyurl.com/comcast-toast
Let’s code!
Takeaways!
© Comcast
Source: https://github.com/Comcast/polaris
<script href="https://polaris.xfinity.com/polaris.js"></script>
�<xc-header
tab="myaccount"� is-authed="[[isAuthed]]"� login-url="/login"� sign-out-url="/logout"� first-name="[[openidData.given_name]]"� user-name="[[openidData.preferred_username]]">
</xc-header>��<xc-footer></xc-footer>
Other Frameworks for building Web Components
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
45
Skate JS
X-Tag
< >
X
X-Tag
Source: https://elix.org/
Intro to Web Components & Polymer
“Assemblers First, Craftspeople Second”
- Ben Issa, 2016 Polymer Summit
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
47
"Puzzle Pieces Jigsaw Piece Concept" is licensed under CC0 1.0 / Color adjusted from original
"Blacksmith Forging Smith Forger" is licensed under CC0 1.0 / Color adjusted from original
Useful Links
Workshop: Introduction to Web Components & Polymer - @JohnRiv - tinyurl.com/mdc-polymer-workshop
48
Thank you!
John Riviello
@JohnRiv