extends:
  - stylelint-config-sass-guidelines
  - stylelint-config-prettier

plugins:
  - stylelint-selector-pseudo-class-lvhfa
rules:
  block-no-empty: null
  color-named:
    - never
    - ignore:
      - 'inside-function'
  max-nesting-depth: 10
  selector-max-compound-selectors: 10
  no-empty-first-line: true
  order/order:
    - - type: at-rule
        hasBlock: false
      - custom-properties
      - declarations
    - unspecified: ignore
      disableFix: true
  plugin/selector-pseudo-class-lvhfa: true
  property-no-vendor-prefix: null
  selector-attribute-brackets-space-inside: never
  selector-class-pattern:
    # "piece" regex:
    # [a-zA-Z0-9]+
    # dash-separated pieces:
    # [a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z][a-zA-Z0-9]*)*
    #
    #   Block                                              Element (optional)                                   Modifier (also optional)
    #   ----------------------------------------------     -----------------------------------------------      -----------------------------------------------
    - '^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:__[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:--[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?$'
  selector-no-qualifying-type:
    - true
    - ignore:
      - attribute
  string-no-newline: true
  scss/at-import-partial-extension-blacklist:
    - 'less'
    - 'sass'
  scss/at-mixin-pattern:
    # "piece" regex:
    # [a-zA-Z0-9]+
    # dash-separated pieces:
    # [a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z][a-zA-Z0-9]*)*
    #
    #   Block                                              Element (optional)                                   Modifier (also optional)
    #   ----------------------------------------------     -----------------------------------------------      -----------------------------------------------
    - '^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:__[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:--[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?$'
  scss/percent-placeholder-pattern:
    # "piece" regex:
    # [a-zA-Z0-9]+
    # dash-separated pieces:
    # [a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z][a-zA-Z0-9]*)*
    #
    #   Block                                              Element (optional)                                   Modifier (also optional)
    #   ----------------------------------------------     -----------------------------------------------      -----------------------------------------------
    - '^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:__[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:--[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?$'