Skip to content
Snippets Groups Projects
.scss-lint.yml 7.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Linter Documentation:
    # https://github.com/brigade/scss-lint/blob/v0.42.2/lib/scss_lint/linter/README.md
    
    scss_files: 'app/javascript/styles/**/*.scss'
    
    exclude:
      - app/javascript/styles/reset.scss
    
    linters:
      # Reports when you use improper spacing around ! (the "bang") in !default,
      # !global, !important, and !optional flags.
      BangFormat:
        enabled: false
    
      # Whether or not to prefer `border: 0` over `border: none`.
      BorderZero:
        enabled: false
    
      # Reports when you define a rule set using a selector with chained classes
      # (a.k.a. adjoining classes).
      ChainedClasses:
        enabled: false
    
      # Prefer hexadecimal color codes over color keywords.
      # (e.g. `color: green` is a color keyword)
      ColorKeyword:
        enabled: false
    
      # Prefer color literals (keywords or hexadecimal codes) to be used only in
      # variable declarations. They should be referred to via variables everywhere
      # else.
      ColorVariable:
        enabled: true
    
      # Which form of comments to prefer in CSS.
      Comment:
        enabled: false
    
      # Reports @debug statements (which you probably left behind accidentally).
      DebugStatement:
        enabled: false
    
      # Rule sets should be ordered as follows:
      # - @extend declarations
      # - @include declarations without inner @content
      # - properties, @include declarations with inner @content
      # - nested rule sets.
      DeclarationOrder:
        enabled: false
    
      # `scss-lint:disable` control comments should be preceded by a comment
      # explaining why these linters are being disabled for this file.
      # See https://github.com/brigade/scss-lint#disabling-linters-via-source for
      # more information.
      DisableLinterReason:
        enabled: true
    
      # Reports when you define the same property twice in a single rule set.
      DuplicateProperty:
        enabled: false
    
      # Separate rule, function, and mixin declarations with empty lines.
      EmptyLineBetweenBlocks:
        enabled: true
    
      # Reports when you have an empty rule set.
      EmptyRule:
        enabled: true
    
      # Reports when you have an @extend directive.
      ExtendDirective:
        enabled: false
    
      # Files should always have a final newline. This results in better diffs
      # when adding lines to the file, since SCM systems such as git won't
      # think that you touched the last line.
      FinalNewline:
        enabled: false
    
      # HEX colors should use three-character values where possible.
      HexLength:
        enabled: false
    
      # HEX color values should use lower-case colors to differentiate between
      # letters and numbers, e.g. `#E3E3E3` vs. `#e3e3e3`.
      HexNotation:
        enabled: true
    
      # Avoid using ID selectors.
      IdSelector:
        enabled: false
    
      # The basenames of @imported SCSS partials should not begin with an
      # underscore and should not include the filename extension.
      ImportPath:
        enabled: false
    
      # Avoid using !important in properties. It is usually indicative of a
      # misunderstanding of CSS specificity and can lead to brittle code.
      ImportantRule:
        enabled: false
    
      # Indentation should always be done in increments of 2 spaces.
      Indentation:
        enabled: true
        width: 2
    
      # Don't write leading zeros for numeric values with a decimal point.
      LeadingZero:
        enabled: false
    
      # Reports when you define the same selector twice in a single sheet.
      MergeableSelector:
        enabled: false
    
      # Functions, mixins, variables, and placeholders should be declared
      # with all lowercase letters and hyphens instead of underscores.
      NameFormat:
        enabled: false
    
      # Avoid nesting selectors too deeply.
      NestingDepth:
        enabled: false
    
      # Always use placeholder selectors in @extend.
      PlaceholderInExtend:
        enabled: false
    
      # Sort properties in a strict order.
      PropertySortOrder:
        enabled: false
    
      # Reports when you use an unknown or disabled CSS property
      # (ignoring vendor-prefixed properties).
      PropertySpelling:
        enabled: false
    
      # Configure which units are allowed for property values.
      PropertyUnits:
        enabled: false
    
      # Pseudo-elements, like ::before, and ::first-letter, should be declared
      # with two colons. Pseudo-classes, like :hover and :first-child, should
      # be declared with one colon.
      PseudoElement:
        enabled: true
    
      # Avoid qualifying elements in selectors (also known as "tag-qualifying").
      QualifyingElement:
        enabled: false
    
      # Don't write selectors with a depth of applicability greater than 3.
      SelectorDepth:
        enabled: false
    
      # Selectors should always use hyphenated-lowercase, rather than camelCase or
      # snake_case.
      SelectorFormat:
        enabled: false
        convention: hyphenated_lowercase
    
      # Prefer the shortest shorthand form possible for properties that support it.
      Shorthand:
        enabled: true
    
      # Each property should have its own line, except in the special case of
      # single line rulesets.
      SingleLinePerProperty:
        enabled: true
        allow_single_line_rule_sets: true
    
      # Split selectors onto separate lines after each comma, and have each
      # individual selector occupy a single line.
      SingleLinePerSelector:
        enabled: true
    
      # Commas in lists should be followed by a space.
      SpaceAfterComma:
        enabled: false
    
      # Properties should be formatted with a single space separating the colon
      # from the property's value.
      SpaceAfterPropertyColon:
        enabled: true
    
      # Properties should be formatted with no space between the name and the
      # colon.
      SpaceAfterPropertyName:
        enabled: true
    
      # Variables should be formatted with a single space separating the colon
      # from the variable's value.
      SpaceAfterVariableColon:
        enabled: true
    
      # Variables should be formatted with no space between the name and the
      # colon.
      SpaceAfterVariableName:
        enabled: false
    
      # Operators should be formatted with a single space on both sides of an
      # infix operator.
      SpaceAroundOperator:
        enabled: true
    
      # Opening braces should be preceded by a single space.
      SpaceBeforeBrace:
        enabled: true
    
      # Parentheses should not be padded with spaces.
      SpaceBetweenParens:
        enabled: false
    
      # Enforces that string literals should be written with a consistent form
      # of quotes (single or double).
      StringQuotes:
        enabled: false
    
      # Property values, @extend, @include, and @import directives, and variable
      # declarations should always end with a semicolon.
      TrailingSemicolon:
        enabled: true
    
      # Reports lines containing trailing whitespace.
      TrailingWhitespace:
        enabled: true
    
      # Don't write trailing zeros for numeric values with a decimal point.
      TrailingZero:
        enabled: false
    
      # Don't use the `all` keyword to specify transition properties.
      TransitionAll:
        enabled: false
    
      # Numeric values should not contain unnecessary fractional portions.
      UnnecessaryMantissa:
        enabled: false
    
      # Do not use parent selector references (&) when they would otherwise
      # be unnecessary.
      UnnecessaryParentReference:
        enabled: false
    
      # URLs should be valid and not contain protocols or domain names.
      UrlFormat:
        enabled: true
    
      # URLs should always be enclosed within quotes.
      UrlQuotes:
        enabled: true
    
      # Properties, like color and font, are easier to read and maintain
      # when defined using variables rather than literals.
      VariableForProperty:
        enabled: false
    
      # Avoid vendor prefixes. Or rather: don't write them yourself.
      VendorPrefix:
        enabled: false
    
      # Omit length units on zero values, e.g. `0px` vs. `0`.
      ZeroUnit:
        enabled: true