Some of the most serious problems with the CSS framework methodology are exposed when revisiting older code, or when a new team member joins a project. This is principally a result of these approaches providing almost no discoverability. In his article on front-end architecture, Nicolas Gallagher says that “Class names should communicate useful information to developers”. I’d take this one step further: selectors should communicate useful information to developers. The purpose is the same — let me understand where this rule is used — but a selector is far more informative to the developer, as it communicates context. It’s a lot easier to understand the purpose behind a rule if the selector tells you that it only applies to elements within a certain scope.
The costs of using CSS “framework methodologies”, such as BEM or OOCSS.