PostCSS Auto Reset
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 {
all: initial;
}
.block {
padding: 1em;
}
.block:hover {
background-color: red;
}
.block__element {
margin: 1em;
}
.block--modifier {
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')
]
}