eslint-plugin-stylelint-2

June 18, 2026 ยท View on GitHub

npm license. npm total downloads. latest GitHub release. GitHub stars. GitHub forks. GitHub open issues. codecov.

eslint-plugin-stylelint-2 brings Stylelint reporting and autofix support into ESLint while also adding Stylelint-specific authoring rules for Stylelint config files.

This package exists as eslint-plugin-stylelint-2 on npm because eslint-plugin-stylelint is already taken.

Installation

npm install --save-dev eslint-plugin-stylelint-2 eslint stylelint

Compatibility

  • Supported ESLint versions: 9.x and 10.x
  • Config system: Flat Config only (eslint.config.*)
  • Node.js runtime: >=22.0.0

Quick start

import stylelint2 from "eslint-plugin-stylelint-2";

export default [...stylelint2.configs.recommended];

Presets

PresetPurpose
stylelint2.configs.recommendedEnable stylesheet linting plus the broadly useful Stylelint config guidance
stylelint2.configs.stylelintOnlyEnable only the Stylelint bridge workflow for stylesheets and ESLint-side autofix
stylelint2.configs.configurationEnable the full Stylelint config authoring rule catalog, with no stylesheet bridge
stylelint2.configs.allEnable the stylesheet bridge plus the full config rule catalog

Legacy aliases remain available:

  • stylelint2.configs.stylesheets โ†’ stylelint2.configs.stylelintOnly
  • stylelint2.configs.configs โ†’ stylelint2.configs.configuration

Configuration examples

import stylelint2 from "eslint-plugin-stylelint-2";

export default [...stylelint2.configs.recommended];

Stylelint bridge only

import stylelint2 from "eslint-plugin-stylelint-2";

export default [stylelint2.configs.stylelintOnly];

Configuration only

import stylelint2 from "eslint-plugin-stylelint-2";

export default [stylelint2.configs.configuration];

That preset notably enables:

  • stylelint-2/prefer-stylelint-formatter
  • stylelint-2/disallow-stylelint-ignore-disables
  • stylelint-2/prefer-stylelint-define-config
  • stylelint-2/prefer-stylelint-report-descriptionless-disables
  • stylelint-2/prefer-stylelint-report-invalid-scope-disables
  • stylelint-2/prefer-stylelint-report-needless-disables
  • stylelint-2/prefer-stylelint-report-unscoped-disables

Passing Stylelint options

import stylelint2 from "eslint-plugin-stylelint-2";

export default [
 {
  ...stylelint2.configs.stylelintOnly,
  rules: {
   "stylelint-2/stylelint": [
    "error",
    {
     configFile: "./stylelint.config.mjs",
     customSyntax: "postcss-scss",
    },
   ],
  },
 },
];

Rules

Fix legend:

  • ๐Ÿ”ง = autofixable
  • โ€” = report only

Preset key legend:

RuleFixPreset key
stylelint๐Ÿ”ง๐ŸŸก ๐ŸŽจ ๐ŸŸฃ
disallow-stylelint-allow-empty-input๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-configuration-comment๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-custom-syntax๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-default-severity๐Ÿ”ง๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-duplicate-extends๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-duplicate-plugins๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-duplicate-rule-option-values๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-empty-rules-objectโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-ignore-disables๐Ÿ”ง๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-ignore-files๐Ÿ”ง๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-null-rule-configโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-overrides-runtime-options๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-processors๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-relative-extends-pathsโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
disallow-stylelint-relative-plugin-pathsโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-cache๐Ÿ”ง๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-define-config๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-extends-array๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-fix๐Ÿ”ง๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-formatterโ€”๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-plugins-array๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-report-descriptionless-disables๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-report-invalid-scope-disables๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-report-needless-disables๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
prefer-stylelint-report-unscoped-disables๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-custom-syntax-in-overridesโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-config-file-naming-conventionโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-extends-packages-installedโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-overrides-configurationโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-overrides-files-arrayโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-overrides-filesโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-plugins-packages-installedโ€”๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-report-disables๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
require-stylelint-rules-object๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
sort-stylelint-extends๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
sort-stylelint-plugins๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ
sort-stylelint-rule-keys๐Ÿ”ง๐ŸŸก ๐Ÿ”ง ๐ŸŸฃ

Why use this plugin?

Use this plugin when you want ESLint to become the single command and editor integration that reports:

  • JavaScript and TypeScript issues
  • CSS issues from Stylelint
  • Stylelint config authoring issues

This package is strongest when you want repo-level consistency around both stylesheet linting and Stylelint config hygiene.

If your team prefers running Stylelint separately, this package may be unnecessary.

Contributors โœจ

See CONTRIBUTORS.md.