Package Exports
- stylelint
- stylelint/lib/utils/FileCache.cjs
- stylelint/lib/utils/FileCache.mjs
- stylelint/lib/utils/addEmptyLineBefore.cjs
- stylelint/lib/utils/addEmptyLineBefore.mjs
- stylelint/lib/utils/addSemicolonForEditInfo.cjs
- stylelint/lib/utils/addSemicolonForEditInfo.mjs
- stylelint/lib/utils/allFilesIgnoredError.cjs
- stylelint/lib/utils/allFilesIgnoredError.mjs
- stylelint/lib/utils/arrayEqual.cjs
- stylelint/lib/utils/arrayEqual.mjs
- stylelint/lib/utils/beforeBlockString.cjs
- stylelint/lib/utils/beforeBlockString.mjs
- stylelint/lib/utils/blockString.cjs
- stylelint/lib/utils/blockString.mjs
- stylelint/lib/utils/blurInterpolation.cjs
- stylelint/lib/utils/blurInterpolation.mjs
- stylelint/lib/utils/checkAgainstRule.cjs
- stylelint/lib/utils/checkAgainstRule.mjs
- stylelint/lib/utils/checkInvalidCLIOptions.cjs
- stylelint/lib/utils/checkInvalidCLIOptions.mjs
- stylelint/lib/utils/configurationComment.cjs
- stylelint/lib/utils/configurationComment.mjs
- stylelint/lib/utils/configurationError.cjs
- stylelint/lib/utils/configurationError.mjs
- stylelint/lib/utils/containsString.cjs
- stylelint/lib/utils/containsString.mjs
- stylelint/lib/utils/createMapWithSet.cjs
- stylelint/lib/utils/createMapWithSet.mjs
- stylelint/lib/utils/dynamicImport.cjs
- stylelint/lib/utils/dynamicImport.mjs
- stylelint/lib/utils/eachDeclarationBlock.cjs
- stylelint/lib/utils/eachDeclarationBlock.mjs
- stylelint/lib/utils/eachNodeUpToRoot.cjs
- stylelint/lib/utils/eachNodeUpToRoot.mjs
- stylelint/lib/utils/emitDeprecationWarning.cjs
- stylelint/lib/utils/emitDeprecationWarning.mjs
- stylelint/lib/utils/filterFilePaths.cjs
- stylelint/lib/utils/filterFilePaths.mjs
- stylelint/lib/utils/findAnimationName.cjs
- stylelint/lib/utils/findAnimationName.mjs
- stylelint/lib/utils/findAtRuleContext.cjs
- stylelint/lib/utils/findAtRuleContext.mjs
- stylelint/lib/utils/findFontFamily.cjs
- stylelint/lib/utils/findFontFamily.mjs
- stylelint/lib/utils/findMediaFeatureNames.cjs
- stylelint/lib/utils/findMediaFeatureNames.mjs
- stylelint/lib/utils/findNodeUpToRoot.cjs
- stylelint/lib/utils/findNodeUpToRoot.mjs
- stylelint/lib/utils/fixEmptyLinesBefore.cjs
- stylelint/lib/utils/fixEmptyLinesBefore.mjs
- stylelint/lib/utils/flattenNestedSelectorsForRule.cjs
- stylelint/lib/utils/flattenNestedSelectorsForRule.mjs
- stylelint/lib/utils/functionArgumentsSearch.cjs
- stylelint/lib/utils/functionArgumentsSearch.mjs
- stylelint/lib/utils/getAtRuleParams.cjs
- stylelint/lib/utils/getAtRuleParams.mjs
- stylelint/lib/utils/getCacheFile.cjs
- stylelint/lib/utils/getCacheFile.mjs
- stylelint/lib/utils/getDeclarationValue.cjs
- stylelint/lib/utils/getDeclarationValue.mjs
- stylelint/lib/utils/getDimension.cjs
- stylelint/lib/utils/getDimension.mjs
- stylelint/lib/utils/getFileIgnorer.cjs
- stylelint/lib/utils/getFileIgnorer.mjs
- stylelint/lib/utils/getFormatter.cjs
- stylelint/lib/utils/getFormatter.mjs
- stylelint/lib/utils/getFormatterOptionsText.cjs
- stylelint/lib/utils/getFormatterOptionsText.mjs
- stylelint/lib/utils/getImportantPosition.cjs
- stylelint/lib/utils/getImportantPosition.mjs
- stylelint/lib/utils/getLexer.cjs
- stylelint/lib/utils/getLexer.mjs
- stylelint/lib/utils/getModulePath.cjs
- stylelint/lib/utils/getModulePath.mjs
- stylelint/lib/utils/getNextNonSharedLineCommentNode.cjs
- stylelint/lib/utils/getNextNonSharedLineCommentNode.mjs
- stylelint/lib/utils/getPreviousNonSharedLineCommentNode.cjs
- stylelint/lib/utils/getPreviousNonSharedLineCommentNode.mjs
- stylelint/lib/utils/getRuleSelector.cjs
- stylelint/lib/utils/getRuleSelector.mjs
- stylelint/lib/utils/getSchemeFromUrl.cjs
- stylelint/lib/utils/getSchemeFromUrl.mjs
- stylelint/lib/utils/getSelectorSourceIndex.cjs
- stylelint/lib/utils/getSelectorSourceIndex.mjs
- stylelint/lib/utils/getStrippedSelectorSource.cjs
- stylelint/lib/utils/getStrippedSelectorSource.mjs
- stylelint/lib/utils/getStylelintRule.cjs
- stylelint/lib/utils/getStylelintRule.mjs
- stylelint/lib/utils/hasANPlusBNotationPseudoClasses.cjs
- stylelint/lib/utils/hasANPlusBNotationPseudoClasses.mjs
- stylelint/lib/utils/hasBlock.cjs
- stylelint/lib/utils/hasBlock.mjs
- stylelint/lib/utils/hasColorFunction.cjs
- stylelint/lib/utils/hasColorFunction.mjs
- stylelint/lib/utils/hasDimension.cjs
- stylelint/lib/utils/hasDimension.mjs
- stylelint/lib/utils/hasEmptyLine.cjs
- stylelint/lib/utils/hasEmptyLine.mjs
- stylelint/lib/utils/hasInterpolation.cjs
- stylelint/lib/utils/hasInterpolation.mjs
- stylelint/lib/utils/hasLessInterpolation.cjs
- stylelint/lib/utils/hasLessInterpolation.mjs
- stylelint/lib/utils/hasNamedColor.cjs
- stylelint/lib/utils/hasNamedColor.mjs
- stylelint/lib/utils/hasPrefix.cjs
- stylelint/lib/utils/hasPrefix.mjs
- stylelint/lib/utils/hasPsvInterpolation.cjs
- stylelint/lib/utils/hasPsvInterpolation.mjs
- stylelint/lib/utils/hasScssInterpolation.cjs
- stylelint/lib/utils/hasScssInterpolation.mjs
- stylelint/lib/utils/hasTplInterpolation.cjs
- stylelint/lib/utils/hasTplInterpolation.mjs
- stylelint/lib/utils/hasValidHex.cjs
- stylelint/lib/utils/hasValidHex.mjs
- stylelint/lib/utils/hash.cjs
- stylelint/lib/utils/hash.mjs
- stylelint/lib/utils/isAfterComment.cjs
- stylelint/lib/utils/isAfterComment.mjs
- stylelint/lib/utils/isAfterSingleLineComment.cjs
- stylelint/lib/utils/isAfterSingleLineComment.mjs
- stylelint/lib/utils/isAfterStandardPropertyDeclaration.cjs
- stylelint/lib/utils/isAfterStandardPropertyDeclaration.mjs
- stylelint/lib/utils/isAutoprefixable.cjs
- stylelint/lib/utils/isAutoprefixable.mjs
- stylelint/lib/utils/isBlocklessAtRuleAfterBlocklessAtRule.cjs
- stylelint/lib/utils/isBlocklessAtRuleAfterBlocklessAtRule.mjs
- stylelint/lib/utils/isBlocklessAtRuleAfterSameNameBlocklessAtRule.cjs
- stylelint/lib/utils/isBlocklessAtRuleAfterSameNameBlocklessAtRule.mjs
- stylelint/lib/utils/isContextFunctionalPseudoClass.cjs
- stylelint/lib/utils/isContextFunctionalPseudoClass.mjs
- stylelint/lib/utils/isCounterIncrementCustomIdentValue.cjs
- stylelint/lib/utils/isCounterIncrementCustomIdentValue.mjs
- stylelint/lib/utils/isCounterResetCustomIdentValue.cjs
- stylelint/lib/utils/isCounterResetCustomIdentValue.mjs
- stylelint/lib/utils/isCustomElement.cjs
- stylelint/lib/utils/isCustomElement.mjs
- stylelint/lib/utils/isCustomFunction.cjs
- stylelint/lib/utils/isCustomFunction.mjs
- stylelint/lib/utils/isCustomMediaQuery.cjs
- stylelint/lib/utils/isCustomMediaQuery.mjs
- stylelint/lib/utils/isCustomProperty.cjs
- stylelint/lib/utils/isCustomProperty.mjs
- stylelint/lib/utils/isCustomSelector.cjs
- stylelint/lib/utils/isCustomSelector.mjs
- stylelint/lib/utils/isDescriptorDeclaration.cjs
- stylelint/lib/utils/isDescriptorDeclaration.mjs
- stylelint/lib/utils/isFirstNested.cjs
- stylelint/lib/utils/isFirstNested.mjs
- stylelint/lib/utils/isFirstNodeOfRoot.cjs
- stylelint/lib/utils/isFirstNodeOfRoot.mjs
- stylelint/lib/utils/isHexColor.cjs
- stylelint/lib/utils/isHexColor.mjs
- stylelint/lib/utils/isKeyframeRule.cjs
- stylelint/lib/utils/isKeyframeRule.mjs
- stylelint/lib/utils/isKeyframeSelector.cjs
- stylelint/lib/utils/isKeyframeSelector.mjs
- stylelint/lib/utils/isMathFunction.cjs
- stylelint/lib/utils/isMathFunction.mjs
- stylelint/lib/utils/isNonNegativeInteger.cjs
- stylelint/lib/utils/isNonNegativeInteger.mjs
- stylelint/lib/utils/isNumbery.cjs
- stylelint/lib/utils/isNumbery.mjs
- stylelint/lib/utils/isOnlyWhitespace.cjs
- stylelint/lib/utils/isOnlyWhitespace.mjs
- stylelint/lib/utils/isPathNotFoundError.cjs
- stylelint/lib/utils/isPathNotFoundError.mjs
- stylelint/lib/utils/isScssVariable.cjs
- stylelint/lib/utils/isScssVariable.mjs
- stylelint/lib/utils/isSharedLineComment.cjs
- stylelint/lib/utils/isSharedLineComment.mjs
- stylelint/lib/utils/isSingleLineString.cjs
- stylelint/lib/utils/isSingleLineString.mjs
- stylelint/lib/utils/isStandardSyntaxAtRule.cjs
- stylelint/lib/utils/isStandardSyntaxAtRule.mjs
- stylelint/lib/utils/isStandardSyntaxColorFunction.cjs
- stylelint/lib/utils/isStandardSyntaxColorFunction.mjs
- stylelint/lib/utils/isStandardSyntaxCombinator.cjs
- stylelint/lib/utils/isStandardSyntaxCombinator.mjs
- stylelint/lib/utils/isStandardSyntaxComment.cjs
- stylelint/lib/utils/isStandardSyntaxComment.mjs
- stylelint/lib/utils/isStandardSyntaxDeclaration.cjs
- stylelint/lib/utils/isStandardSyntaxDeclaration.mjs
- stylelint/lib/utils/isStandardSyntaxFunction.cjs
- stylelint/lib/utils/isStandardSyntaxFunction.mjs
- stylelint/lib/utils/isStandardSyntaxHexColor.cjs
- stylelint/lib/utils/isStandardSyntaxHexColor.mjs
- stylelint/lib/utils/isStandardSyntaxKeyframesName.cjs
- stylelint/lib/utils/isStandardSyntaxKeyframesName.mjs
- stylelint/lib/utils/isStandardSyntaxProperty.cjs
- stylelint/lib/utils/isStandardSyntaxProperty.mjs
- stylelint/lib/utils/isStandardSyntaxRule.cjs
- stylelint/lib/utils/isStandardSyntaxRule.mjs
- stylelint/lib/utils/isStandardSyntaxSelector.cjs
- stylelint/lib/utils/isStandardSyntaxSelector.mjs
- stylelint/lib/utils/isStandardSyntaxTypeSelector.cjs
- stylelint/lib/utils/isStandardSyntaxTypeSelector.mjs
- stylelint/lib/utils/isStandardSyntaxUrl.cjs
- stylelint/lib/utils/isStandardSyntaxUrl.mjs
- stylelint/lib/utils/isStandardSyntaxValue.cjs
- stylelint/lib/utils/isStandardSyntaxValue.mjs
- stylelint/lib/utils/isUnicodeRangeDescriptor.cjs
- stylelint/lib/utils/isUnicodeRangeDescriptor.mjs
- stylelint/lib/utils/isUnicodeSupported.cjs
- stylelint/lib/utils/isUnicodeSupported.mjs
- stylelint/lib/utils/isUrlFunction.cjs
- stylelint/lib/utils/isUrlFunction.mjs
- stylelint/lib/utils/isValidFontSize.cjs
- stylelint/lib/utils/isValidFontSize.mjs
- stylelint/lib/utils/isValidHex.cjs
- stylelint/lib/utils/isValidHex.mjs
- stylelint/lib/utils/isValidIdentifier.cjs
- stylelint/lib/utils/isValidIdentifier.mjs
- stylelint/lib/utils/isVarFunction.cjs
- stylelint/lib/utils/isVarFunction.mjs
- stylelint/lib/utils/isVariable.cjs
- stylelint/lib/utils/isVariable.mjs
- stylelint/lib/utils/isWhitespace.cjs
- stylelint/lib/utils/isWhitespace.mjs
- stylelint/lib/utils/matchesStringOrRegExp.cjs
- stylelint/lib/utils/matchesStringOrRegExp.mjs
- stylelint/lib/utils/mathMLTags.cjs
- stylelint/lib/utils/mathMLTags.mjs
- stylelint/lib/utils/narrowFixRange.cjs
- stylelint/lib/utils/narrowFixRange.mjs
- stylelint/lib/utils/noFilesFoundError.cjs
- stylelint/lib/utils/noFilesFoundError.mjs
- stylelint/lib/utils/nodeContextLookup.cjs
- stylelint/lib/utils/nodeContextLookup.mjs
- stylelint/lib/utils/nodeFieldIndices.cjs
- stylelint/lib/utils/nodeFieldIndices.mjs
- stylelint/lib/utils/normalizeFixMode.cjs
- stylelint/lib/utils/normalizeFixMode.mjs
- stylelint/lib/utils/normalizeSelector.cjs
- stylelint/lib/utils/normalizeSelector.mjs
- stylelint/lib/utils/optionsMatches.cjs
- stylelint/lib/utils/optionsMatches.mjs
- stylelint/lib/utils/parseCustomMediaQuery.cjs
- stylelint/lib/utils/parseCustomMediaQuery.mjs
- stylelint/lib/utils/parseMediaQuery.cjs
- stylelint/lib/utils/parseMediaQuery.mjs
- stylelint/lib/utils/parseSelector.cjs
- stylelint/lib/utils/parseSelector.mjs
- stylelint/lib/utils/pluralize.cjs
- stylelint/lib/utils/pluralize.mjs
- stylelint/lib/utils/putIfAbsent.cjs
- stylelint/lib/utils/putIfAbsent.mjs
- stylelint/lib/utils/rangesOverlap.cjs
- stylelint/lib/utils/rangesOverlap.mjs
- stylelint/lib/utils/rawNodeString.cjs
- stylelint/lib/utils/rawNodeString.mjs
- stylelint/lib/utils/regexes.cjs
- stylelint/lib/utils/regexes.mjs
- stylelint/lib/utils/removeEmptyLinesBefore.cjs
- stylelint/lib/utils/removeEmptyLinesBefore.mjs
- stylelint/lib/utils/report.cjs
- stylelint/lib/utils/report.mjs
- stylelint/lib/utils/reportCommentProblem.cjs
- stylelint/lib/utils/reportCommentProblem.mjs
- stylelint/lib/utils/resolveSilent.cjs
- stylelint/lib/utils/resolveSilent.mjs
- stylelint/lib/utils/ruleMessages.cjs
- stylelint/lib/utils/ruleMessages.mjs
- stylelint/lib/utils/setAtRuleParams.cjs
- stylelint/lib/utils/setAtRuleParams.mjs
- stylelint/lib/utils/setDeclarationValue.cjs
- stylelint/lib/utils/setDeclarationValue.mjs
- stylelint/lib/utils/typeGuards.cjs
- stylelint/lib/utils/typeGuards.mjs
- stylelint/lib/utils/uniteSets.cjs
- stylelint/lib/utils/uniteSets.mjs
- stylelint/lib/utils/validateObjectWithArrayProps.cjs
- stylelint/lib/utils/validateObjectWithArrayProps.mjs
- stylelint/lib/utils/validateObjectWithProps.cjs
- stylelint/lib/utils/validateObjectWithProps.mjs
- stylelint/lib/utils/validateOptions.cjs
- stylelint/lib/utils/validateOptions.mjs
- stylelint/lib/utils/validateTypes.cjs
- stylelint/lib/utils/validateTypes.mjs
- stylelint/lib/utils/vendor.cjs
- stylelint/lib/utils/vendor.mjs
- stylelint/package.json
Readme
Stylelint
A mighty CSS linter that helps you avoid errors and enforce conventions.
Features
It's mighty as it:
- has over 100 built-in rules for modern CSS syntax and features
- supports plugins so you can create your own custom rules
- automatically fixes problems where possible
- supports shareable configs that you can create or extend
- can be customized to your exact needs
- has 15k unit tests making it robust
- is trusted by companies worldwide like Google and GitHub
And it can be extended to:
- extract embedded styles from HTML, Markdown and CSS-in-JS template literals
- parse CSS-like languages like SCSS, Sass, Less and SugarSS
How it'll help you
It'll help you avoid errors, for example:
- invalid things, e.g. malformed grid areas
- valid things that are problematic, e.g. duplicate selectors
- unknown things, e.g. misspelled property names
And enforce conventions, for example:
- disallow things, e.g. specific units
- enforce naming patterns, e.g. for custom properties
- set limits, e.g. the number of ID selectors
- specify notations, e.g. for modern color functions
We recommend using a pretty printer like Prettier alongside Stylelint. Linters and pretty printers are complementary tools that work together to help you write consistent and error-free code.
Example output
Guides
- User guide
- Developer guide
- Migration guide
- Maintainer guide
- About
Contributors
Stylelint is maintained by volunteers. Without the code contributions from all these fantastic people, Stylelint would not exist. Become a contributor.
Alumni
We'd like to thank all past members for their invaluable contributions, including two of Stylelint's co-creators @davidtheclark and @MoOx.
Sponsors
Thank you to all our sponsors! Become a sponsor.
Backers
Thank you to all our backers! Become a backer.