JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 40330
  • Score
    100M100P100Q148329F
  • License CC0-1.0

Enforce nesting when it is possible in CSS

Package Exports

  • stylelint-use-nesting
  • stylelint-use-nesting/index.mjs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (stylelint-use-nesting) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Stylelint Use Nesting stylelint

NPM Version Build Status Support Chat

Stylelint Use Nesting is a stylelint rule to enforce nesting when it is possible in CSS.

Usage

Add stylelint and Stylelint Use Nesting to your project.

npm install stylelint stylelint-use-nesting --save-dev

Add Stylelint Use Nesting to your stylelint configuration.

{
  "plugins": [
    "stylelint-use-nesting"
  ],
  "rules": {
    "csstools/use-nesting": "always" || "ignore"
  }
}

Options

always

If the first option is "always" or true, then Stylelint Use Nesting requires all nodes to be linted, and the following patterns are not considered violations:

.example {
  color: blue;

  &:hover {
    color: rebeccapurple;
  }
}
.example {
  color: blue;

  @media (min-width: 640px) {
    color: rebeccapurple;
  }
}

While the following patterns are considered violations:

.example {
  color: blue;
}

.example:hover {
  color: rebeccapurple;
}
.example {
  color: blue;
}

@media (min-width: 640px) {
  .example {
    color: rebeccapurple;
  }
}

ignore

If the first option is "ignore" or null, then Stylelint Use Nesting does nothing.

Secondary Options

except

The except option ignores reporting or autofixing rules where the potentially nesting portion of the selector matches a case-insensitive string or regular expression.

{
  "rules": {
    "csstools/use-nesting": ["always", { "except": [':selection', /^:dir/i] }]
  }
}

only

The except option limits reporting and autofixing to rules where the potentially nesting portion of the selector matches a case-insensitive string or regular expression.

{
  "rules": {
    "csstools/use-nesting": ["always", { "only": ['.js', /^:(hover|focus)/i] }]
  }
}

syntax

The syntax option allows you to specify the syntax of the source files being processed. For SCSS syntax set the value to scss.

{
  "rules": {
    "csstools/use-nesting": ["always", { "syntax": "scss" }]
  }
}