Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including stylelint-use-nesting with all npm packages installed. Try it out:

require("stylelint/package.json"); // stylelint is a peer dependency. var stylelintUseNesting = require("stylelint-use-nesting")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

stylelint-use-nesting v1.2.1

Enforce nesting when it is possible in CSS

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] }]
  }
}
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free