Custom Elements are a feature of HTML that provide a way for you to build your own fully-featured DOM elements and use them in your HTML markup, CSS stylesheets, and JavaScript code
Custom Elements are natively supported in all browsers, but for browsers that don’t yet implement them natively, some support is available through the use of a JavaScript polyfill.
Latest changes in Javascript / Ecmascript 2017, allow you to easily create HTML custom elements in an OOP like fashion that makes your code clear and your HTML mark-up more intuitive.
See also:
- https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element
- https://developer.mozilla.org/en-US/docs/Web/Web_Components/Custom_Elements
- https://developers.google.com/web/fundamentals/web-components/customelements
For a gallery of available custom elements check out WebComponents