npm install @csstools/postcss-gradient-stop-increments-experimental --save-dev
PostCSS Gradient Stop Increments lets you increment gradient stops following the CSSWG 8616 proposal.
.example-1 {
background: linear-gradient(red 50%, blue ++1px);
}
.example-2 {
background: conic-gradient(red ++60deg, blue ++10deg ++50deg, green ++60deg, yellow ++60deg);
}
.example-3 {
background: conic-gradient(pink ++60deg, cyan 0 ++20deg, gold 0 ++10deg);
}
.example-4 {
background: linear-gradient(orange 20px, magenta 2vi, aqua ++2vw);
}
/* becomes */
.example-1 {
background: linear-gradient(red 50%, blue calc(50% + +1px));
}
.example-2 {
background: conic-gradient(red +60deg, blue 70deg 120deg, green 180deg, yellow 240deg);
}
.example-3 {
background: conic-gradient(pink +60deg, cyan 0 80deg, gold 0 90deg);
}
.example-4 {
background: linear-gradient(orange 20px, magenta 2vi, aqua calc(max(20px, 2vi) + +2vw));
}
Add PostCSS Gradient Stop Increments to your project:
npm install postcss @csstools/postcss-gradient-stop-increments-experimental --save-dev
Use it as a PostCSS plugin:
const postcss = require('postcss');
const postcssGradientStopIncrementsExperimental = require('@csstools/postcss-gradient-stop-increments-experimental');
postcss([
postcssGradientStopIncrementsExperimental(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
The preserve
option determines whether the original notation
is preserved. By default, it is not preserved.
postcssGradientStopIncrementsExperimental({ preserve: true })
.example-1 {
background: linear-gradient(red 50%, blue ++1px);
}
.example-2 {
background: conic-gradient(red ++60deg, blue ++10deg ++50deg, green ++60deg, yellow ++60deg);
}
.example-3 {
background: conic-gradient(pink ++60deg, cyan 0 ++20deg, gold 0 ++10deg);
}
.example-4 {
background: linear-gradient(orange 20px, magenta 2vi, aqua ++2vw);
}
/* becomes */
.example-1 {
background: linear-gradient(red 50%, blue calc(50% + +1px));
background: linear-gradient(red 50%, blue ++1px);
}
.example-2 {
background: conic-gradient(red +60deg, blue 70deg 120deg, green 180deg, yellow 240deg);
background: conic-gradient(red ++60deg, blue ++10deg ++50deg, green ++60deg, yellow ++60deg);
}
.example-3 {
background: conic-gradient(pink +60deg, cyan 0 80deg, gold 0 90deg);
background: conic-gradient(pink ++60deg, cyan 0 ++20deg, gold 0 ++10deg);
}
.example-4 {
background: linear-gradient(orange 20px, magenta 2vi, aqua calc(max(20px, 2vi) + +2vw));
background: linear-gradient(orange 20px, magenta 2vi, aqua ++2vw);
}