HTML Modules - single file
<template id="tmpl">
<div>Custom element shadow tree content...</div>
</template>
<script type="module">
const importDoc = import.meta.document;
class myCustomElement extends HTMLElement {
constructor() {
super();
const shadowRoot = this.attachShadow({ mode: "open" });
const template = importDoc.getElementById("tmpl");
shadowRoot.appendChild(template.content.cloneNode(true));
}
}
window.customElements.define("myCustomElement", myCustomElement);
</script>