By and large "OOCSS" is nonsense! There is no such thing as an "object" in CSS land. Its just another layer of abstraction on something thats quite simple; use common sense when structuring your CSS, componentise your CSS but don't tie it to each other. That last bit is exactly what you're doing with OOCSS. It will cause you major problems when things change if you have lots of things depending on the structure. Its too high risk on big projects when you got clients that can change their minds in a second.

Its one of those paper world ideas (like SCRUM HAHAHA) that's great in 2D but in the 3D world (real world) it will cause you issues eventually.

I've started using ITCSS by Harry Roberts (and namespacing my css) which is just a way to structure your CSS projects - It's great check it out. He has an Objects layer and a Component layer . What he says about the object layer is "it maybe used in any number of unrelated contexts to the one you can currently see it in. Making modifications to these types of classes could potentially have knock-on-effects in a lot of other unrelated places. Tread carefully"

He's right, the idea of OOCSS is sound but its being executed wrongly. What I do is stick everything into a component which is its own file and use BEM naming conventions. That file relies on nothing else in my css so is sandboxed off and not tied to any other "component". I can take that file drop it right into another project and its good to go.

I can't necessarily do that with OOCSS. id have to take the "object" (lol) code and the component code and have both object classes and component classes on my elements. Then unpick stuff from the objects layer that I don't require on this other project. Its like spaghetti again, no thanks.

I don't give a rats ass if I got "similar" css in one component to another. OOCSS is teaching us to be be BDRY (Bone DRY) which isn't good. Being DRY has a bell curve where its good upto a point then skips down the other side to cause issues again. OOCSS is on that slope in my view.

By simple componentizing stuff into a single file for every aspect of the UI, I can make changes to any of them and know they wont affect anything else, its gives me confidence to make changes and is ultimately easier to maintain. Stop doing "OOCSS"! Just componentize the crap out of everything in your UIs. We dont need these buzz words.