postcss-filter-rules

0.8.0 • Public • Published

PostCSS Filter Rules

npm version License Build

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 atrue, 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.

Package Sidebar

Install

npm i postcss-filter-rules

Weekly Downloads

571

Version

0.8.0

License

MIT

Unpacked Size

6.6 kB

Total Files

5

Last publish

Collaborators

  • lachlanmcdonald