diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..5c1b2f5 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,28 @@ +# Configs +package.json +package-lock.json +tsconfig.json + +# npm +node_modules +npm-debug.log + +# Build +/out +/build +/dist +/_site + +# IDEs +.vscode +.idea + +# Swap +*~ +*.swp +*.swo + +# Next.js +.next +next.config.json +next-env.d.ts diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..b79ea0c --- /dev/null +++ b/.prettierrc @@ -0,0 +1,14 @@ +{ + "printWidth": 110, + "endOfLine": "lf", + "trailingComma": "es5", + "tabWidth": 2, + "useTabs": true, + "semi": true, + "singleQuote": true, + "quoteProps": "as-needed", + "jsxSingleQuote": false, + "bracketSpacing": true, + "bracketSameLine": false, + "arrowParens": "always" +} diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 0000000..c5d3766 --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,19 @@ +{ + "extends": ["stylelint-config-standard", "stylelint-config-standard-scss"], + "rules": { + "selector-class-pattern": [ + "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*(?:__[a-z0-9]+(?:-[a-z0-9]+)*)?(?:--[a-z0-9]+(?:-[a-z0-9]+)*)?)?(?:\\[.+\\])?$", + { + "message": "Expected property name to be in BEM format", + "resolveNestedSelectors": true + } + ], + "media-feature-range-notation": "prefix", + "max-nesting-depth": [ + 4, + { + "ignore": ["blockless-at-rules"] + } + ] + } +} diff --git a/package-lock.json b/package-lock.json index a99bace..7df0127 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,16 +12,16 @@ "@11ty/eleventy": "^2.0.1", "@sindresorhus/slugify": "^1.1.2", "airtable": "^0.12.2", - "dotenv": "^16.4.4", - "isomorphic-dompurify": "^2.3.0", + "dotenv": "^16.4.5", + "isomorphic-dompurify": "^2.4.0", "marked": "^12.0.0", - "sass": "^1.71.0" + "sass": "^1.71.1" }, "devDependencies": { "eslint": "^8.56.0", "stylelint": "^16.2.1", - "stylelint-config-recommended-scss": "^14.0.0", - "stylelint-config-standard": "^36.0.0" + "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard-scss": "^13.0.0" }, "engines": { "node": ">=20" @@ -361,9 +361,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", - "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.0.tgz", + "integrity": "sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==", "dev": true, "funding": [ { @@ -402,9 +402,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", - "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.8.tgz", + "integrity": "sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==", "dev": true, "funding": [ { @@ -420,14 +420,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-parser-algorithms": "^2.6.0", "@csstools/css-tokenizer": "^2.2.3" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", - "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz", + "integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==", "dev": true, "funding": [ { @@ -987,14 +987,15 @@ } }, "node_modules/call-bind": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", - "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "set-function-length": "^1.2.0" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -1237,14 +1238,13 @@ "dev": true }, "node_modules/define-data-property": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.3.tgz", - "integrity": "sha512-h3GBouC+RPtNX2N0hHVLo2ZwPYurq8mLmXpOLTsw71gr7lHt5VaI4vVkDUNOfiWmm48JEXe3VM7PmLX45AMmmg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { + "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1356,9 +1356,9 @@ } }, "node_modules/dompurify": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz", - "integrity": "sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==" + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz", + "integrity": "sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==" }, "node_modules/domutils": { "version": "2.8.0", @@ -1374,9 +1374,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { "node": ">=12" }, @@ -1463,6 +1463,17 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", @@ -1833,9 +1844,9 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/foreground-child": { @@ -2119,20 +2130,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -2226,9 +2237,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", - "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -2238,9 +2249,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", - "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -2504,12 +2515,12 @@ } }, "node_modules/isomorphic-dompurify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.3.0.tgz", - "integrity": "sha512-FCoKY4/mW/jnn/+VgE7wXGC2D/RXzVCAmGYuGWEuZXtyWnwmE2100caciIv+RbHk90q9LA0OW5IBn2f+ywHtww==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.4.0.tgz", + "integrity": "sha512-OW3VSGrjppnbshcHz7RNKnoYlCJkyBBJzEE5yxrTSA+kOl9JPTIrXsnIgOuH4wdLqqRujx22bz/IXebGWPLMAg==", "dependencies": { "@types/dompurify": "^3.0.5", - "dompurify": "^3.0.8", + "dompurify": "^3.0.9", "jsdom": "^24.0.0" }, "engines": { @@ -2713,9 +2724,9 @@ } }, "node_modules/liquidjs": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.10.0.tgz", - "integrity": "sha512-f4gPvCq4uV4Fm5YezVUQoAMPmBMEuIE2LvgCnzyWoPRx+ZefH6b8DU2eb7znltRqATHF8zYvOsd5FD2z1spJgg==", + "version": "10.10.1", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.10.1.tgz", + "integrity": "sha512-h699VW79OLoshCTjFF02tmRCrd8t/E49LSIsjLwlg4k0TbMVjxsCRXVUEsURXbfKl3HUln2cShlDQCrSNm2YaA==", "dependencies": { "commander": "^10.0.0" }, @@ -3858,9 +3869,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.71.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz", - "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -4215,6 +4226,28 @@ "stylelint": "^16.1.0" } }, + "node_modules/stylelint-config-standard-scss": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.0.0.tgz", + "integrity": "sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ==", + "dev": true, + "dependencies": { + "stylelint-config-recommended-scss": "^14.0.0", + "stylelint-config-standard": "^36.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.1.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, "node_modules/stylelint-scss": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.1.0.tgz", diff --git a/package.json b/package.json index d5c0285..5945222 100644 --- a/package.json +++ b/package.json @@ -24,16 +24,16 @@ "devDependencies": { "eslint": "^8.56.0", "stylelint": "^16.2.1", - "stylelint-config-recommended-scss": "^14.0.0", - "stylelint-config-standard": "^36.0.0" + "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard-scss": "^13.0.0" }, "dependencies": { "@11ty/eleventy": "^2.0.1", "@sindresorhus/slugify": "^1.1.2", "airtable": "^0.12.2", - "dotenv": "^16.4.4", - "isomorphic-dompurify": "^2.3.0", + "dotenv": "^16.4.5", + "isomorphic-dompurify": "^2.4.0", "marked": "^12.0.0", - "sass": "^1.71.0" + "sass": "^1.71.1" } } diff --git a/src/css/elements/_root.scss b/src/css/elements/_root.scss index e73f4ce..1e80169 100644 --- a/src/css/elements/_root.scss +++ b/src/css/elements/_root.scss @@ -15,6 +15,7 @@ --brand-turquoise-dark-2: hsl(var(--brand-turquoise-dark-2-hsl)); --brand-turquoise-dark-3-hsl: 188deg 100% 11%; --brand-turquoise-dark-3: hsl(var(--brand-turquoise-dark-3-hsl)); + // Brand Pink --brand-pink-hsl: 324deg 99% 62%; --brand-pink: hsl(var(--brand-pink-hsl)); @@ -30,6 +31,7 @@ --brand-pink-dark-2: hsl(var(--brand-pink-dark-2-hsl)); --brand-pink-dark-3-hsl: 324deg 85% 10%; --brand-pink-dark-3: hsl(var(--brand-pink-dark-3-hsl)); + // Brand Green --brand-green-hsl: 162deg 99% 48%; --brand-green: hsl(var(--brand-green-hsl)); @@ -45,6 +47,7 @@ --brand-green-dark-2: hsl(var(--brand-green-dark-2-hsl)); --brand-green-dark-3-hsl: 162deg 88% 10%; --brand-green-dark-3: hsl(var(--brand-green-dark-3-hsl)); + // Brand Gray --brand-gray-hsl: 0deg 0% 87%; --brand-gray: hsl(var(--brand-gray-hsl)); @@ -60,6 +63,7 @@ --brand-gray-dark-2: hsl(var(--brand-gray-dark-2-hsl)); --brand-gray-dark-3-hsl: 0deg 0% 48%; --brand-gray-dark-3: hsl(var(--brand-gray-dark-3-hsl)); + // Green Foundry Group --foundry-content-base-hsl: 102deg 67% 41%; --foundry-content-base: hsl(var(--foundry-content-base-hsl)); @@ -71,6 +75,7 @@ --foundry-content-gradient-start: hsl(var(--foundry-content-gradient-start-hsl)); --foundry-content-gradient-end-hsl: 53deg 90% 64%; --foundry-content-gradient-end: hsl(var(--foundry-content-gradient-end-hsl)); + // Red Foundry Group --foundry-development-base-hsl: 346deg 72% 49%; --foundry-development-base: hsl(var(--foundry-development-base-hsl)); @@ -82,6 +87,7 @@ --foundry-development-gradient-start: hsl(var(--foundry-development-gradient-start-hsl)); --foundry-development-gradient-end-hsl: 40deg 99% 67%; --foundry-development-gradient-end: hsl(var(--foundry-development-gradient-end-hsl)); + // Purple Foundry Group --foundry-design-base-hsl: 265deg 57% 34%; --foundry-design-base: hsl(var(--foundry-design-base-hsl)); @@ -93,6 +99,7 @@ --foundry-design-gradient-start: hsl(var(--foundry-design-gradient-start-hsl)); --foundry-design-gradient-end-hsl: 327deg 87% 58%; --foundry-design-gradient-end: hsl(var(--foundry-design-gradient-end-hsl)); + // Blue Foundry Group --foundry-culture-base-hsl: 207deg 85% 38%; --foundry-culture-base: hsl(var(--foundry-culture-base-hsl)); @@ -104,11 +111,13 @@ --foundry-culture-gradient-start: hsl(var(--foundry-culture-gradient-start-hsl)); --foundry-culture-gradient-end-hsl: 159deg 84% 60%; --foundry-culture-gradient-end: hsl(var(--foundry-culture-gradient-end-hsl)); + // Black and White --smokey-black-hsl: 0deg 0% 4%; --smokey-black: hsl(var(--smokey-black-hsl)); --white-hsl: 0deg 0% 100%; --white: hsl(var(--white-hsl)); + // Named Extras --ink-hsl: 0deg 0% 12%; --ink: hsl(var(--ink-hsl)); @@ -125,6 +134,7 @@ --link-color-hsl: var(--foundry-culture-base-hsl); --link-color: hsl(var(--link-color-hsl)); --link-color-line: hsl(var(--link-color-hsl) / 50%); + // Content Width --content-width: min(100vw - 2rem, 60rem); --max-width: min(100vw - 2rem, 80rem); diff --git a/src/css/tools/_svg.scss b/src/css/tools/_svg.scss index e9ac84f..bd1ef6b 100644 --- a/src/css/tools/_svg.scss +++ b/src/css/tools/_svg.scss @@ -20,13 +20,14 @@ // Chunk up string in order to avoid // "stack level too deep" error - $encoded:''; + $encoded: ''; $slice: 2000; $index: 0; $loops: math.ceil(math.div(string.length($svg), $slice)); @for $i from 1 through $loops { $chunk: string.slice($svg, $index, $index + $slice - 1); + // Encode $chunk: str-replace($chunk, '"', '\''); $chunk: str-replace($chunk, '%', '%25'); diff --git a/stylelint.config.js b/stylelint.config.js deleted file mode 100644 index 806f06b..0000000 --- a/stylelint.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - extends: [ - 'stylelint-config-standard', - 'stylelint-config-recommended-scss' - ], - rules: { - 'selector-class-pattern': null, - // this CSS rule doesn't understand SCSS - 'media-query-no-invalid': null, - }, -};