no-direct-theme-token-consumption-in-css-modules
Disallow direct --ifm-* and --docsearch-* token consumption in CSS Modules declarations.
Targeted pattern scopeโ
This rule runs on CSS Modules files such as *.module.css, *.module.scss, and *.module.sass.
It reports non-custom-property declarations that read global theme tokens directly with var(--ifm-...) or var(--docsearch-...).
What this rule reportsโ
This rule reports declarations like color: var(--ifm-color-primary) inside CSS Modules.
Why this rule existsโ
Direct token consumption makes a local component depend on global theme token names everywhere those values are used.
Aliasing the global token to a component-scoped custom property keeps the boundary clearer and makes later refactors easier.
โ Incorrectโ
.card {
color: var(--ifm-color-primary);
}
โ Correctโ
.card {
--card-link-color: var(--ifm-color-primary);
color: var(--card-link-color);
}
Behavior and migration notesโ
- Local alias declarations such as
--card-link-color: var(--ifm-color-primary)are allowed. - This rule only runs on CSS Modules file names.
- It is report-only because introducing the right local alias name requires human judgment.
Additional examplesโ
โ Incorrect โ direct DocSearch token use in a moduleโ
.search {
background: color-mix(in srgb, var(--docsearch-primary-color) 75%, white);
}
Stylelint config exampleโ
import { docusaurusPluginConfigs } from "stylelint-plugin-docusaurus";
export default {
...docusaurusPluginConfigs["docusaurus-all"],
rules: {
...docusaurusPluginConfigs["docusaurus-all"].rules,
"docusaurus/no-direct-theme-token-consumption-in-css-modules": true,
},
};
When not to use itโ
Disable this rule if your CSS Modules intentionally read global Docusaurus or DocSearch tokens directly and you do not want a local alias layer.
Package documentationโ
Docusaurus package documentation:
Rule catalog ID: R021