diff --git a/.stylelintrc.js b/.stylelintrc.js index dd3a34c..28784d7 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -17,12 +17,7 @@ module.exports = { rules: { 'at-rule-no-vendor-prefix': true, - 'at-rule-no-unknown': [ - true, - { - ignoreAtRules: ['for', 'each', 'extend', 'include', 'at-root', 'mixin'], - }, - ], + 'at-rule-no-unknown': null, 'at-rule-empty-line-before': ['always', { except: 'first-nested' }], 'block-no-empty': null, 'color-no-hex': true, diff --git a/package-lock.json b/package-lock.json index 1383386..1fd06c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,21 +17,21 @@ } }, "@alexlit/config-eslint": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@alexlit/config-eslint/-/config-eslint-0.12.0.tgz", - "integrity": "sha512-a228cfqvznG6Io8kRGxe0CsY0QaP5/Jb4T1d0WuQUvLd7EzcyC+rVuEQ5ORRkUcLPS0/8PaRoWEYL2ylen7Keg==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@alexlit/config-eslint/-/config-eslint-0.14.1.tgz", + "integrity": "sha512-TJpEJ2fQpBtUsAY5EdJ0zOi2KJEBLnzimXSJqbO8eu/i/sXR1RHT7eIGa1naWm7wef79SXuv9pdx+v8akhXKjA==", "dev": true, "requires": { "@nuxtjs/eslint-config": "^5.0.0", "@nuxtjs/eslint-config-typescript": "^5.0.0", - "@typescript-eslint/eslint-plugin": "^4.14.1", - "@typescript-eslint/parser": "^4.14.1", - "eslint": "^7.18.0", + "@typescript-eslint/eslint-plugin": "^4.14.2", + "@typescript-eslint/parser": "^4.14.2", + "eslint": "^7.19.0", "eslint-config-prettier": "^7.2.0", - "eslint-plugin-decorator-position": "^2.2.17", + "eslint-plugin-decorator-position": "^2.2.18", "eslint-plugin-filenames": "^1.3.2", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^31.4.0", + "eslint-plugin-jsdoc": "^31.6.0", "eslint-plugin-json": "^2.1.2", "eslint-plugin-no-loops": "^0.3.0", "eslint-plugin-no-secrets": "^0.6.8", @@ -73,9 +73,9 @@ } }, "@alexlit/config-stylelint": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@alexlit/config-stylelint/-/config-stylelint-0.3.0.tgz", - "integrity": "sha512-aqC8mYdS13aJ0KvwswzhD47QupHMUfGnGBohObjb+lt0TetkOeAxgxfKmwk8tVcrtYOMs0OS0HtBy+lR3g/DzQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@alexlit/config-stylelint/-/config-stylelint-0.3.3.tgz", + "integrity": "sha512-BV3Og9PV+U8dBXsdhEBMeN43v8/hZxmGZfaXgBeBQNp+GULu3awLHAL1z3m4lRRhVRxGnaRInsdgs8wlnmLA0w==", "dev": true, "requires": { "stylelint": "^13.9.0", @@ -89,16 +89,16 @@ } }, "@alexlit/lint-kit": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@alexlit/lint-kit/-/lint-kit-0.16.0.tgz", - "integrity": "sha512-xlMlyDa/8T64Pw6/0d8IW+Xsw0W2Ne3WIjH8eOABISjMzmnjbCQxN/1rGcfTGAqMqfpf0GF0Wrv5Nmtc4PgkGg==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@alexlit/lint-kit/-/lint-kit-0.18.1.tgz", + "integrity": "sha512-JJWUn9FAdo/HIubGIEcnJtHfwL8sSgbQyAOVIeuhfNBBmo5lQ9QF4cqielwII/W79GhoVVHhd/eONPh0p1alew==", "dev": true, "requires": { "@alexlit/config-commitlint": "^0.0.4", - "@alexlit/config-eslint": "^0.12.0", + "@alexlit/config-eslint": "^0.14.1", "@alexlit/config-markdownlint": "0.2.2", "@alexlit/config-prettier": "^0.3.1", - "@alexlit/config-stylelint": "^0.3.0", + "@alexlit/config-stylelint": "^0.3.3", "husky": "^4.3.8", "lint-staged": "^10.5.3" } @@ -670,9 +670,9 @@ } }, "@prettier/plugin-pug": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.13.2.tgz", - "integrity": "sha512-ACvpUrcd7oTJpNxYNVK78Lstc/tDAuY1qQPU8/I/wAHU9WoWkO7O7pahQf8idm3ALDztwtlCkAas/JQWo0qnpQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.13.3.tgz", + "integrity": "sha512-Tw4Sg6dvPDKrZ2kunAcqRYsecbHVZVluSwJrXp9XtQaIXRlBAR+yI4aRIAXj2Fnulhz3Rakyv/GLmejj43GkCw==", "dev": true, "requires": { "pug-lexer": "^5.0.0" @@ -777,13 +777,13 @@ "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.1.tgz", - "integrity": "sha512-5JriGbYhtqMS1kRcZTQxndz1lKMwwEXKbwZbkUZNnp6MJX0+OVXnG0kOlBZP4LUAxEyzu3cs+EXd/97MJXsGfw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz", + "integrity": "sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.14.1", - "@typescript-eslint/scope-manager": "4.14.1", + "@typescript-eslint/experimental-utils": "4.14.2", + "@typescript-eslint/scope-manager": "4.14.2", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -804,55 +804,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.1.tgz", - "integrity": "sha512-2CuHWOJwvpw0LofbyG5gvYjEyoJeSvVH2PnfUQSn0KQr4v8Dql2pr43ohmx4fdPQ/eVoTSFjTi/bsGEXl/zUUQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", + "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.14.1", - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/typescript-estree": "4.14.1", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.1.tgz", - "integrity": "sha512-mL3+gU18g9JPsHZuKMZ8Z0Ss9YP1S5xYZ7n68Z98GnPq02pYNQuRXL85b9GYhl6jpdvUc45Km7hAl71vybjUmw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.2.tgz", + "integrity": "sha512-ipqSP6EuUsMu3E10EZIApOJgWSpcNXeKZaFeNKQyzqxnQl8eQCbV+TSNsl+s2GViX2d18m1rq3CWgnpOxDPgHg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.14.1", - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/typescript-estree": "4.14.1", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz", - "integrity": "sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1" + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" } }, "@typescript-eslint/types": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.1.tgz", - "integrity": "sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz", - "integrity": "sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", + "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", - "@typescript-eslint/visitor-keys": "4.14.1", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -873,12 +873,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz", - "integrity": "sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.14.1", + "@typescript-eslint/types": "4.14.2", "eslint-visitor-keys": "^2.0.0" } }, @@ -2572,9 +2572,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "31.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.5.0.tgz", - "integrity": "sha512-168SrL9KIHov9V8M6fss6ai3ozZmx8e28HLg3D+sXsCC2bk1pqNf3my6KzbqWdt6v7aqbYYWXdkEA4dr/N4dKg==", + "version": "31.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.6.0.tgz", + "integrity": "sha512-kYhdW+BXHij9n12oHvAC27oDHKEFITz1YJP/C0NPtb+gsGJWxejh5B6dEmmj6oLYOsmNvuCVkdIcqYOyabP2QA==", "dev": true, "requires": { "comment-parser": "1.1.1", @@ -3770,9 +3770,9 @@ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-core-module": { @@ -3856,11 +3856,12 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -4069,9 +4070,9 @@ } }, "listr2": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.0.tgz", - "integrity": "sha512-G9IFI/m65icgVlifS0wMQnvn35/8VJGzEb3crpE4NnaegQYQOn/wP7yqi9TTJQ/eoxme4UaPbffBK1XqKP/DOg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", + "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -6069,9 +6070,9 @@ "dev": true }, "uglify-js": { - "version": "3.12.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.5.tgz", - "integrity": "sha512-SgpgScL4T7Hj/w/GexjnBHi3Ien9WS1Rpfg5y91WXMj9SY997ZCQU76mH4TpLwwfmMvoOU8wiaRkIf6NaH3mtg==", + "version": "3.12.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.6.tgz", + "integrity": "sha512-aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw==", "dev": true, "optional": true }, diff --git a/package.json b/package.json index 2b4d12b..9e56c1d 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,6 @@ "stylelint-use-nesting": "^3.0.0" }, "devDependencies": { - "@alexlit/lint-kit": "0.16.0" + "@alexlit/lint-kit": "0.18.1" } } diff --git a/plugins/scss.js b/plugins/scss.js index b520cad..1f8f1b3 100644 --- a/plugins/scss.js +++ b/plugins/scss.js @@ -2,6 +2,16 @@ module.exports = { plugins: ['stylelint-scss'], rules: { + 'scss/at-rule-no-unknown': [ + true, + { + ignoreAtRules: [], + }, + ], + 'scss/declaration-nested-properties': 'never', + 'scss/function-color-relative': true, + 'scss/no-duplicate-dollar-variables': true, + 'scss/no-duplicate-mixins': true, 'scss/selector-nest-combinators': 'always', 'scss/selector-no-redundant-nesting-selector': null, }, diff --git a/test/scss.scss b/test/scss.scss index cc5d9e5..55a7ecb 100644 --- a/test/scss.scss +++ b/test/scss.scss @@ -14,6 +14,10 @@ --ui-button-color--p: currentColor; } +@mixin font-size-default { + font-size: 16px; +} + .ui-button { @include variables; @@ -31,6 +35,7 @@ var(--ui-icon-default-background-color) ); border-radius: 4px; + color: scale-color(saturate, blue, 20%); color: white; cursor: pointer; font-stretch: normal; @@ -164,6 +169,9 @@ } } + &.tewst { + } + & .ui-button { margin-left: var(--ui-button-padding);