0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-04 10:39:43 +08:00
discourse/stylelint.config.mjs
David Taylor ce04edc1ae
DEV: Enforce :where() for .uc-* upcoming-change classes via stylelint (#41917)
Upcoming changes with `body_class: true` add a `uc-*` class to `<body>`.
This class is temporary, so we do not want core/theme/plugin CSS to
become dependent on it. Therefore we must not allow it to contribute
specificity to selectors.

This commit adds a `discourse/uc-classes-in-where` which reports any
misuse of `.uc-*` classes, fixes up some existing cases, and documents
the pattern in the upcoming-changes skill.
2026-07-22 15:26:59 +01:00

33 lines
945 B
JavaScript
Vendored

import noCoreVariables from "./stylelint-rules/no-core-variables.mjs";
import requireDesignTokens from "./stylelint-rules/require-design-tokens.mjs";
import ucClassesInWhere from "./stylelint-rules/uc-classes-in-where.mjs";
export default {
extends: ["@discourse/lint-configs/stylelint"],
plugins: [noCoreVariables, requireDesignTokens, ucClassesInWhere],
rules: {
"media-feature-range-notation": "context",
"discourse/uc-classes-in-where": true,
},
overrides: [
{
files: [
"**/sidebar.scss",
"**/sidebar-*.scss",
"**/*-sidebar.scss",
"**/*-sidebar-*.scss",
],
rules: {
"discourse/no-core-color-variables": true,
"discourse/require-design-tokens": true,
},
},
{
files: ["themes/horizon/scss/**"],
rules: {
"discourse/no-core-color-variables": null,
"discourse/require-design-tokens": null,
},
},
],
};