# Note: This is not directly taken from the sass-lint from zurb foundation code:
# https://github.com/zurb/foundation-sites/blob/develop/.scss-lint.yml
# This should align as closely as possible with Drupal code standards:
# https://www.drupal.org/docs/develop/standards/css/csscomb-settings-for-drupal-css-formatting-and-sort-tool

options:
  formatter: stylish
files:
  include: 'scss/**/*.scss'
rules:
  # Extends
  extends-before-mixins: 1
  extends-before-declarations: 1
  placeholder-in-extend: 1

  # Mixins
  mixins-before-declarations: 1

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

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

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

  # Name Formats
  class-name-format:
    - 1
    - convention: hyphenatedbem
  function-name-format: 1
  id-name-format: 0
  mixin-name-format: 1
  placeholder-name-format: 1
  variable-name-format: 1

  # Style Guide
  attribute-quotes: 1
  bem-depth: 0
  border-zero: 1
  brace-style: 1
  clean-import-paths: 1
  empty-args: 1
  hex-length: 1
  hex-notation: 1
  indentation: 1
  leading-zero: 1
  max-line-length: 0
  max-file-line-count: 0
  nesting-depth: 1
  property-sort-order:
    - 1
    -
      ignore-custom-properties: true
      order:
        # Specific - CSS property order
        # https://www.drupal.org/docs/develop/standards/css/csscomb-settings-for-drupal-css-formatting-and-sort-tool
        - '$charset'
        - '$import'
        - '$namespace'
        - '$extend'
        - '$variable'
        - '$include'

        # Position
        - 'position'
        - 'z-index'
        - 'top'
        - 'right'
        - 'bottom'
        - 'left'

        # Disposition
        - 'display'

        - 'flex'
        - 'flex-basis'
        - 'flex-direction'
        - 'flex-flow'
        - 'flex-grow'
        - 'flex-shrink'
        - 'flex-wrap'
        - 'justify-content'
        - 'order'

        - 'box-align'
        - 'box-flex'
        - 'box-orient'
        - 'box-pack'

        - 'align-content'
        - 'align-items'
        - 'align-self'

        - 'columns'
        - 'column-gap'
        - 'column-fill'
        - 'column-rule'
        - 'column-span'
        - 'column-count'
        - 'column-width'

        - 'vertical-align'
        - 'float'
        - 'clear'

        # Dimension
        - 'box-sizing'

        - 'width'
        - 'min-width'
        - 'max-width'

        - 'height'
        - 'min-height'
        - 'max-height'

        - 'margin'
        - 'margin-top'
        - 'margin-right'
        - 'margin-bottom'
        - 'margin-left'
        - 'margin-collapse'
        - 'margin-top-collapse'
        - 'margin-right-collapse'
        - 'margin-bottom-collapse'
        - 'margin-left-collapse'

        - 'padding'
        - 'padding-top'
        - 'padding-right'
        - 'padding-bottom'
        - 'padding-left'


        # Global appearance
        - 'appearance'
        - 'opacity'
        - 'filter'
        - 'visibility'

        - 'size'
        - 'resize'
        - 'zoom'

        - 'transform'
        - 'transform-box'
        - 'transform-origin'
        - 'transform-style'

        # Border
        - 'outline'
        - 'outline-color'
        - 'outline-offset'
        - 'outline-style'
        - 'outline-width'

        - 'border'
        - 'border-top'
        - 'border-right'
        - 'border-bottom'
        - 'border-left'
        - 'border-width'
        - 'border-top-width'
        - 'border-right-width'
        - 'border-bottom-width'
        - 'border-left-width'

        - 'border-style'
        - 'border-top-style'
        - 'border-right-style'
        - 'border-bottom-style'
        - 'border-left-style'

        - 'border-radius'
        - 'border-top-left-radius'
        - 'border-top-right-radius'
        - 'border-bottom-right-radius'
        - 'border-bottom-left-radius'
        - 'border-radius-topleft'
        - 'border-radius-topright'
        - 'border-radius-bottomright'
        - 'border-radius-bottomleft'

        - 'border-color'
        - 'border-top-color'
        - 'border-right-color'
        - 'border-bottom-color'
        - 'border-left-color'

        - 'border-collapse'
        - 'border-spacing'

        # Background
        - 'background'
        - 'background-image'
        - 'background-color'
        - 'background-attachment'
        - 'background-clip'
        - 'background-origin'
        - 'background-position'
        - 'background-repeat'
        - 'background-size'

        # Shadow
        - 'box-shadow'

        # Animation
        - 'animation'
        - 'animation-delay'
        - 'animation-duration'
        - 'animation-iteration-count'
        - 'animation-name'
        - 'animation-play-state'
        - 'animation-timing-function'
        - 'animation-fill-mode'

        - 'transition'
        - 'transition-delay'
        - 'transition-duration'
        - 'transition-property'
        - 'transition-timing-function'


        # Content
        - 'content'

        - 'list-style'
        - 'list-style-image'
        - 'list-style-position'
        - 'list-style-type'

        - 'overflow'
        - 'overflow-x'
        - 'overflow-y'
        - 'clip'

        # Text
        - 'font'
        - 'font-family'
        - 'font-size'
        - 'font-smoothing'
        - 'osx-font-smoothing'
        - 'font-style'
        - 'font-variant'
        - 'font-weight'
        - 'src'

        - 'word-spacing'
        - 'letter-spacing'
        - 'line-height'

        - 'color'
        - 'direction'
        - 'text-align'
        - 'text-decoration'
        - 'text-indent'
        - 'text-overflow'
        - 'text-rendering'
        - 'text-size-adjust'
        - 'text-shadow'
        - 'text-transform'

        - 'white-space'
        - 'word-break'
        - 'word-wrap'
        - 'hyphens'
        - 'quotes'

        # Divers
        - 'pointer-events'
        - 'cursor'

        - 'backface-visibility'
        - 'caption-side'
        - 'empty-cells'
        - 'table-layout'
        - 'user-select'

        - 'interpolation-mode'
        - 'marks'
        - 'page'
        - 'set-link-source'
        - 'unicode-bidi'
        - 'speak'
  pseudo-element: 0
  quotes:
    - 1
    - style: double
  shorthand-values: 1
  url-quotes: 1
  variable-for-property: 1
  zero-unit: 1

  # Inner Spacing
  space-after-comma: 0
  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: 1
