## Modules * [makeBlock](#module_makeBlock) * [makeModifiers](#module_makeModifiers) * [makeOriginalClass](#module_makeOriginalClass) * [makeStates](#module_makeStates) ## makeBlock Add the main class for the block. This maker is independent of the value of passed props. *This maker is always applied.* **Example** ```js import * as pluginBlock from 'dumb-bem/plugins/makeBlock' pluginBlock.maker('block', {}) // => 'block' pluginBlock.maker('block__element', {}) // => 'block__element' ``` ## makeModifiers Add one or more modifiers to the base block name. Separate multiple modifiers by whitespace. *This maker is always applied.* **Example** ```js import * as pluginModifiers from 'dumb-bem/plugins/makeModifiers' pluginModifiers.maker('block', { modifier: 'large' }, { delimiters: { modifier: '--' } }) // => 'block--large' pluginModifiers.maker('block', { modifier: 'large success' }, { delimiters: { modifier: '_' } }) // => 'block_large block_success' pluginModifiers.propsToRemove // => ['modifier'] ``` ## makeOriginalClass Preserve `className` as it was passed. Without this maker the original class would be lost. This maker is independent of the value of `block`. *This maker is always applied.* **Example** ```js import * as pluginOriginalClass from 'dumb-bem/plugins/makeOriginalClass' pluginOriginalClass.maker('block', { className: 'btn btn-lg btn-success' }, {}) // => 'btn btn-lg btn-success' ``` ## makeStates Create SMACSS style state rules. If the correspondent props value is truthy, class with `is-` prefix will be added. Supports `active`, `disabled`, `hidden`, and `loading`. This maker is independent of the value of `block`. *This maker is always applied.* **Example** ```js import * as pluginStates from 'dumb-bem/plugins/makeStates' pluginStates.maker('block', { active: true }, {}) // => 'is-active' pluginStates.maker('block', { active: 0, disabled: 1 }, {}) // => 'is-disabled' pluginStates.propsToRemove // => ['active', 'loading'] ```