0.3.3 • Published 10 years ago

pobems v0.3.3

Weekly downloads
3
License
MIT
Repository
github
Last release
10 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

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.2.6

10 years ago

0.2.5

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.2.0

10 years ago