0.8.0 • Published 9 months ago

postcss-filter-rules v0.8.0

Weekly downloads
175
License
MIT
Repository
github
Last release
9 months ago

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.

0.6.3

11 months ago

0.8.0

9 months ago

0.7.0

11 months ago

0.6.2

2 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago