Quoting myself from another discussion, because just dropping this there doesn't allow for further discussion. Also I want to suggest a solution.
I'm afraid Flarum's CSS is a serious mess that doesn't implement any of the principles of extensibility that Flarum stands for. As impressed as I am with the backend architecture, I'm shocked at the lack thereof in the front-end, the way CSS is applied specifically. The sheer number of dead rules and uses of !important show that.
What I personally think would fit Flarum like a glove is this
- Harry Roberts' ITCSS - Inverted Triangle CSS architecture - https://itcss.io/
- Rico Sta Cruz' RSCSS - For naming conventions - https://rscss.io/
Please check out these resources as they do a really good job of explaining it, much better than I could in a post.
Having worked according to these principles for years, working with Flarum feels like a step back, comparable to switching from OOP programming to procedural.
Recently I asked about the Mithril version and it seems that there is some work being done on a overhaul of the front-end. I hope you will also take the CSS architecture into account.
To keep an ever developing CSS codebase that a bunch of different people contribute to managable, you're going to need an architecture that supports that. Right now every extension allows devs to append CSS and it's wild west from there.
This is my opinion ofcourse. Considering what Flarum is today and how it stands for extensibility, if I had to overhaul its front-end from scratch, this would be my way to go. My two cents.