For styling, I'd look into CSS in JS, specifically JSS. Not only are all selectors scoped, you can create functions that return the proper styling. Frankly I think web developers as a whole need to rethink CSS and/or any paradigm based on traditional CSS like SASS/SCSS. We shouldn't need messy global variables like classes and ids to change styling.
Not to mention the usual arguments for CSS just don't make sense. CSS isn't decoupled, in fact the reliance on HTML classes and ids is extremely coupled. JSS can just be left in a separate file and imported wherever it needs to be used.
I'm currently using it in a pretty large project and it's been awesome. Having the CSS related to the component in the component is really nice (which is found in other frameworks). When refactoring you don't have to wonder what this class could be tied to since it's all right there. You also benefit from dead code elimination so unused CSS classes get removed.
Not to mention the usual arguments for CSS just don't make sense. CSS isn't decoupled, in fact the reliance on HTML classes and ids is extremely coupled. JSS can just be left in a separate file and imported wherever it needs to be used.