OOCSS + SASS = The best way to CSS by Ian Storm Taylor.
I’ve been thinking about this very topic a ton lately. I love writing Sass, and OOCSS does in fact ring a bell with me, but there are little nuances here and there that bring up cons for each.
One that I’ve been dealing with over the past few projects is the deliverables being written in Sass, but the client only has a knowledge of CSS, and a good one at that. I’ve just been paid to build them a site that they likely assumed (and are correct in doing so) that they could tweak it down the line if they so wished. Throwing the curveball of having the style layer powered by Sass didn’t settle with me quite right. Before we get all “but the output is still CSS they can work from that” it’s more of the principle of the thing for me. It’s not a show-stopper and I don’t feel that this edge case should prevent me from taking advantage of the awesomeness Sass provides.
Much of the discussion on this topic surrounds the aspect of maintainability, and I think that’s great. However, most of us don’t really get bitten by that if our primary workload is client work. We very often build a site start to finish and maybe have a subsequent phase or two. Very rarely in those subsequent phases does anything change to the degree that we’re cursing our implementation method. We simply pivot a bit if necessary and use some different markup or some more specific CSS. We’re not dealing with a distributed application that needs to cooperate with the implemented entity as a whole.
But that’s where CSS really shines if we’re honest.
I’m still riding the coattails of SMACSS because this is exactly what I’m talking about. That book solidified my approach to CSS in many ways. Jonathan Snook’s system scales all the way up to working on Yahoo! Widgets that need to fit within that ecosystem as part of a machine larger than I could ever hope to work on. Bringing that intelligence down to our one-off client sites can really lift the load on our work and make our CSS work for us. A blend of OOCSS, SMACSS, and Sass (with Compass) might be the perfect ticket for me.