stylelint-sustainable-css
Version:
Sustainable CSS is a Stylelint plugin dedicated to following sustainable web design principles.
36 lines (28 loc) • 847 B
JavaScript
const stylelint = require('stylelint');
const ruleName = 'sustainable-css/avoid-duplicate-media-queries';
function avoidDuplicateMediaQueries() {
return (root, result) => {
const mediaQueries = {};
root.walkAtRules('media', atRule => {
const params = atRule.params;
if (!mediaQueries[params]) {
mediaQueries[params] = [];
}
atRule.walkRules(rule => {
mediaQueries[params].push(rule.selector);
});
});
Object.keys(mediaQueries).forEach(params => {
if (mediaQueries[params].length > 1) {
stylelint.utils.report({
message: "Combine similar media queries to optimize stylesheet size",
node: root,
result,
ruleName,
severity: 'warning',
});
}
});
};
}
module.exports = avoidDuplicateMediaQueries;