postcss-filter-rules v0.8.0
PostCSS Filter Rules
PostCSS plugin that filters rules with a callback function on each selector and at-rule. For instance, to filter out individual rules or remove all rules besides those you wish to keep.
Installation
npm install --save-dev postcss postcss-filter-rulesUsage
postcss([
require('postcss-filter-rules')(options)
])See PostCSS docs for examples for your environment.
Examples
Filtering selectors
To keep only the selectors which contain the .styleguide class in the following CSS:
.styleguide span,
.button span {
color: red;
}
.button {
color: blue;
}Use the following filter:
{
filter: (selector, parts) => parts.includes('.styleguide')
}Which will output:
.styleguide span {
color: red;
}Options
postcss-filter-rules accepts options with following signature:
{
filter(selector: string, parts: string[]): boolean,
splitFunction(selector: string): string[],
}Note: keepAtRules is deprecated as of 0.8.0 and will raise a warning. As such, all at-rules are retained by default unless empty. Plugins, such as postcss-discard-unused, are better fit-for-purpose for removing at-rules which are no longer referenced in the resulting CSS, such as @keyframes or @font-face.
filter
Called for each selector in a rule:
- If the function returns a
true, the selector is retained. Otherwise, the selector is removed. - If all of the selectors for a rule are removed, the rule is also removed.
- If all rules within an at-rule are removed, the rule is also removed.
The function receives two arguments:
- selector (
string): The selector, as authored in CSS - parts (
string[]): An array of elements, classes, IDs and pseudo-classes in the selector. Used to quickly search for the existence of classes or IDs.
splitFunction
A custom callback that can be used to generate the parts argument of the callback. If one is not provided, the default callback is used.
3 years ago
2 years ago
3 years ago
4 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago