包详细信息

stylelint-use-nesting

csstools87.7kCC0-1.06.0.1

Enforce nesting when it is possible in CSS

stylelint, stylelint-plugin, css, prefer

自述文件

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" }]
  }
}

更新日志

Changes to Stylelint Use Nesting

6.0.1

  • Fix false positive with functional pseudo classes (e.g. :host vs. :host()) #24 by @veyndan

6.0.0

  • Updated: minimum Stylelint version to v16.9.0
  • Updated: use the new report.fix API

5.1.2 (Jul 28, 2024)

  • Fix Unknown rule csstools/use-nesting error

5.1.1 (March 6, 2024)

  • Remove exports field from package.json #18

5.1.0 (March 3, 2024)

  • Remove @nest #15

5.0.0 (March 3, 2024)

  • Updated: peer stylelint to >= 16 (major)
  • Updated: Node 20+ compatibility (major)
  • Drop commonjs support (major)

4.1.0 (March 8, 2022)

  • Added: support for SCSS syntax

4.0.0 (Jul 29, 2022)

  • Updated: peer stylelint to >= 10 (major)
  • Updated: Node 16+ compatibility (major)
  • Added: attribute selector support (minor)

3.0.0 (May 12, 2020)

  • Updated: peer stylelint to 10 - 13 (major)
  • Updated: Node 10+ compatibility (major)

2.0.0 (May 12, 2018)

  • Updated: peer stylelint to 10.0.1 (major)
  • Updated: Node 8+ compatibility (major)

1.2.1 (February 27, 2019)

  • Fixed an issue with nested media not warning correctly

1.2.0 (February 26, 2019)

  • Added support for nestable @media queries
  • Added support for recursive changes

1.1.0 (November 27, 2018)

  • Added except and only options to future configure nesting rules

1.0.0 (November 25, 2018)

  • Initial version