&gt; I hear this all the time but it&#x27;s hard to giving up the C in CSS, cascading.<p>Cascading in CSS is a bit of a love&#x2F;hate relationship.  Ultimately, it&#x27;s like subclassing - neat idea, and great when it works, but often you hate life when a change at the top level cascades down and you didn&#x27;t want it to.<p>At my previous workplace, we moved to be all about semantic markup, and our CSS matched that.  Class names were to be minimized, because the structure should tell you what you need to know.  (a few classes were required, but usually just to identify different top level items).  Cascading saw heavy use, and it was generally cleaner than the specificity battles we had in legacy code where semantics weren&#x27;t used, but it required a lot of discipline.<p>At my current workplace we&#x27;re using React and BEM for CSS.  Thus we avoid referencing element tags as much as possible and instead focus on very specific class names. BEM is, as far as I can tell, a means to avoid cascading as much as possible.  Currently none of our CSS is inline.  Not much discipline is required, but we have very little reuse (Sass provides some capability for reuse)<p>I tend to prefer my previous workplace&#x27;s version, but the two are making very different kinds of products with different needs (my former place is basically building a CMS product
and then marketing the output, whereas the current is a few single page web apps).<p>So in some scenarios cascading is an evil to be avoided, and in others it is a feature to exploit.