bem-classname
Simple function for generating bem-like classNames
It takes from 1 to 3 arguments — block, element and modifiers and generates classNames like block__element
, block__element block__element--mod
etc.
Install
npm install bem-classname
Examples
; ; // "block"; // "block__element"; // "block block--awesome"; // "block block--awesome"; // block__element block__element--awesome
Partial application
Convenient to use partial function application in React component for example:
;; static propTypes = items: ReactPropTypesarray ; { thisclassName = bemClassName; } /** * className() === 'SomeComp' * className('title') === 'SomeComp__title' * className('item', {awesome: true}) === 'SomeComp__item SomeComp__item--awesome' * className('item', {awesome: false}) === 'SomeComp__item' */ { const className = this; return <div className=> <h2 className=>Title</h2> <ul className=> thispropsitems </ul> </div> ; }