{
  "plugins": [
    "./tools/stylelint/no-prefixes/no-prefixes.js",
    "./tools/stylelint/no-ampersand-beyond-selector-start/index.js",
    "./tools/stylelint/selector-no-deep/index.js",
    "./tools/stylelint/no-nested-mixin/index.js",
    "./tools/stylelint/no-concrete-rules/index.js",
    "./tools/stylelint/no-top-level-ampersand-in-mixin/index.js"
  ],
  "rules": {
    "material/no-prefixes": [true, {
      "browsers": ["last 2 versions", "not ie <= 10", "not ie_mob <= 10"],
      "filePattern": "**/!(*-example.css)"
    }],
    "material/selector-no-deep": true,
    "material/no-nested-mixin": true,
    "material/no-ampersand-beyond-selector-start": [true, {
      "filePattern": "-theme\\.scss$"
    }],
    "material/no-concrete-rules": [true, {
      "filePattern": "^_.*\\.scss$"
    }],
    "material/no-top-level-ampersand-in-mixin": [true, {
      "filePattern": "-theme\\.scss$"
    }],

    "color-hex-case": "lower",
    "color-no-invalid-hex": true,

    "function-calc-no-unspaced-operator": true,
    "function-comma-space-after": "always-single-line",
    "function-comma-space-before": "never",
    "function-name-case": "lower",
    "function-url-quotes": "always",
    "function-url-scheme-blacklist": ["data"],
    "function-whitespace-after": "always",

    "number-leading-zero": "always",
    "number-no-trailing-zeros": true,
    "length-zero-no-unit": true,

    "string-no-newline": true,
    "string-quotes": "single",

    "unit-case": "lower",
    "unit-no-unknown": true,
    "unit-whitelist": ["px", "%", "deg", "ms", "em", "vh", "vw", "vmin"],

    "value-list-comma-space-after": "always-single-line",
    "value-list-comma-space-before": "never",

    "shorthand-property-no-redundant-values": true,

    "property-case": "lower",
    "no-duplicate-at-import-rules": true,

    "declaration-block-no-duplicate-properties": [true, {
      "ignore": ["consecutive-duplicates-with-different-values"]
    }],
    "declaration-block-trailing-semicolon": "always",
    "declaration-block-single-line-max-declarations": 1,
    "declaration-block-semicolon-space-before": "never",
    "declaration-block-semicolon-space-after": "always-single-line",
    "declaration-block-semicolon-newline-before": "never-multi-line",
    "declaration-block-semicolon-newline-after": "always-multi-line",
    "declaration-property-value-blacklist": [
        {"/.*/": ["initial"]},
        {"message": "The `initial` value is not supported in IE."}
    ],

    "block-closing-brace-newline-after": "always",
    "block-closing-brace-newline-before": "always-multi-line",
    "block-opening-brace-newline-after": "always-multi-line",
    "block-opening-brace-space-before": "always-multi-line",

    "selector-attribute-brackets-space-inside": "never",
    "selector-attribute-operator-space-after": "never",
    "selector-attribute-operator-space-before": "never",
    "selector-combinator-space-after": "always",
    "selector-combinator-space-before": "always",
    "selector-pseudo-class-case": "lower",
    "selector-pseudo-class-parentheses-space-inside": "never",
    "selector-pseudo-element-case": "lower",
    "selector-pseudo-element-colon-notation": "double",
    "selector-pseudo-element-no-unknown": true,
    "selector-type-case": "lower",
    "selector-max-id": 0,
    "no-missing-end-of-source-newline": true,
    "no-eol-whitespace": true,
    "max-line-length": 100,
    "linebreaks": "unix",
    "selector-class-pattern": ["^_?(mat-|cdk-|example-|demo-|ng-|mdc-)", {
      "resolveNestedSelectors": true
    }]
  }
}
