- Add
scroll-marginfamily of properties to allowlist - Add
gapfamily of properties to allowlist - Add
text-underline-offsetproperty to allowlist - Add
place-itemsproperty to allowlist - Add
accent-colorproperty to allowlist - Add
scroll-paddingfamily of properties to allowlist - Add support for Ruby 3.2
- Add
overflow-wraptoPropertySortOrderlist for SMACSS - Remove dependency on
rakegem
- Drop support for Ruby 2.3 or older
- Add
caret-color,::-ms-backdrop,::-webkit-details-marker,place-content,font-variant-numeric,scrollbar-widthto known properties list - Add CSS SVG properties (#977)
- Relax Sass gem dependency to allow 3.6.x
- Add
text-decoration-skipproperty toPropertySpelling - Drop support for Ruby 2.0
- Require
sassgem 3.5.5 or newer - Add grid properties to SMACSS sort order for
PropertySortOrder
- Add support for Sass 3.5. Custom properties are not yet supported.
- Modify all output formats to include a linter even for syntax or encoding errors
- Fix
SpaceAfterCommentto not report lints for file-level annotation comments
- Add
ng-deepto the list recognized by thePseudoElementlinter - Add
classic_BEMconvention forSelectorFormat - Deprecate
strict_BEMconvention forSelectorFormat. Useclassic_BEMinstead. - Add
font-displayandjustify-itemsproperties toPropertySpellinglinter - Add
frunit toPropertyUnitslinter
- Add
cubic-beziertoNameFormatwhitelist - Allow triple-slash (
///) comments inSpaceAfterComment - Add new grid spec properties to
PropertySpelling - Add workaround for negative source range lengths returned by the Sass parser
- Fix
Indentationlinter to work with@importstatements which spanned multiple lines
- Update smacss order
- Add missing transform-origin property to concentric order
- Ignore URLs with variables in UrlFormatter
- Load configuration files found in plugin directories
- Add
containto list of properties allowed byPropertySpelling - Fix
DuplicatePropertyto report duplicate properties inside media queries - Relax gem dependency constraints to allow rake 12.x
- Add outline, flexbox, background clip, attachment, word-wrap, and work-break
properties to
concentricPropertySortsort order - Add background clip and attachment properties to
recessPropertySortsort order - Fix
SpaceAfterCommenthandling of consecutive comments - Fix
SpaceBeforeBraceto check@if/@elsestatements - Fix
ZeroUnitto not report zero values with units incalcexpressions - Fix detection of control comments when
scss-lint:enableis used - Fix
Commentlinter message when usingloudstyle comments
- Fix default
styleconfiguration forSpaceAfterCommenttoone_spaceand to be disabled by default
- Fix regression in
scss_filesoption processing where option was ignored
- Add
SpaceAfterCommentwhich checks for spacing after comment literal
- Drop support for Ruby 1.9.3
Shorthandlinter will now forbid the use of shorthand properties ifallowed_shorthandsoption is set to an empty list- Change Rake task to respect
scss_filesoption if no explicit files are specified
- Fix
scss_filesoption to accept an array of patterns - Fix
--exclude-linterflag - Fix
ColorKeywordlinter to allow color keywords to be used as arguments inmap-*-related function calls - Fix
SpaceAfterCommalinter to report correct column number - Fix
PrivateNamingConventionto consider functions/mixins used inside other functions/mixins - Fix
Shorthandto not report shorthanded values with!importantas having a shorthand length not specified inallowed_shorthands - Fix
UnnecessaryMantissato ignore decimal values in URL literals - Fix
PlaceholderInExtendto report comma sequences starting with a placeholder - Fix
StringQuoteslinter to ignore@charsetdirectives since they must always use double quotes
- Add
background-clipandcliptosmacsspreset sort order - Add
LengthVariablelinter for reporting when variables should be used instead of literal lengths
- Increase minimum required
sassgem version to 3.4.20+ - Modify
Shorthandlinter to report lint if a shorthand of a length not specified in theallowed_shorthandsoption is used - Ignore SCSS functions in
NameFormatlinter - Update default formatter to output column number in addition to line number
- Wrap
@-declaratives in backticks in lint messages
- Fix
PropertySortOrderseparate_groupsoption to work for preset sort orders - Fix
TrailingZeroto report correct lint messages for values with multiple trailing zeros
- Relax
rakegem dependency to allow 11.x.x versions - Add
linear-gradienttoNameFormatwhitelist - Fix
DisableLinterReasonnot reporting inline disable comments on a line following a comment line - Add
Stats--formatoption to output list of linter types ordered by the number of occurrences
- Consider list literals in values checked by
DuplicatePropertylinter - Fix TAP reporter to correctly parse list of files
- Remove unnecessary nesting from TAP reporter output
- Add linter name to TAP YAML output
- Fix
PrivateNamingConventionto handle files that begin with comments - Fix TAP reporter format
- Add support for preprocessing source files via the
preprocess_commandoption
- Add
ignore_consecutiveoption to theDuplicatePropertylinter, allowing duplicate consecutive properties. It acceptstrue,false, or a list of property names to be ignored. - Add
PrivateNamingConventionlinter which enforces that functions, mixins, and variables that follow the private naming convention (default to underscore-prefixed) are defined and used within the same file - Add TAP (Test Anything Protocol) formatter
- Add
outline-{color,style,width}properties torecesssort order list - Fix
TrailingSemicolonto not report false positives for single line list/map literals - Improve compatibility with files that use CRLF and CR for newlines.
- Load
plugin_directoriesrelative to the config file itself - Fix bug in
SingleLinePerPropertythat prevented the linter from checking nested selectors - Add
SpaceAfterVariableColonwhich checks for the spacing after a variable colon - Relax rake dependency version to allow >= 0.9
- Improve
BorderZeroby adding the offending border property to the lint description
- Add
--colorand--no-coloroptions - Add
::contentand::shadowto list of elements recognized byPseudoElement - Fix
UnnecessaryParentReferenceto not report selectors with multiple parent references - Add
background-attachment,transform-{box,origin,style}, andtransform-{delay,duration,property,timing-function}properties to SMACSS property sort order list - Add support for CSS Logical Properties to
PropertySpelling - Add
initialto list of special values inVariableForProperty - Add
::-webkit-full-page-media,::-webkit-search-decoration, and::-webkit-search-results-decorationpseudo elements toPseudoElement - Add
backdrop-filterto list of known properties - Fix
PropertySortOrderto properly handle duplicated properties - Fix
NameFormatto report incorrectly-named variables passed as function arguments - Add global
severityoption to allowing you to specify the default severity for all linters
- Fix passing a file via STDIN
- Fix
ChainedClassesto work with comma sequences split over multiple lines
- Add
placeholder,-moz-*,-ms-*, and-webkit-*toPseudoElementlinter - Fix
SpaceAfterCommato not infinite loop on map literals as arguments spanning multiple lines
- Add
whitelistparameter toMergeableSelector - Add
PseudoElementlinter which checks for the use of double colons with pseudo elements and single colons with pseudo classes - Add
disabled_propertiesoption toPropertySpellingallowing properties to be prohibited from use - Add support for linting files via STDIN by specifying
--stdin-file-pathso the appropriate configuration can be applied based on the path - Add
styleoption toCommentlinter allowing loud comments to be preferred over silent comments - Add
ChainedClasseslinter which checks for the use of chained classes (a.k.a. adjoining classes) - Add
at_least_one_spaceoption toSpaceAroundOperatorlinter
EmptyLineBetweenBlockslints on@mediaand@at-rootnow- Improve performance of
Indentationlinter - Change
Indentationlinter withallow_non_nested_indentationto allow any node type to be arbitrarily indented as long as it a child of the root document node (previously only rule set declarations were allowed)
- Fix
TrailingSemicolonfalse positive for multiline variable declarations - Fix control comments to work when applied on consecutive lines
- Fix linters to not inspect interpolation in
/*...*/comments due to the large number of bugs with the source ranges returned by the Sass parser - Fix line number reporting for
SingleLinePerSelectorwith comma sequences containing multiple sequences on a single line - Fix
SpaceAfterVariableNameto not report lints for colons with spaces inside map literals - Fix
MergeableSelectorto not report selectors with multiple parent references - Fix
SingleLinePerSelectorto report correct line number for sequences spread over multiple lines
- Fix
SpaceAroundOperatorto allow newlines - Fix
HexValidationto ignore mid-word hex strings - Fix
ColorVariableto ignore color functions in variable declaration
- Fix
TrailingSemicolonfor variables with!defaultand!global. - Check
!defaultand!globalvariable declarations and!optional@extenddirectives inBangFormat
- Enhance Rake task to support command line flags
- Add
no_spaceandat_least_one_spacestyle options toSpaceAfterComma
- Improve
ColorVariableto flag uses of rgb/rgba/hsl/hsla - Return successful status code instead of 81 when all files matched by
specified glob patterns are excluded by
--excludeflags andexcludeconfiguration settings, as it was confusing.
- Fix
SpaceAroundOperatorlinter to not report false positives for operators in interpolation - Improve performance of
ElsePlacementlinter to better handle large lists of@if/@else if/@elsestatements - Fix
TrailingSemicolonto report missing semicolons when trailing comment ended with a semicolon - Fix
VariableForPropertyto not erroneously report property values with!important
- Add
DisableLinterReasonlinter which enforces including a comment explaining why a linter was disabled via a control comment - Add
SpaceAroundOperatorlinter which enforces whitespace padding around mathematical operators - Add
CleanFilesreporter which displays all files that were free of lints - Add flexbox properties to
recesspreset sort order - Add flexbox properties to
smacssordering - Add
TransitionAlllinter which reports the use oftransition: all
- Improve
SingleLinePerSelectorto report selectors with descendant selectors on separate lines
- Fix
SpaceAfterVariableNamelinter not being included in linter set - Fix handling of consecutive control comments to properly disable linters
- Fix handling of control comments preceded by normal comments
- Fix
NestingDepthlinter not handling rules with no selectors - Fix
MergeableSelectormessages to condense newlines - Fix
UnnecessaryMantissato not report decimal values in quoted strings
- Fix regression where linters were enabled by default even if explicitly disabled in the default configuration
- Add support for loading custom linters via the
plugin_directoriesandplugin_gemsconfiguration options (experimental) - Add
ExtendDirectivelinter which checks for any usage of the@extenddirective. - Add
TrailingWhitespacelinter which reports whitespace characters at the end of a line - Add
SpaceAfterVariableNamelinter which checks that there are no spaces between a variable name and a colon
- Change
NameFormatto no longer check placeholder names, as this is handled by theSelectorFormatlinter - Change
NestingDepthto allow parent selectors to be ignored in depth count via theignore_parent_selectorsconfiguration option
- Fix
ColorVariablefrom crashing when variable interpolation occurs in multiline comments - Fix
PropertySortOrder'signore_unspecified: falsebehavior to not care about the relative order of unspecified properties at the end of a list of properties - Fix
PropertyUnitsfor properties that have multiple unit-like values (e.g. shorthand properties) and quoted values - Fix control comment processing for
FinalNewline,SpaceBetweenParens, andTrailingNewline - Fix
ElsePlacementto lint nested@ifstatements
- Add
BemDepthwhich checks the number of BEM elements is under a specified maximum
- Load configuration file from user's home directory if one exists and no other configuration file is specified or in the current working directory
- Improve issue reporting instructions displayed when scss-lint crashes
- Remove
XMLformatter (see theCheckstyleformatter for an XML-based alternative)
- Fix
Indentationto not report@importdirectives spread across multiple lines - Fix
Indentationlinter from crashing on@elsestatements withallow_non_nested_indentationset totrue - Update default configuration to work with projects using the
syckYAML parser - Fix
ColorKeywordto not report lints for map keys with color keyword names
- Change configuration loading behavior so that defining lists in a custom configuration will completely override the old list instead of adding to it
- Fix
DeclarationOrderlinter to report lints for items within media queries - Add
allowed_shorthandsoption forShorthandlinter - Add
allowedoption toCommentlinter specifying regex of allowed multi-line comments, such as copyright notices - Fix bug where control comments could filter out lints from other files depending on scan order
- Ignore
currentColor,inherit, andtransparentvalues inVariableForProperty - Add
min_propertiesoption toPropertySortOrderto allow specifying a threshold number of properties that must be present before linting occurs - Fix
PropertySortOrderto lint sort order of nested properties - Add
one_space_or_newlinestyleoption toSpaceAfterPropertyColon - Fix
ColorVariableto ignore literal strings containing color keywords - Rename
scss-lintgem toscss_lintto follow RubyGems best practices for naming gems. This only affects the name you use inGemfiles or when yougem install; everything else remains the same.
- Rename
BEMoption onSelectorFormattostrict_BEMto emphasize that this is a particular dialect which may not be what developers expect - Allow
SelectorFormatconvention explanations to be customized via the#{type}_convention_explanationandconvention_explanationoptions - Add
camel_caseandsnake_caseconventions toNameFormat - Remove
BEMconvention fromNameFormat, as it didn't make sense in this context sinceNameFormatdoes not deal with selectors - Add support for function, mixin, or variable-specific conventions to
NameFormat - Add support for custom convention explanations to
NameFormat
- Fix
PropertyUnitsto not error on properties with function call values - Fix
DeclarationOrderfalse positives on lines of the same type of node - Fix
PropertyUnitsfalse positives on unicode escape sequences and string values that look like units - Add additional units to default configuration for
PropertyUnits, including durations, frequencies, angles, and resolutions
- Fix
SpaceAfterPropertyColonto report nested properties - Add
PropertyUnitsallowing customization of which units are allowed for specific properties - Allow color literals in map declarations and the
rgbahelper function inColorVariable - Gracefully handle when a library specified via
-r/--requireis not found and return a semantic exit codeEX_UNAVAILABLE(69) - Improve message of
DeclarationOrderto specify the line number of the out-of-order item and the line number of where it was expected to be - Return helpful error message and unsuccessful exit code when all files
matched by specified glob patterns are excluded by
--excludeflags andexcludeconfiguration settings - Change exit code returned when file globs patterns did not match any files to be different from the exit code returned when a specified file does not exist
- Fix
ColorVariableto not report occurrences oftransparentwhen appearing in function calls or list literals - Fix infinite loop in control comment processor when dealing with parse nodes with no children with line numbers
- Change
VendorPrefixconfig optionsincludeandexcludetoadditional_identifiersandexcluded_identifiers, respectively - Rename
VendorPrefixestoVendorPrefix - Add
animation*properties to concentric.txt - Fix bug where attempting to lint a non-existent file would result in a crash
- Add
ImportantRulelinter which reports uses of!importantin properties - Add
VariableForPropertylinter which enforces using variables for specified property values instead of literal values - Add
conventionoption toBorderZeroallowingnoneto be preferred over zero - Add
separate_groupsoption toPropertySortOrderto specify that groups of properties should be visually separated - Add
PropertyCountlinter which reports rule sets with a large number of properties - Add
ColorVariablelinter which enforces the use of color literals in variable declarations only - Add
break-after,break-before,break-inside, andtext-size-adjustto list of recognized properties - Add
allow_non_nested_indentationoption toIndentationlinter - Allow files without
.scss/.cssextension to be linted if they are passed explicitly (i.e. you do not specify a directory, but the file itself)
- Remove support for per-directory configuration and
inherit_fromfrom the configuration system
- Fix bug in
StringQuoteswhere Sass script in non-silent comments would cause a crash - Fix control comments placed before
@includeblocks to apply within them - Fix crash in
PropertySortOrderwhen non-existent preset sort order or otherwise invalid sort order are specified in the configuration - Fix recognition of control comments in selector comma sequences
- Fix crash in
BangFormat,ImportantRule, andVendorPrefixeswhen linting properties with list literals containing empty lists
- Call
Kernel.exitwith status code returned by CLI in rake task (unless 0) - Allow list of files and glob patterns to be passed as task arguments to rake task
- Allow custom configuration file to be specified in rake task
- Fix infinite loop in
SpaceAfterCommafor arguments spanning multiple lines
- Fix regression in rake task
- Fix grammar of lints reported by
SelectorFormat - Add .projections.json configuration file
- Fix regression in
--requireswitch that caused custom formatters to not berequired before they were created - Fix bug in
BangFormatwhere lines without a semicolon would cause an infinite loop
- Add support for disabling/enabling linters via inline comments
- Add
smacsssort order option forPropertySortOrder - Add
recesssort order option forPropertySortOrder - Add
allow_leading_underscoreoption toNameFormatto allow the leading underscore convention to denote private functions
- Change
IdWithExtraneousSelectortoIdSelectorand modify behavior to always report a lint when an ID appears as part of a selector.
- Fix regression in default configuration for
QualifyingElementso that elements with attributes, classes, or ids are disallowed by default - Fix error message for
TrailingSemicolonwhere lines without a semicolon would incorrectly be reported as having a space before the semicolon - Fix
BangFormatlinter to not report lints for exclamation points in strings - Update minimum version of
sassgem to 3.4.1 to fix a parser bug - Fix
DuplicatePropertynot reporting duplicate properties in nested rule sets - Fix
TrailingSemicolonhandling of comma-separated@imports - Fix
SelectorFormatto not allow format of pseudo-selectors to be defined, as they are always hyphenated lowercase - Fix
Indentationto not crash on@at-rootdirectives with comments inside - Fix
DuplicatePropertyto report correct name of duplicated property - Fix
EmptyLineBetweenBlocksto allow trailing comments after rule sets (e.g. control comments disabling linters)
- Add
VendorPrefixeslinter which ensures only whitelisted vendor-prefixed properties are used - Add
scss_filesconfiguration option allowing a default set of files to be linted if no files are explicitly specified - Add
BangFormatlinter which enforces spacing around the!for!importantand!default - Add
new_lineoption toSpaceBeforeBracelinter enforcing opening curly braces start on a new line - Add
NestingDepthlinter which ensures selectors are nested only up to a specified maximum depth - Add support to
SelectorFormatfor specifying different conventions for different types of selectors via the<type>_conventionoptions - Add
@importcheck toTrailingSemicolon - Add support for differentiating
@includes with actual content versus no-content@includes inDeclarationOrder - Add support for checking the ordering of content within
@includes - Add
ImportPathlinter which ensures paths for@importdirectives follow a certain format - Add
QualifyingElementlinter which checks for unnecessarily-qualified element selectors - Add
--outflag which allows the output of the last formatter specified via the--formatflag to be redirected to a file - Add
--requireflag allowing arbitrary Ruby modules to be loaded (facilitating custom reporters)
- Improve message reported by
PropertySortOrderto specify the expected sort order - Enforce UTF-8 encoding by default
- Change
BEMconvention ofSelectorFormatconventionoption tohyphenated_BEM, and introduceBEMformat as specified in https://bem.info/method/definitions/ - Prefix all syntax error messages with "Syntax Error:"
- Fix bug in
SpaceAfterPropertyName/TrailingSemicolonlinters where lint would be reported for oneline properties following a selector with interpolation - Fix bug in
SpaceAfterPropertyColon/SpaceAfterPropertyName/TrailingSemicolonlinters where lint would be reported for one-line properties following a selector with interpolation - Fix
PropertySpellinglinter to check the names of nested properties
- Add
TrailingZerolinter which checks for unnecessary zeros following a decimal point - Add
SelectorFormatlinter which checks that the names of ids, classes, etc. in selectors match a desired convention - Add JSON formatter
- Update list of known properties (used by
PropertySpellinglint) - Enhance
TrailingSemicolonto check for more than one semicolon at the end of a statement - Remove
CapitalizationInSelector, which has been superseded by the more powerfulSelectorFormatlinter
- Fix bug where SassScript selectors referring to the current selector would result in a crash
- Fix bug in
EmptyLineBetweenBlockslinter where lint would incorrectly be reported when comments immediately followed the closing brace of a rule set - Fix bug in
PropertySortOrderwhere properties within media queries were not checked for sort order - Fix bug in
UrlQuoteslinter where lint would be reported for data URIs - Fix bug in
UnnecessaryParentReferencewhere selectors with multiple&references where one&was concatenated would incorrectly report a lint
- Fix bug in
StringQuoteswhere strings with interpolation were incorrectly being linted - Upgrade minimum
sassversion dependency to 3.4.x series
- Fix broken
ignore_unspecifiedoption inPropertySortOrder - Add linting of
@includeand@if/@elseblocks inPropertySortOrder - Fix
HexValidationbug incorrectly reporting lints for 8 character hex codes in Microsoftfilterproperty - Fix
UnnecessaryParentReferenceincorrectly reporting lints for nested selectors with more than one parent reference
- Fix
TrailingSemicolonbug with@includeblocks that didn't contain properties - Add more properties to
concentricpreset order
- Fix
TrailingSemicolonincorrectly reporting@includes with block contents - Fix
UnnecessaryParentReferenceincorrectly reporting using of&with concatenation - Fix
SingleLinePerSelectorcrashing for selectors that contained interpolated function calls - Add additional properties to the
concentricpreset order - Fix
LeadingZerocrashing on multi-line strings with interpolation
- Add
severityoption allowing the severity level of a lint to be configured - Include linter name in lint description
- Add
characteroption toIndentationlinter which allows specifying tabs or spaces as the indentation character of choice - Add
SingleLinePerPropertylinter which checks that properties each reside on their own line - Add support to
PropertySortOrderto specify a preset sort order via theorderproperty - Add
concentricpreset sort order to thePropertySortOrderlinter - Add
ignore_unspecifiedoption toPropertySortOrderto indicate that unspecified properties in custom sort orderings are to be ignored (i.e. they can appear anywhere) - Add
ignoreoption toCompass::PropertyWithMixinlinter allowing you to not warn for certain properties - Add
ignored_namesoption toCapitalizationInSelector, allowing you to whitelist certain names as not needing to follow the convention - Add
ignored_typesoption toCapitalizationInSelector, allowing you to selectively ignore capitalization in certain types of selectors - Add
UnnecessaryParentReferencelinter which checks nested selectors for extraneous parent references - Teach
TrailingSemicolonto report lints for uses of@extend,@include, or variable declarations without semicolons
- Change CLI to return exit code of
1if only warnings are reported, or2if any errors are reported (was previously65for either) - Update
sassdependency to require 3.3.7 or later (fixes a parsing bug) - Include test files in gem distribution
- Rename
TrailingSemicolonAfterPropertyValuetoTrailingSemicolon
- Fix bug in
SpaceBeforeBracelinter where an erroneous lint would be reported for a brace on its own line - Fix bug in
SpaceAfterCommawhere trailing spaces followed by a newline after a comma would incorrectly report a lint - Fix
SingleLinePerSelectorto ignore any selectors that contain interpolation
- Fix bug in
Indentationlinter where it would crash when a comment preceded a line whose indentation was being checked
- Fix bug in
Indentationlinter where@at-rootdirectives with inline selectors would erroneously report incorrect indentation levels - Fix bug in
Indentationlinter where rule nodes with selectors spread over multiple lines and a single inline property would incorrectly report a lint - Add
ElsePlacementlinter which checks the position of@elsedirectives with respect to the previous curly brace - Replace
allow_extra_spacesoption onSpaceAfterPropertyColonlinter withstylewhich accepts multiple different property spacing styles - Fix bug in
PlaceholderInExtendlinter which erroneously report lints for selectors with interpolated strings
- Fix bug in
TrailingSemicolonAfterPropertyValueto not crash on a one-line property without a semicolon - Fix crash due to
DefaultReporternot being loaded on Windows machines - Fix bug in
MergeableSelectorwhere it would crash checking rules with interpolation
- Extend
DuplicateRoottoMergeableSelectorlinter to check for nested rule sets that can be merged in addition to root-level ones - Add
ConfigReporterformatter which returns a valid.scss-lint.ymlconfiguration file where all linters that caused a lint are disabled - Fix bug in
Indentationlinter where@at-rootdirectives were not treated as an increase in indentation level - Fix
ZeroUnitto only report lints for zero values in lengths - Fix crash in
SingleLinePerSelectorfor selectors containing only interpolation - Add
--show-formattersoption to display all available formatters - Add
HexValidationto validate hex colors - Split
HexFormatintoHexLength(checking length) andHexNotation(checking lowercase / uppercase)
- Fix bug in
SpaceAfterPropertyColonlinter for properties with no terminating semicolon - Fix bug in
DuplicateRootlinter where incorrect lints would be reported in@keyframesdirectives
- Fix character escaping in XML attributes output by
XMLReporter - Fix bug in
ZeroUnitwhere hex color codes or real numbers with a zero decimal unit would report a false positive - Fix bug in
Shorthandlinter where!importantpriority overrides would prevent lints from being reported - Add
UnnecessaryMantissalinter which checks for zero value decimals in numbers (i.e. prefers4over4.0) XMLReporternow includescolumnandlengthinformation for lints- Fix class of bugs in
SpaceBeforeBracewhere a false positive could be reported for braces that aren't part of declarations - Teach
Compass::PropertyWithMixinto preferinline-blockmixin overdisplay: inline-block - Add
DuplicateRootlinter which checks for identical rules used as root selectors in a document
- Add
allow_single_line_paddingoption toSpaceBeforeBracewhich allows you to visually align multiple single line blocks with extra padding spaces - Add
FinalNewlinelinter which checks for existence/lack of final newlines in files - Fix bug in
ZeroUnitlinter where a string with a substring that looked like a zero followed by units would incorrectly report a lint - Fix bug in
TrailingSemicolonAfterPropertyValuewhere a lint would be incorrectly reported for properties split up over multiple lines - Fix bug in
UrlFormatwhere using a data URL would be incorrectly reported as a URL with protocol - Add
allow_extra_spacesoption toSpaceAfterPropertyColonwhich allows you to use extra spaces to align values - Fix bug in
SpaceBeforeBracelinter when using{in single quotes
- Add support to
DuplicatePropertylinter to detect duplicate properties in placeholder and mixin declarations - Add option
ignore_single_line_blocksto theEmptyLineBetweenBlockslinter - Add
UrlFormatlinter which reports uses ofurl(...)with URLs containing protocols or domains - Replace
colorizedependency withrainbows
- Fix bug in
NameFormatlinter where it would incorrectly report a lint for transform-related Compass mixins
- Fix bug in
SpaceBeforeBracewhere it would report a lint for #{...} interpolation erroneously
- Fix bug in
SpaceBeforeBracewhere it would not report a lint for one-line rule sets
- Add
conventionoption toNameFormatallowing custom convention to be specified - Fix bug in
SpaceBetweenParenslinter for majority of cases where a lint would be reported if parens existed inside a comment - Add basic rake task
- Update Sass dependency to 3.3.0. All previous versions are not supported.
- Fix
StringQuoteslinter to not report lints for strings containing interpolation - Fix configuration loading to gracefully report YAML errors
- Add
orderoption toSortedPropertieslinter allowing an explicit ordering of properties to be specified - Rename
SortedPropertieslinter toPropertySortOrder
- Fix bug in XML output where
DuplicatePropertylinter message would result in invalid XML
- Merge
DeclaredNameandUsageNameintoNameFormatlinter
- Downgrade
colorizedependency from0.6.0back to0.5.8
- Fix bug where
SingleLinePerSelectorwould incorrectly report lint for selectors where interpolation contained commas - Gracefully handle files with invalid byte sequences
- Add
FilesReporterwhich prints out just the files that had lints - Add
excludeoption to individual linter configurations, which disables that linter for files matching any of the specified set of globs - Fix bug where scss-lint would crash if a
.scss-lint.ymlfile contained only comments - Teach scss-lint to report a lint when double quotes are used when single quotes will suffice (can be configured to prefer double quotes instead)
- Teach scss-lint to prefer quoted URLs
- Upgrade
colorizedependency from0.5.8to0.6.0 - Fix bug where
SelectorDepthwould error when encountering percentages inside of@keyframedeclarations.
- Fix bug where
datadirectory was not included in gemspec
- Add
extra_propertiesoption toPropertySpellinglinter so additional CSS properties can be added to the whitelist - Teach scss-lint to report a lint when rule sets, functions, or mixins are not separated from each other with an empty line
- Fix bug where
SelectorDepthcould incorrectly report a lint for selectors with sequences chained onto a parent selector - Teach scss-lint to detect non-existent/misspelled properties
- Teach
IdWithExtraneousSelectorlinter to not report lints for IDs with just pseudo-selectors - Teach scss-lint to detect spaces in parentheses
- Fix bug where
DuplicatePropertylinter would incorrectly report lints for properties with vendor-prefix values
- Fix bug where
ColorKeywordwould incorrectly report a lint for identifiers containing color keywords as substrings - Teach scss-lint to detect selectors with large depths of applicability
- Add
-f/--formatflags to allow different output format type - Remove
--xmlflag in favor of-f XML/--format XML
- Teach scss-lint to load configuration via the
--configflag - Teach scss-lint to load configuration based on location of file being linted
- Allow
Indentationlinter to have configurable indent width - Add
excludedirective to configuration system, allowing you to specify glob patterns of files to not lint - Allow use of wildcards when configuring linters so you can enable/disable entire namespaces
- Use semantic exit codes for common error conditions
- Teach scss-lint to prefer Compass mixins over some CSS properties
- Fix bug where
Shorthandlinter would crash on a numeric property value with no trailing semicolon
- Split
PropertyFormatlinter intoSpaceAfterPropertyColon,SpaceAfterPropertyName, andTrailingSemicolonAfterPropertyValuelinters - Teach scss-lint to prefer spaces after commas in argument lists
- Display better error message for unexpected linter errors, including the name of the linter, the file that the linter failed on, and a link to the issue tracker
- Update Sass dependency from
3.2.10->3.3.0.rc.1for better source mapping - Fix bug in
ColorKeywordwhere an incorrect lint would be reported for the "transparent" color keyword
- Fix bug in
Shorthandlinter where a property with interpolation that started with a shorthandable property name could report false positives - Improve message reported by
Shorthandlinter to display the shortest possible form - Syntax errors are now differentiated from lint warnings in
scss-lint's output by usingEandWrespectively. NoZeroBeforeDecimallinter has been renamed toLeadingZero- Fix bug where
LeadingZerolinter would not report lints for numeric values appearing in Sass script (e.g. function arguments) - Teach scss-lint to detect duplicate properties in a rule set
- Teach scss-lint to detect incorrect indentation
- Fix bug where
HexFormatlinter would crash on color keywords - Fix bug where
ColorKeywordlinter would not detect color keywords in shorthand properties and function/mixin calls
- Teach scss-lint to prefer hexadecimal colors over color names
- Linters can now define
visit_*methods for visiting selectors - Linters can now report lints with context-specific descriptions
- Fix bug where
CapitalizationInSelectorwould report lint for attribute selectors with values containing capital letters DeclaredNameandUsageNamelinters now report context-specific lint descriptions (i.e. they mention whether the offending item is a function, variable, etc.)TypeInIdSelectorwas renamed toIdWithExtraneousSelectorand now reports a lint for the use of an ID with any other selector- Upgrade Sass gem dependency to 3.2.10
- Fix bug where
ZeroUnitlinter would not report lints for properties with lists of values or Sass script - Fix bug where
HexFormatlinter would report lints for ID selectors with names that could be hexadecimal color values
- Add
--show-lintersflag for listing all linters available to scss-lint - Change
--ignore-linterflag to useCamelCaselinter names instead ofsnake_case - Removed
-xalias for--xmlflag - Change
-i/--ignore-linterflags to-x/--exclude-linter - Add
-i/--include-lintersflag to specify a subset of linters - Fix bug where using transform-related functions were reported as lints
- Teach scss-lint that
.5emis preferred over0.5em - Teach scss-lint to prefer lowercase characters in selectors
- Linters names no longer have a
Lintersuffix - Teach scss-lint that
@extendshould use placeholder selectors - Fix bug where a lint would be reported for hyphened keyword arguments
- Teach scss-lint to recognize vendor-prefixed properties when enforcing sort order
- Handle non-existent files/directories gracefully
- Teach scss-lint that opening curly braces should be preceded by one space
- Teach scss-lint that placeholder names should be lowercase and use hyphens
- Upgrade Sass gem dependency from 3.2.8 -> 3.2.9
- Fixed crash that occurred for directive nodes (
@media, etc.)
- Teach scss-lint that
border: 0;is preferred overborder: none; - Teach scss-lint that variable names should not contain underscores or capital letters
- Teach scss-lint that function and mixin names follow same rules as variables
- Fix shorthand linter to work with Sass script expressions
- Fix property format linter to work with interpolated expressions
- Teach scss-lint to check names of functions/mixins/variables in scripts
- Fix hex color linter to work with Sass script expressions
- Teach scss-lint that // comments should be preferred over /**/ comments
- Upgrade Sass gem dependency from 3.2.7 -> 3.2.8
- Fixed
--ignore-lintersflag
- Fixed
--versionflag to not error due to not autoloadingVERSION - Trailing newlines are no longer output by default in linter output
- Major refactor of the Linter class to use Visitor pattern
- Fix shorthand linter for lists containing function calls
- Only lint files with
cssorscssextensions - Fix recursive directory scanning
- Fix specs on Sass gem >= 3.2.6 (
ShorthandLinterwas failing) - Add changelog (the thing you're reading)
- Add command-line flags (e.g. --version, --help)
- Add --xml flag for outputting XML
- Add --exclude flag for excluding SCSS files from being linted
- Add --ignore-linters flag to skip lints produced by certain linters
- Version bump to remove erroneously added untracked files from gem
- Improve clarity of shorthand linter through naming
- Teach scss-lint
property: 10px 10pxcan be shorter - Clarify ShorthandLinter spec structure
- Add linter for unnecessary types in selectors
- Teach scss-lint that selectors each get their own line
- Teach scss-lint about nested property syntax
- Teach scss-lint to detect too-long shorthand values
- Make scss-lint detect space before semicolon
- Add linter for order of declarations
- Initial public release