stylelint icon indicating copy to clipboard operation
stylelint copied to clipboard

A mighty CSS linter that helps you avoid errors and enforce conventions.

Stylelint

npm version Build Status npm downloads

A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.

Features

It's mighty as it:

  • has over 170 built-in rules for modern CSS syntax and features
  • supports plugins so you can create your own rules
  • automatically fixes problems where possible
  • is well tested with over 15000 unit tests
  • supports shareable configs that you can extend or create
  • is unopinionated so that you can customize it to your exact needs
  • complements pretty printers like Prettier
  • has a growing community and is used by Google, GitHub and WordPress

And can be extended to:

  • parse CSS-like syntaxes like SCSS, Sass, Less and SugarSS
  • extract embedded styles from HTML, Markdown and CSS-in-JS object & template literals

How it'll help you

It'll help you avoid errors, for example styles that are:

  • invalid, e.g. malformed hex colors and named grid areas
  • valid but with unintended consequences, e.g. duplicated selectors and overridden properties

And enforce conventions, for example:

  • what units, functions, at-rules etc are allowed
  • consistent patterns for selector names, at-rule names, custom properties etc
  • maximum specificity or maximum quantity of each selector type
  • your preferred notation for color functions, font weight etc

There are also rules for enforcing stylistic consistency, but we now recommend you use Stylelint alongside a pretty printer like Prettier. Linters and pretty printers are complementary tools that work together.

Example output

Example

Guides

  • User guide
    • Getting started
    • Configuration
    • Rules
      • List of rules
      • About rules
      • Combining rules
      • Using regex in rules
    • Usage
      • CLI
      • Node.js API
      • PostCSS plugin
      • Shared options
    • Integrations
      • Editor integrations
      • Task runner integrations
      • Other integrations
    • Ignoring code
    • Errors & warnings
  • Developer guide
    • Working on rules
    • Writing plugins
    • Writing custom syntaxes
    • Writing custom formatters
    • Writing system tests
    • Writing processors
  • Migration guide
    • Migrating to 14.0.0
  • Maintainer guide
    • Managing issues
    • Managing pull requests
    • Performing releases
  • About
    • Vision
    • Linting
    • Semantic versioning

Contributors

Stylelint is maintained by volunteers. Without the code contributions from all these fantastic people, Stylelint would not exist. Become a contributor.

Sponsors

Thank you to all our sponsors! Become a sponsor.

Backers

Thank you to all our backers! Become a backer.

Website hosting

Deploys by Netlify

License

The MIT License.