0.3.3 • Published 8 years ago

pobems v0.3.3

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

npm travis coverage deps

BEM syntax for CSS. Problems? Use POBEMS!

This is old version! Please using pobem (next step development pobems)

This is plugin based on rebem-css written by Kir Belevich and Denis Koltsov.

Overview

Dead simple

It just replaces substrings in selectors:

:block()

:block(block) {}
.block {}

:elem()

:block(block):elem(elem) {}
.block__elem {}

:block(block):elem(elem) :elem(elem2) :block(block2):elem(elem) {}
.block__elem .block__elem2 .block2__elem {}

:mod()

:block(block):mod(mod) {}
.block_mod {}

:block(block):mod(mod val) {}
.block_mod_val {}

:block(block):mod(mod val):mod(mod2) {}
.block_mod_val.block_mod2 {}
:block(block):elem(elem):mod(mod) {}
.block__elem_mod {}

:block(block):elem(elem):mod(mod val) {}
.block__elem_mod_val {}

CSS compatible

It's just a custom pseudo-classes, so you can use it with Less or any other CSS preprocessor:

:block(block) {
    &:mod(mod) {
        :elem(elem) {

        }
    }

    &:elem(elem) {
        &:mod(mod val) {

        }
    }
}

Usage

pobems is a PostCSS plugin.

CLI

npm i -S postcss postcss-cli pobems
postcss --use pobems test.css -o test.css

API

npm i -S postcss pobems
import postcss from 'postcss';
import pobems from 'pobems';

console.log(
    postcss([ pobems ]).process(':block(block) {}').css
);
// .block {}

webpack

npm i -S postcss postcss-loader pobems
import pobems from 'pobems';

export default {
    module: {
        loaders: [
            {
                test: /\.css$/,
                loader: 'style!css!postcss'
            }
        ]
    },
    postcss() {
        return [ pobems ];
    }
};

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: [
    new webpack.DefinePlugin({
        'process.env': {
            BEM_MOD_DELIM: JSON.stringify('--'),
            BEM_ELEM_DELIM: JSON.stringify('~~')
        }
    })
]
0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.3.0

8 years ago

0.2.1

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.2.0

8 years ago