What is postcss-reduce-initial?
The postcss-reduce-initial npm package is a PostCSS plugin that optimizes CSS by replacing properties set to their initial values with the 'initial' keyword, thus reducing the size of the CSS file. It can be particularly useful for minimizing the output of CSS preprocessors that tend to output properties with their initial values.
What are postcss-reduce-initial's main functionalities?
Replace properties with 'initial'
This feature takes CSS properties that are set to their initial values and replaces them with the 'initial' keyword. For example, 'min-width: auto;' would be replaced with 'min-width: initial;', and 'transition-duration: 0s;' would be replaced with 'transition-duration: initial;'.
".element {\n min-width: auto;\n transition-duration: 0s;\n}"
Other packages similar to postcss-reduce-initial
cssnano
cssnano is a modular minifier for CSS that includes various optimizations, including reducing initial values to the 'initial' keyword, similar to postcss-reduce-initial. However, cssnano offers a broader range of optimizations such as merging rules, minifying font values, discarding comments, and more.
postcss-normalize-whitespace
postcss-normalize-whitespace is a PostCSS plugin that normalizes whitespace by removing it where possible in CSS files. While it doesn't specifically target initial values, it contributes to the overall reduction of CSS file size, which is a similar goal to postcss-reduce-initial.
postcss-merge-longhand
postcss-merge-longhand is a plugin that merges multiple CSS properties into shorthand properties, which can reduce the size of CSS files. This is different from postcss-reduce-initial's approach of replacing properties with the 'initial' keyword but achieves a similar end of optimizing CSS output.
postcss-reduce-initial
Reduce initial
definitions to the actual initial value, where possible.
Install
With npm do:
npm install postcss-reduce-initial --save
Examples
See the data for more conversions. This data is courtesy
of Mozilla.
Convert initial
values
When the initial
keyword is longer than the property value, it will
be converted:
Input
h1 {
min-width: initial;
}
Output
h1 {
min-width: 0;
}
Convert values back to initial
When the initial
value is smaller than the property value, it will
be converted:
Input
h1 {
transform-box: border-box;
}
Output
h1 {
transform-box: initial;
}
This conversion is only applied when you supply a browsers list that all support
the initial
keyword; it's worth noting that Internet Explorer has no support.
API
reduceInitial([options])
options
ignore
Type: Array<String>
Default: undefined
It contains the Array of properties that will be ignored while reducing its value to initial.
Example : { ignore : ["min-height"] }
Usage
See the PostCSS documentation for
examples for your environment.
Contributors
See CONTRIBUTORS.md.
License
Template:CSSData by Mozilla Contributors is licensed under CC-BY-SA 2.5.
MIT © Ben Briggs