PostCSS Double Position Gradients PostCSS

NPM Version CSS Standard Status Discord

PostCSS Double Position Gradients lets you use double-position gradients in CSS, following the CSS Image Values and Replaced Content specification.

```pcss .linear-gradient { background-image: linear-gradient(90deg, black 25% 50%, blue 50% 75%); }

.conic-gradient { background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg); }

/ becomes /

.linear-gradient { background-image: linear-gradient(90deg, black 25%, black 50%, blue 50%, blue 75%); background-image: linear-gradient(90deg, black 25% 50%, blue 50% 75%); }

.conic-gradient { background-image: conic-gradient(yellowgreen 40%, gold 0deg, gold 75%, #f06 0deg); background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg); } ```

Usage

Add PostCSS Double Position Gradients to your project:

bash npm install postcss-double-position-gradients --save-dev

Use PostCSS Double Position Gradients to process your CSS:

```js const postcssDoublePositionGradients = require('postcss-double-position-gradients');

postcssDoublePositionGradients.process(YOUR_CSS /, processOptions, pluginOptions /); ```

Or use it as a PostCSS plugin:

```js const postcss = require('postcss'); const postcssDoublePositionGradients = require('postcss-double-position-gradients');

postcss([ postcssDoublePositionGradients(/ pluginOptions /) ]).process(YOUR_CSS /, processOptions /); ```

PostCSS Double Position Gradients runs in all Node environments, with special instructions for:

| Node | PostCSS CLI | Webpack | Create React App | Gulp | Grunt | | --- | --- | --- | --- | --- | --- |

Options

preserve

The preserve option determines whether the original double-position gradients should be preserved. By default, double-position gradients are preserved.

js postcssDoublePositionGradients({ preserve: false })

```css .linear-gradient { background-image: linear-gradient(90deg, black 25% 50%, blue 50% 75%); }

.conic-gradient { background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg); }

/ becomes /

.linear-gradient { background-image: linear-gradient(90deg, black 25%, black 50%, blue 50%, blue 75%); }

.conic-gradient { background-image: conic-gradient(yellowgreen 40%, gold 0deg, gold 75%, #f06 0deg); } ```

enableProgressiveCustomProperties

The enableProgressiveCustomProperties option determines whether the original notation is wrapped with @supports when used in Custom Properties. By default, it is enabled.

⚠️ We only recommend disabling this when you set preserve to false or if you bring your own fix for Custom Properties. See what the plugin does in its README.

js postcssDoublePositionGradients({ enableProgressiveCustomProperties: false })

```pcss :root { --a-gradient: linear-gradient(90deg, black 25% 50%, blue 50% 75%); }

/ becomes /

:root { --a-gradient: linear-gradient(90deg, black 25%, black 50%, blue 50%, blue 75%); / will never be used, not even in older browser / --a-gradient: linear-gradient(90deg, black 25% 50%, blue 50% 75%); } ```