Filter CSS rules
npm install --save filter-css
const filterCss = require('filter-css');
const filtered = filterCss(<input>, <pattern>, <options>);
- Required
- Type:
String
Can be a path to the CSS file or a raw CSS string.
- Required
- Type
String
,RegExp
,Function
or anArray
containing it.
Patterns used to discard specific parts of the CSS.
The function is invoked with three arguments (context
, value
, node
).
context
: Current matching context. Could be one of['type', 'media', 'selector', 'declarationProperty', 'declarationValue']
.value
: Current value.node
: The currently processed AST node generated bycss
.
Return true if the element should be discarded.
Per default filter-css
will be applied to all parts of the CSS. This behavior can be customized by disabling specific matchers.
Name | Type | Description |
---|---|---|
matchSelectors | boolean |
Enable / disable matching of CSS selectors. |
matchTypes | boolean |
Enable / disable matching of AST Node types like font-face |
matchDeclarationProperties | boolean |
Enable / disable matching of CSS properties like background-image |
matchDeclarationValues | boolean |
Enable / disable matching of CSS values like url(...) |
matchMedia | boolean |
Enable / disable matching of media queries like min-device-pixel-ratio: 2 |
.bigBackground {
width: 100%;
height: 100%;
background-image: url('some/big/image.png');
}
@font-face {
font-family: 'My awesome font';
}
@media print {
...
}
const filterCss = require('filter-css');
filterCss('test/fixtures/test.css', [/url\(/,'@font-face',/print/]);
.bigBackground {
width: 100%;
height: 100%;
}
const filterCss = require('filter-css');
filterCss('test/fixtures/test.css', /.*/, {
matchSelectors: false,
matchTypes: false,
matchDeclarationProperties: false,
matchDeclarationValues: false,
matchMedia: true
});
const filterCss = require('filter-css');
filterCss('test/fixtures/test.css', (context, value, node) => {
return context === 'declarationValue' && value === "url('some/big/image.png')"
});
filterCss('test/fixtures/test.css', {
types: ['@font-face'],
selectors: ['.my-selector > p'],
declarations: [/url/]
});
filter-css works well with standard input.
cat test/fixture/test.css | filtercss --ignore @font-face
You can also pass in the file as an option.
filtercss test/fixture/test.css --ignore @font-face
See filtercss --help
for a full list of options.
MIT © Ben Zörb