As I understand it, the original Custom Elements
concept had a crystalline form: attach a class to a tag-name.
Using the yet-to-be ES6 syntax, it would look something like this:
class MyElement extends HTMLElement {
constructor() {
}
doStuff() {
}