options:
  formatter: stylish
files:
  include: '**/*.s+(a|c)ss'
  ignore:
    - '**/theme-variables/*.scss'
    - '**/vendor/*.scss'
    - '**/_normalize.scss'
    - '**/print.scss'
    - '**/variables/*.scss'
    - '**/mixins/*.scss'

rules:
  # Extends
  extends-before-mixins: 1
  extends-before-declarations: 2
  placeholder-in-extend: 2

  # Mixins
  mixins-before-declarations: 0

  # Line Spacing
  one-declaration-per-line: 1
  empty-line-between-blocks: 2
  single-line-per-selector: 1

  # Disallows
  no-attribute-selectors: 1
  no-color-hex: 2
  no-color-keywords: 2
  no-color-literals: 2
  no-combinators: 1
  no-css-comments: 1
  no-debug: 1
  no-disallowed-properties: 1
  no-duplicate-properties: 1
  no-empty-rulesets: 1
  no-extends: 0
  no-ids: 1
  no-important: 1
  no-invalid-hex: 1
  no-mergeable-selectors: 2
  no-misspelled-properties: 1
  no-qualifying-elements: 1
  no-trailing-whitespace: 1
  no-trailing-zero: 1
  no-transition-all: 1
  no-universal-selectors: 1
  no-url-domains: 1
  no-url-protocols: 1
  no-vendor-prefixes: 0
  no-warn: 1
  property-units: 1

  # Nesting
  declarations-before-nesting: 2
  force-attribute-nesting: 1
  force-element-nesting: 1
  force-pseudo-nesting: 1

  # Name Formats
  class-name-format:
    - 2
    -
      convention: ^(_)?(l|o|c|u|s|js)-[a-z0-9-]+((_{1}|-{2})?[a-z0-9-]+)?(-{2}[a-z0-9-]+)?[a-z0-9]$
      convention-explanation: 'Classes must be namespaced (.l-|.o-|.c-|.u-|.s-|.js-) and follow BEM rules with single underscore for elems and double dash for modifiers. if 3rd party uses different convention disable class name linting with inline comment'
  function-name-format: 1
  id-name-format: 0
  mixin-name-format: 1
  placeholder-name-format: 1
  variable-name-format: 0

  # Style Guide
  attribute-quotes: 1
  bem-depth: 1
  border-zero: 1
  brace-style: 1
  clean-import-paths: 1
  empty-args: 1
  hex-length: 1
  hex-notation: 1
  indentation:
      - 1
      - size: 4
  leading-zero: 1
  max-line-length: 0
  max-file-line-count:
      - 1
      - length: 700
  nesting-depth: 1
  property-sort-order: 0
  pseudo-element: 0
  quotes: 0
  shorthand-values: 1
  url-quotes: 1
  variable-for-property: 1
  zero-unit: 2

  # Inner Spacing
  space-after-comma: 1
  space-before-colon: 1
  space-after-colon: 1
  space-before-brace: 1
  space-before-bang: 1
  space-after-bang: 1
  space-between-parens: 1
  space-around-operator: 1

  # Final Items
  trailing-semicolon: 1
  final-newline: 0
