PostCSS Conditional Values runs in all Node environments, with special instructions for:
Important
PostCSS Conditional Values assumes to process your complete CSS bundle.
If your build tool processes files individually or processes files in parallel the output will be incorrect.
Using @csstools/postcss-bundler
and @import
statements is one way to make sure your CSS is bundled before it is processed by this plugin.
Add PostCSS Conditional Values to your project:
npm install postcss @csstools/postcss-conditional-values --save-dev
Use it as a PostCSS plugin:
// commonjs
const postcss = require('postcss');
const postcssConditionalValues = require('@csstools/postcss-conditional-values');
postcss([
postcssConditionalValues(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
// esm
import postcss from 'postcss';
import postcssConditionalValues from '@csstools/postcss-conditional-values';
postcss([
postcssConditionalValues(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
Add PostCSS CLI to your project:
npm install postcss-cli @csstools/postcss-conditional-values --save-dev
Use PostCSS Conditional Values in your postcss.config.js
configuration file:
const postcssConditionalValues = require('@csstools/postcss-conditional-values');
module.exports = {
plugins: [
postcssConditionalValues(/* pluginOptions */)
]
}
If your framework/CLI supports postcss-load-config
.
npm install @csstools/postcss-conditional-values --save-dev
package.json
:
{
"postcss": {
"plugins": {
"@csstools/postcss-conditional-values": {}
}
}
}
.postcssrc.json
:
{
"plugins": {
"@csstools/postcss-conditional-values": {}
}
}
See the README of postcss-load-config
for more usage options.
Webpack version 5
Add PostCSS Loader to your project:
npm install postcss-loader @csstools/postcss-conditional-values --save-dev
Use PostCSS Conditional Values in your Webpack configuration:
module.exports = {
module: {
rules: [
{
test: /\.css$/i,
use: [
"style-loader",
{
loader: "css-loader",
options: { importLoaders: 1 },
},
{
loader: "postcss-loader",
options: {
postcssOptions: {
plugins: [
["@csstools/postcss-bundler"],
[
"@csstools/postcss-conditional-values",
{
// Options
},
],
],
},
},
},
],
},
],
},
};
Read the instructions on how to customize the PostCSS configuration in Next.js
npm install @csstools/postcss-conditional-values --save-dev
Use PostCSS Conditional Values in your postcss.config.json
file:
{
"plugins": [
"@csstools/postcss-conditional-values"
]
}
{
"plugins": [
[
"@csstools/postcss-conditional-values",
{
// Optionally add plugin options
}
]
]
}
Add Gulp PostCSS to your project:
npm install gulp-postcss @csstools/postcss-conditional-values --save-dev
Use PostCSS Conditional Values in your Gulpfile:
const postcss = require('gulp-postcss');
const postcssConditionalValues = require('@csstools/postcss-conditional-values');
gulp.task('css', function () {
var plugins = [
postcssConditionalValues(/* pluginOptions */)
];
return gulp.src('./src/*.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('.'));
});
Add Grunt PostCSS to your project:
npm install grunt-postcss @csstools/postcss-conditional-values --save-dev
Use PostCSS Conditional Values in your Gruntfile:
const postcssConditionalValues = require('@csstools/postcss-conditional-values');
grunt.loadNpmTasks('grunt-postcss');
grunt.initConfig({
postcss: {
options: {
processors: [
postcssConditionalValues(/* pluginOptions */)
]
},
dist: {
src: '*.css'
}
}
});