How do we write code that is modular & maintainable,
in a language designed to be systematic & contextual?
Over the years developers have explored a range of techniques,
frameworks, and naming conventions to achieve that goal –
from Nicole Sullivan’s OOCSS and Natalie Downe’s CSS Systems,
to BEM, SMACSS, ITCSS, CUBE,
and recent attempts at purely “utility-based”CSS.
We’ll look at what these systems have in common,
where they differ, and how they are informed by CSS itself.
By understanding the trade-offs involved,
we can make more informed decisions
about how to mix, match, adjust,
or re-write these conventions to meet ourneeds.