react-bem-classes
Use React components with BEM class naming convention.
Installation
npm install react-bem-classes --save-dev
Usage
;; @Component { return <div className=this> // <div class="list"></div> <div className=this></div> // <div class="list__item"></div> </div> } ;
Modifiers
Methods this.block and this.elements may accept an additional parameter — an object of modifiers
this.block(modifiers)
this.element(elementName, modifiers)
Example
this // returns 'list list--type-myType list--isActive'
Modifiers through props
You can pass modifiers as props when using your component
@Component { return <div className=this> //... </div> } Component { return <List size="large" isOpened /> } // renders <div class="list list--size-large list--isOpened">...</div>
Both element and block
Every component can be a block and an element of another block at the same time.
@Component { return <div className=this> </div> } @Component { <div className=this> <User className=this /> </div> } /* renders <div class="list"> <div className="list__item user"> </div> */