no-empty-theme-classic-custom-css
Disallow empty customCss entries in Docusaurus classic theme config.
Targeted pattern scopeโ
This rule focuses on docusaurus.config.* files.
It checks Docusaurus classic theme customCss configuration through:
- classic preset
theme.customCss - direct
@docusaurus/theme-classicoptions
What this rule reportsโ
This rule reports empty customCss strings and empty string entries inside customCss arrays.
Why this rule existsโ
customCss entries are file paths. Empty strings do not point to meaningful stylesheets and only make the config harder to read and review.
Removing empty entries keeps the classic theme config honest and easier to maintain.
โ Incorrectโ
export default {
presets: [[
"@docusaurus/preset-classic",
{
theme: { customCss: "" },
},
]],
};
โ Correctโ
export default {
presets: [[
"@docusaurus/preset-classic",
{
theme: { customCss: "./src/css/custom.css" },
},
]],
};
Behavior and migration notesโ
This rule autofixes the simple literal cases it can safely prove:
- remove empty entries from
customCssarrays - remove a
customCssproperty when its value is an empty string
Additional examplesโ
โ Incorrect โ empty array entryโ
export default {
presets: [[
"@docusaurus/preset-classic",
{
theme: {
customCss: ["./src/css/custom.css", "", "./src/css/extra.css"],
},
},
]],
};
โ Correct โ only real stylesheet entries remainโ
export default {
presets: [[
"@docusaurus/preset-classic",
{
theme: {
customCss: ["./src/css/custom.css", "./src/css/extra.css"],
},
},
]],
};
ESLint flat config exampleโ
import docusaurus2 from "eslint-plugin-docusaurus-2";
export default [docusaurus2.configs.recommended];
When not to use itโ
Do not use this rule if your project intentionally keeps empty placeholder stylesheet entries during a staged migration and you do not want linting to remove them yet.
Rule catalog ID: R096