The most widely practised, and certainly most widely lauded of the existing approaches I looked at was OOCSS. That was the first approach that I utilised when trying to wrestle my ever growing CSS codebase.
One of the principal arguments for an OOCSS approach is that it removes duplication of code and therefore results in a more maintainable CSS codebase. In essence, you build a set of CSS Lego pieces you can then use in your HTML/templates to quickly build out designs. The hope is that once your OOCSS styles are written they shouldn't grow (much). You re-use where possible and extend where needed.
Before we look at OOCSS I need to get some caveats out there.
This isn't an attack on OOCSS, Atomic CSS or any related Single Responsibility Principle (SRP) approaches. It's merely my argument that a different approach, depending upon your goals can offer a preferential outcome.
I'm not suggesting that the approach I advocate is a panacea to all CSS scaling problems. It is not (there are...