--- WebComponentBase --- --- How to extend --- class MyEl extends WebComponentBase {... --- Attributes and properties --- Provides a callback when all attributes have been parsed: allAttributesChangedCallback, useful for waiting to handle all at once. allAttributesChangedCallback gets called with an object with JSON.parse attributes. The parser can be overrited by setting the function static parseAttributeValue(name, value) in the class extension class Default attribute values can be provided by setting the static defaultAttributeValue(name) function, so you can provide sensible fallback values. Properties are created from each observed attribute, with the same name element.getAttribute('attrName') === JSON.stringify(element.attrName) -- attributeChangedCallback override --- If you need special work done in attributeChangedCallback, you need to call "super.attributeChangedCallback(attrName, oldVal, newVal)" inside it -- Events --- Fire an event using this.emitEvent('event-name', {foo: 'bar'}); This can be listed for using, el.addEventListener;