CSS suffers from the lack of composability and organizational features found in modern high level programming languages. If your excited about modern css features like "is" or "has", then you agree it needs more functions to keep up with customer demand.<p>I wrote a bit about this problem from the perspective of a clojure and clojurescript developer on my blog. <a href="https://drewverlee.github.io/posts-output/2021-8-26-css-optimizations" rel="nofollow">https://drewverlee.github.io/posts-output/2021-8-26-css-opti...</a><p>The reason, clojure and clojurescript is relevant is those programming languages can easily compile to css, allowing users to easily add pl features that don't exist in css and not force devs to learn the same concepts twice. It can do this becuase as a lisp, turning clojure native hashmaps into classes (or attributes if you prefer) is like pouring water into a container. We numerous libs to do this in the clojure ecosystem, here is a reddit discussion around the newest one: <a href="https://www.reddit.com/r/Clojure/comments/w56tg8/shadowcss_cssincljs/" rel="nofollow">https://www.reddit.com/r/Clojure/comments/w56tg8/shadowcss_c...</a><p>Though i would personally opt for the slower page perf and faster dev performance of just using cljs compiled to inline-styles solution, as i suggest in my blog.<p>Of course there might be performance benefits to coding at the lower css level directly, but on average that's not a good tradeoff for most teams i have worked on. s