Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Single file Web Component
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Single File Web Component</title>
</head>
<body>
<template id=single-file>
<style>
h1 {
color: red;
}
</style>
<h1>Hello World</h1>
<script type=module>
class HelloWorld extends HTMLElement {
constructor () {
super()
const template = document.getElementById('single-file')
this.attachShadow({ mode: 'open' })
.appendChild(template.content.cloneNode(true))
}
connectedCallback () {
console.log('Why hello there 👋')
}
}
customElements.define('hello-world', HelloWorld)
</script>
</template>
<hello-world></hello-world>
<script>
const sf = document.getElementById('single-file')
document.body.appendChild(sf.content.lastElementChild)
</script>
</body>
</html>
@kristoferjoseph
Copy link
Author

kristoferjoseph commented Nov 2, 2021

@Westbrook That is very promising indeed. Thanks for the info!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment