Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bezoerb/postcss-discard

PostCSS plugin to discard rules, atrules or declarations by selector, RegExp or callback function
https://github.com/bezoerb/postcss-discard

Last synced: 14 days ago
JSON representation

PostCSS plugin to discard rules, atrules or declarations by selector, RegExp or callback function

Awesome Lists containing this project

README

        

# PostCSS Discard [![Build Status][ci-img]][ci]

[PostCSS] plugin to discard rules by selector, RegExp, or @type. Also usable to generate a diff from two stylesheets

[postcss]: https://github.com/postcss/postcss
[ci-img]: https://github.com/bezoerb/postcss-discard/workflows/Tests/badge.svg
[ci]: https://github.com/bezoerb/postcss-discard/actions?workflow=Tests

## Usage

```js
const discard = require('postcss-discard');
postcss([discard(options)]);
```

See [PostCSS] docs for examples for your environment.

#### Options

| Name | Type | Description |
| ------ | ------------------------------ | --------------------------------------------- |
| atrule | `String`, `RegExp`, `Function` | Match atrule like `@font-face` |
| rule | `String`, `RegExp`, `Function` | Match rule like `.big-background-image {...}` |
| decl | `String`, `RegExp`, `Function` | Match declarations |
| css | `String` | CSS String or path to file containing css |

You can also pass a filter function for any of the supported types.
The function is invoked with two arguments (node, value).

- `node` The currently processed AST node generated by [`postcss`](http://api.postcss.org/).
- `value` Current value.

Return true if the element should be discarded.

## Examples

### Diffing stylesheets

```js
postcss(discard({css: 'STYLES TO BE REMOVED'})).process('ORIGINAL CSS').css;
```

### Discard by specifying rules

```css
.bg {
width: 100%;
height: 100%;
background-image: url('some/big/image.png');
}

@font-face {
font-family: 'My awesome font';
}

@media print {
...;
}
```

```js
postcss([
discard({
atrule: ['@font-face', /print/],
}),
]);
```

```css
.bg {
width: 100%;
height: 100%;
}
```