postcss-autoreset

    3.0.4 • Public • Published

    PostCSS Auto Reset

    Build Status NPM David DM

    PostCSS plugin for automatic conditional rules reset. Useful for creation of bullet-proof styles isolation in your extension. Can be used in combination with postcss-initial.

    The following CSS is written in BEM notation.

    .block {
      padding: 1em;
    }
    
    .block:hover {
      background-color: red;
    }
    
    .block__element {
      margin: 1em;
    }
    
    .block--modifier {
      border: 1em;
    }
    .block,
    .block__element {
      /* combined reset block */
      all: initial;
    }
    
    .block {
      /* reseted */
      padding: 1em;
    }
    
    .block:hover {
      /* ignored, we don`t need to reset pseudoclasses  */
      background-color: red;
    }
    
    .block__element {
      /* reseted */
      margin: 1em;
    }
    
    .block--modifier {
      /* ignored, we don`t need to reset BEM modifiers  */
      border: 1em;
    }

    Options

    reset

    Set of properties that we use to reset rules.
    Takes string or object.
    Possible values:

    • 'initial' - all: initial;
    • 'sizes' - reset size properties.

    Use object to create your own reset. CSS-in-JS notation is supported.

    Example

    postcss([
      require("postcss-autoreset")({
        reset: {
          margin: 0,
          padding: 0,
          borderRadius: 0,
        },
      }),
    ]);

    rulesMatcher

    Rules filter function.
    Takes string or function.
    Possible values:

    • 'bem' - reset all BEM blocks and element, ignore modifiers and pseudoclasses. (naming: .block__element-modifier);
    • 'suit' - reset all SUIT CSS components and parts, ignore modifiers, states and pseudoclasses.

    You can define custom rules filter to fit your styles naming.

    Example

    postcss([
      require("postcss-autoreset")({
        rulesMatcher: (rule) => rule.selector.match(/regexp/),
      }),
    ]);

    Reset only simple rules. See #28

    postcss([
      require("postcss-autoreset")({
        rulesMatcher: (rule) => rule.selector.match(/^[.]\w+$/),
      }),
    ]);

    Usage

    Step 1: Install plugin:

    npm install --save-dev postcss postcss-autoreset

    Step 2: Check you project for existed PostCSS config: postcss.config.js in the project root, "postcss" section in package.json or postcss in bundle config.

    If you do not use PostCSS, add it according to official docs and set this plugin in settings.

    Step 3: Add the plugin to plugins list:

    module.exports = {
      plugins: [
    +   require('postcss-autoreset')(),
        require('autoprefixer')
      ]
    }

    Install

    npm i postcss-autoreset

    DownloadsWeekly Downloads

    1,418

    Version

    3.0.4

    License

    MIT

    Unpacked Size

    10.7 kB

    Total Files

    9

    Last publish

    Collaborators

    • maximkoretskiy