Skip to content
This repository was archived by the owner on Dec 28, 2021. It is now read-only.

Repository files navigation

⚠️ PostCSS Nesting was moved to @csstools/postcss-plugins. ⚠️
Read the announcement

PostCSS Nesting PostCSS

NPM VersionCSS Standard StatusBuild StatusSupport Chat

PostCSS Nesting lets you nest style rules inside each other, following the CSS Nesting specification. If you want nested rules the same way Sass works you might want to use PostCSS Nested instead.

a, b {
color: red;
& c, & d {
color: white;
}
}
/* becomes */a, b {
color: red;
}
a c, a d, b c, b d {
color: white;
}

Usage

Add PostCSS Nesting to your project:

npm install postcss-nesting --save-dev

Use PostCSS Nesting to process your CSS:

importpostcssNestingfrom'postcss-nesting';postcssNesting.process(YOUR_CSS/*, processOptions, pluginOptions */);

Or use it as a PostCSS plugin:

importpostcssfrom'postcss';importpostcssNestingfrom'postcss-nesting';postcss([postcssNesting(/* pluginOptions */)]).process(YOUR_CSS/*, processOptions */);

PostCSS Nesting runs in all Node environments, with special instructions for:

NodeWebpackCreate React AppGulpGrunt

Deno

You can also use PostCSS Nesting on Deno:

importpostcssfrom"https://deno.land/x/postcss/mod.js";importpostcssNestingfrom"https://cdn.jsdelivr.net/npm/postcss-nesting@10/mod.js";awaitpostcss([postcssNesting]).process(YOUR_CSS/*, processOptions */);

⚠️ Spec disclaimer

The CSS Nesting Module spec states on nesting that "Declarations occuring after a nested rule are invalid and ignored.". While we think it makes sense on browsers, enforcing this at the plugin level introduces several constrains that would interfere with PostCSS' plugin nature such as with @mixin

About

Nest style rules inside each other

Resources

Code of conduct

Contributing

Stars

445 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages