Take a look at Ionic’s button component and modal component. ( Log Out /  Web components, sometimes mixed up with the Shadow DOM, are now available in Firefox v29+ under this flag – but they won’t be available to the average end-user. Recently I was working with a client to train their internal teams on how to build web applications. To really make sure that our HTML and CSS doesn’t adversely affect the consumer we sometimes resort to iframes. They’ll need to and they’ll end up cursing your name. This is how Lightning Web Components, the framework we build at Salesforce, does it: everything is prefixed by --lwc-. AJAX heavy sites have been dealing with this issue for a few years now and thankfully there are solutions out there. Update: Rob updated this article on March 5, 2014, getting everything up to date, as this is a rather fast-moving technology at the moment. One potential downside of classes is that they can also run into conflicts – for instance, if the user has dark and light classes already defined elsewhere in their CSS. The support table is here for the time being. That means the styles that you write always render as you intended, and your HTML is safe from the prying eyes of external JavaScript. Very interesting. You indicate that there is no support for this stuff in IE, but your non-Polymer CodePen works just great in IE 11. In fact, these are some of the variables I actually exposed in emoji-picker-element. The nice thing about the approach is that it gives you the ergonomics of Tailwind while avoiding hassle with tooling (purging CSS) as it constructs CSS based on usage. I love this sort of stuff! If you think about our