Helpers for composing and parsing BEM classNames
npm install rebem-classname




Set of helpers for composing and parsing BEM classNames.
```
npm i -S rebem-classname
`js
import { stringify } from 'rebem-classname';
const className = stringify(props);
`
#### props:
##### block
`js`
stringify({
block: 'beep'
});
// "beep"
##### elem
`js`
stringify({
block: 'beep',
elem: 'boop'
});
// "beep__boop"
##### mods
`js`
stringify({
block: 'beep',
mods: {
foo: 'bar'
}
});
// "beep beep_foo_bar"
`js`
stringify({
block: 'beep',
mods: {
foo: true,
bar: false
}
});
// "beep beep_foo"
`js`
stringify({
block: 'beep',
elem: 'boop',
mods: {
foo: 'bar'
}
});
// "beep__boop beep__boop_foo_bar"
##### mix
`js`
stringify({
block: 'beep',
mix: {
block: 'boop',
elem: 'foo'
}
});
// "beep boop__foo"
`js`
stringify({
block: 'beep',
mix: [
{
block: 'boop',
elem: 'foo'
},
{
block: 'bar',
elem: 'baz',
mods: {
test: true
}
}
]
});
// "beep boop__foo bar__baz bar__baz_test"
##### className
`js`
stringify({
block: 'boop'
className: 'beep'
});
// "boop beep"
TODO
process.env.NODE_ENV must be available. For example in webpack you can do this with DefinePlugin:
`js`
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
]
Default delimeters are _ for modifiers and __ for elements, but you can change it with special environment variables:
`js``
plugins: [
new webpack.DefinePlugin({
'process.env': {
REBEM_MOD_DELIM: JSON.stringify('--'),
REBEM_ELEM_DELIM: JSON.stringify('~~')
}
})
]