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-rules
Usage
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.
11 months ago
9 months ago
11 months ago
2 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago