bem-components-react
A factory to create react components that follow BEM methodology with first-class typescript support.
Getting started
Installation:
yarn add bem-components-react
npm install --save bem-components-react
Usage:
import { bem } from 'bem-components-react'
const Button = bem.button('button', ['large', 'small'])
function MyComponent() {
return <Button large>Click me</Button>
}
This component will render to:
<button class="button button--large">Click me</button>
API
const Button = bem.button('button')
const Button = bem.button('button', ['large', 'small'])
const Input = bem.button('dialog__input', ['error'])
<Button large>Click me</Button>
<Input error placeholder="write here"/>
<Button large className="foo">Click me</Button>
<button classname="button button--large foo">Click me</button>
Using a custom prefix for classes
import { withPrefix } from 'bem-components-react'
const bem = withPrefix('myapp')
const Button = bem.button('button', ['large', 'small'])
Will render to:
<button class="myapp-button myapp-button--large">Click me</button>