Socket
Socket
Sign inDemoInstall

postcss-nested

Package Overview
Dependencies
14
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    postcss-nested

PostCSS plugin to unwrap nested rules like how Sass does it.


Version published
Maintainers
1
Install size
1.65 MB
Created

Package description

What is postcss-nested?

The postcss-nested npm package allows developers to use nested syntax in CSS, similar to what is possible in preprocessors like SASS and LESS. It processes CSS files and unwraps nested rules following the CSS Nesting specification. This makes the CSS more readable and maintainable by organizing styles in a hierarchical manner.

What are postcss-nested's main functionalities?

Nesting Rules

This feature allows you to nest hover and other pseudo-class selectors inside the main selector block, making the CSS structure more intuitive and easier to manage.

a {
  color: red;
  &:hover {
    color: green;
  }
}

Nesting Properties

Enables grouping of properties under a common namespace, which can be particularly useful for font, margin, and padding definitions, leading to a cleaner and more organized style definition.

a {
  font: {
    weight: bold;
    size: 14px;
    family: Arial, sans-serif;
  }
}

Nesting At-Rules

Supports nesting of at-rules like @media, allowing for more streamlined and readable media query definitions within the relevant selector context.

@media (min-width: 768px) {
  body {
    background: lightblue;
    a {
      color: navy;
    }
  }
}

Other packages similar to postcss-nested

Readme

Source

PostCSS Nested Build Status

PostCSS plugin to unwrap nested rules like how Sass does it.

.phone {
    &_title {
        width: 500px;
        @media (max-width: 500px) {
            width: auto;
        }
        body.is_dark & {
            color: white;
        }
    }
    img {
        display: block;
    }
}

will be processed to:

.phone_title {
    width: 500px;
}
@media (max-width: 500px) {
    .phone_title {
        width: auto;
    }
}
body.is_dark .phone_title {
    color: white;
}
.phone img {
    display: block;
}

Use postcss-current-selector after this plugin if you want to use current selector in properties or variables values.

Use postcss-nested-ancestors before this plugin if you want to reference any ancestor element directly in your selectors with ^&.

See also postcss-nesting, which implements Tab Atkin's proposed syntax (requires the & and introduces @nest).

There is also postcss-nested-props for nested properties like font-size.

Sponsored by Evil Martians

Usage

postcss([ require('postcss-nested') ])

See PostCSS docs for examples for your environment.

Options

bubble

By default, plugin will unwrap only @media, @supports, @font-face and @document at-rules. You can add your custom at-rules to this list by bubble` option:

postcss([ require('postcss-nested')({ bubble: ['phone'] }) ])

preserveEmpty

By default, plugin will strip out any empty selector generated by intermediate nesting levels. You can set preserveEmpty to true to preserve them.

.a {
    .b {
        color: black;
    }
}

Will be compiled to:

.a { }
.a .b {
    color: black;
}

This is especially useful if you want to export the empty classes with postcss-modules.

Keywords

FAQs

Last updated on 11 Dec 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc