Awesome
Ripple | Shadow DOM
Extends the rendering pipeline to append a shadow root before rendering a custom element. If the browser does not support shadow roots, it sets the host
/shadowRoot
pointers so that a component implementation depending on them works both in the context of a shadow root or without.