module.exports = {
  'extends': [
    'stylelint-config-standard',
    'stylelint-config-standard-scss',
    'stylelint-config-recommended-vue',
    'stylelint-config-recommended-vue/scss'
  ],
  'plugins': ['@stylistic/stylelint-plugin'],
  'ignoreFiles': ['**/*.js', '**/*.ts'],
  'defaultSeverity': 'error',
  'rules': {
    'unit-disallowed-list': [
      'rem',
      'pt'
    ],
    '@stylistic/indentation': [
      2,
      {
        'baseIndentLevel': 0
      }
    ],
    'no-empty-source': null,
    'block-no-empty': null,
    'declaration-block-no-duplicate-custom-properties': null,
    'font-family-no-missing-generic-family-keyword': null,

    'selector-class-pattern': '^[a-z]([a-z0-9-]+)?(__([a-z0-9]+-?)+)?(__([a-z0-9]+-?)+)?(--([a-z0-9]+-?)+){0,2}$|^Mui.*$|^([a-z][a-z0-9]*)(_[a-z0-9]+)*$',

    'scss/at-mixin-pattern': '^[a-z]([a-z0-9-]+)?(__([a-z0-9]+-?)+)?(__([a-z0-9]+-?)+)?(--([a-z0-9]+-?)+){0,2}$|^Mui.*$|^([a-z][a-z0-9]*)(_[a-z0-9]+)*$',
    'scss/double-slash-comment-whitespace-inside': 'always',
    'scss/dollar-variable-pattern': null,

    'selector-type-no-unknown': null,
    'selector-pseudo-class-no-unknown': [
      true,
      {
        'ignorePseudoClasses': [
          'export',
          'deep'
        ]
      }
    ],
    'color-function-notation': ['modern', {
      'ignore': ['with-var-inside']
    }],
    'property-no-unknown': null,
    'at-rule-empty-line-before': [
      'always',
      {
        'except': ['first-nested', 'blockless-after-same-name-blockless']
      }
    ],
    'custom-property-empty-line-before': [
      'always',
      {
        'except': ['after-custom-property', 'first-nested']
      }
    ],
    'declaration-empty-line-before': [
      'always',
      {
        'except': ['after-declaration', 'first-nested']
      }
    ],
    'rule-empty-line-before': ['always-multi-line'],

    // 忽视 -webkit-xxxx 等兼容写法
    'property-no-vendor-prefix': [
      true,
      {
        ignoreProperties: ['box-shadow']
      }
    ]
  }
}
