A simple BEM helper using ReasonMl
- Install
reBEM Helper
npm install rebem-helper
or
yarn add rebem-helper
- Add
rebem-helper
to "bs-dependencies" section of bsconfig.json
open ReBemHelper;
/* Write my-block my-block--active */
let isActive = true;
let myBemClassNames = bem(~block="my-block", ~modifiers=[Boolean("active", isActive)], ());
open ReBemHelper;
/* Write class names: my-block my-block--small */
let mySizeBemClassNames = bem(~block="my-block", ~modifiers=[String("small")], ());
open ReBemHelper;
/* Write class names: my-block my-block--active my-block--small my-block--disable */
let mySizeBemClassNames = bem(
~block="my-block",
~modifiers=[
String("small"),
Boolean("active", isActive),
Switch("enable", "disable", false)
],
()
);
open ReBemHelper;
/* Write class names: my-block__element my-block__element--small some-other-class */
let mySizeBemClassNames = bem(~block="my-block", ~element="element", ~modifiers=[String("small")], ~others="some-other-class", ());
String(modifierName)
String(string)Boolean(modifierName, shouldShowModifierName)
Boolean(string, bool)Switch(activeModifierName, unactiveModifierName, isActiveModifierName)
Switch(string, string, bool)
See more examples in examples folder:
Install and code.
yarn install
yarn start
Run tests
yarn test
Run tests (on watch)
yarn test:dev
Please feel free to write an issue/PR if you see/want somethings.