PostCSS plugin for automatic rules isolation
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

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

postcss([ require('postcss-autoreset')()])

See PostCSS docs for examples for your environment.