Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
postcss-nested
Advanced tools
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.
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;
}
}
}
Sass is a mature, stable, and powerful professional grade CSS extension language. It provides similar nesting functionalities but with a broader feature set for styling. Compared to postcss-nested, Sass offers more features like variables, mixins, and functions for more dynamic styling.
Less is a backward-compatible language extension for CSS. It also supports nesting, along with variables, mixins, and functions, similar to Sass. Less and postcss-nested offer comparable nesting capabilities, but Less includes additional features that extend CSS more comprehensively.
Stylus is an expressive, dynamic, and robust CSS preprocessor that supports nested selectors, variables, mixins, and arithmetic operations. It provides a more flexible syntax compared to postcss-nested, allowing for both a concise and expressive way to write CSS.
PostCSS plugin to unwrap nested rules closer to Sass syntax.
.phone {
&_title {
width: 500px;
@media (max-width: 500px) {
width: auto;
}
body.is_dark & {
color: white;
}
}
img {
display: block;
}
}
.title {
font-size: var(--font);
@at-root html {
--font: 16px;
}
}
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;
}
.title {
font-size: var(--font);
}
html {
--font: 16px;
}
Related plugins:
postcss-current-selector
after this plugin if you want
to use current selector in properties or variables values.postcss-nested-ancestors
before this plugin if you want
to reference any ancestor element directly in your selectors with ^&
.Alternatives:
postcss-nesting
, which implements CSSWG draft.postcss-nested-props
for nested properties like font-size
.Read full docs here.
7.0.2
FAQs
PostCSS plugin to unwrap nested rules like how Sass does it
We found that postcss-nested demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.