Jakobo/atomic — pull request #9 by Jakobo (2013-10-17 18:36:43+00:00)
Title: Proposal for BEM syntax to reflect state within the DOM

h1. BEM Support for Classes
BEM is documented at https://gist.github.com/dmfrancisco/4967354 and stands for Block__Element--Modifier. The block refers to an abstract thing, the __element is a specific piece of the block, and the --modifier refers to the state of either the Block or the Element

This is actually very in line with how Atomic components work. The Block is 1:1 with a Component. Element is 1:1 with the Component.elements() collection, and Modifier gives us a consistent way to manage visual state information.

h1. What this gives us
The most important thing this gives us is namespace-collision-free class names which can be manipulated by an Atomic component. They are very predictable, can leverage this.elements(), and are easy ways to express modifiers. This also removes the whole "where do we put classes" problem because there's no risk of collisions between modules.