Skip to main content

Errors & warnings

In addition to rule problems, Stylelint surfaces the following errors and warnings:

CSS syntax error​

The CSS parser built into Stylelint, or the chosen custom syntax, could not parse your code.

Unclosed block​

You should balance your curly braces, typically of declaration blocks.

For example:

- a { color: red;
+ a { color: red; }

Unclosed bracket​

You should balance your square brackets, typically of attribute selectors and grid names.

For example:

- a[foo { grid: [bar; }
+ a[foo] { grid: [bar]; }

Unclosed string​

You should balance your quotation marks.

For example:

- a { content: " }
+ a { content: "" }

Unknown word​

You should:

  • hyphenate properties
  • separate property and value pairs with colons
  • separate declarations with semicolons
  • pair selectors with declaration blocks in rules

For example:

a {
- margin top: 1px
- color red
+ margin-top: 1px;
+ color: red
}

Parse error​

The CSS parser built into Stylelint (or the chosen custom syntax) successfully parsed your code, but one of the construct-specific parsers failed to parse either a media query, selector or value within that source.

The construct-specific parsers are:

  • @csstools/media-query-list-parser
  • postcss-selector-parser
  • postcss-value-parser

You should check that your constructs are wellformed, e.g. parentheses are balanced.

Unknown rule error​

There is an unknown rule in the configuration object.

You should:

  • install the latest version of Stylelint (npm i --save-dev stylelint), as we may have recently added the rule
  • check that the rule exists and is correctly named by searching the list of rules

Deprecation warning​

There is a deprecated rule in the configuration object.

You should:

  • identify in the CHANGELOG which release deprecated the rule
  • take the action suggested there

Invalid option warning​

There is a misconfigured rule in the configuration object.

You should:

  • install the latest version of Stylelint (npm i --save-dev stylelint), as we may have recently added the option
  • check that the option exists and is correctly named by reading the rule's README
  • correctly configure the rules property in the configuration object