Quick Start
<head>
<script src="shadow-import/polyfills/webcomponents.min.js"></script>
<script src="shadow-import/shadow-import.js"></script>
<shadow-import tag="tag-name" href="template-url"></shadow-import>
</head>
<body>
<tag-name></tag-name>
</body>
Creating a ShadowComponent
my-component/view.html (this is the template-url
imported above)
<script src="component.js"></script>
<template>
<style>
:host {
/* add styles to the host tag here */
}
/* add all other styles for the HTML tag content here */
</style>
<!-- add HTML tag content here -->
</template>
my-component/component.js
ShadowComponent(function (cls, proto) {
proto.init = function () {
this.el.host; // refers to the host element (as imported, e.g.
// <tag-name></tag-name>)
this.el; // refers to the shadow root (contains the
// contents of <template></template>)
this.attrs; // manage attributes on the host element, usage:
// this.attrs.set(attrName, value)
// this.attrs.get(attrName, default)
// this.attrs.watch(attrName, function (newVal, oldVal) { ... })
this.content; // a DocumentFragment containing any content used in the tag,
// e.g. <tag-name><p>This content.</p></tag-name>
// To include this in your component, use:
// this.el.appendChild(this.content);
};
});