BEM syntax for CSS.
Overview
Dead simple
It just replaces substrings in selectors:
:block()
)
:elem()
))
:mod()
)) ))
))) )))
CSS compatible
It's just a custom pseudo-classes, so you can use it with Less or any other CSS preprocessor:
:blockblock &:modmod &:elemelem &:modmod val
Usage
rebem-css
is a PostCSS plugin.
CLI
npm i -S postcss postcss-cli rebem-css
postcss --use rebem-css test.css -o test.css
API
npm i -S postcss rebem-css
;; console;// .block {}
webpack
npm i -S postcss postcss-loader rebem-css
; module: loaders: test: /\.css$/ loader: 'style!css!postcss' { return reBEMCSS ; };
Custom delimeters
Default delimeters are _
for modifiers and __
for elements, but you can change it with special environment variables. For example in webpack you can do this with DefinePlugin
:
plugins: 'process.env': REBEM_MOD_DELIM: JSON REBEM_ELEM_DELIM: JSON