The initial exploration of BEM - Block Element Modifier methodology, has been an unexpectedly introspective journey. It all started with the philosophy of using block-level classes in lieu of semantic tags. Why use multiple classes to describe a single element while, additionally, seemingly abandoning nested styles?
My initial frustrations and confusion with this new perspective illuminated a deep-seated bias in my stylesheet development: I have a fear of using classes and, in effect, succumbed to the alLure of pristinely semantic markup. However, in doing so, I abandoned one of the fundamental principles of development and design: the Single Responsibility Principle.
A class should have only one reason to change. Robert C. Martin
I believe Harry Roberts says it best: “The surprisingly still-persistent fear and avoidance of judicious use of classes in our HTML often leads to developers creating (and subsequently maintaining) unwieldy lists of selectors that are all chained to the exact same declarations. By adopting a more class-based architecture, we can begin to recycle these rules in a much more terse and practical way.” Instead of fearing classes and building CSS with cumbersome and unmaintainable selectors, let’s focus on making the markup useful and easy to manage. Users are not going to be viewing the underlying styles and accessibility tools are more capable than ever before.
Next up, I think I will be checking out Parker to see if I can whip my CSS in shape.