• Describes how to approach site design and
development
• No GitHub repo, not a library, not a framework, no
tools
• Techniques can be applied to static CSS, Sass,
React, Web Components, etc.
Slide 19
Slide 19 text
What does it mean
to be modular?
Slide 20
Slide 20 text
A module is “each of a set of
standardized parts or independent
units that can be used to construct
a more complex structure.”
–Dictionary
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
What hurdles are
there to being truly
independent?
HTML
CSS
JavaScript
HTML
CSS
JavaScript
HTML
CSS
JavaScript
Slide 80
Slide 80 text
The Future is
Web Components?
Slide 81
Slide 81 text
• Templates
• Shadow DOM
• Custom Elements
• HTML Imports
Slide 82
Slide 82 text
var p = document.createElement(‘p');
p.createShadowRoot();
p.shadowRoot.innerHTML = 'HTML Contents';
document.body.appendChild(p);
Slide 83
Slide 83 text
• The Cascade no longer applies
• Inheritance still applies
(unless you use all:initial)
Slide 84
Slide 84 text
No content
Slide 85
Slide 85 text
HTML
CSS
JavaScript
Slide 86
Slide 86 text
HTML
CSS
JavaScript
component.html
Slide 87
Slide 87 text
Slide 88
Slide 88 text
Slide 89
Slide 89 text
// Creates a MediaObjectElement class
// that extends HTMLElement.
class MediaObjectElement extends HTMLElement {
createdCallback() {
var shadowRoot = this.createShadowRoot();
shadowRoot.innerHTML = 'Shadow DOM contents...';
}
}
// Registers the `` element for use.
document.registerElement('custom-element',
MediaObjectElement);
Slide 90
Slide 90 text
• Likely a year before all browsers support
everything.
• JavaScript Dependent
• Phillip Walton’s Talk on Modular CSS with Web
Components
http://snk.ms/27
Slide 91
Slide 91 text
• Think about standardized and modular design.
• Frameworks like React can help.
• Web Components are coming. (So is winter.)