stylelint-uppercase-letter-spacing
Version:
Stylelint plugin to enforce defining letter-spacing with text-transform:uppercase.
42 lines (37 loc) • 1.23 kB
JavaScript
var stylelint = require('stylelint');
var ruleName = 'marek-saji/uppercase-letter-spacing';
var messages = stylelint.utils.ruleMessages(ruleName, {
expected: 'Expected letter-spacing in block with text-transform:uppercase.',
});
module.exports = stylelint.createPlugin(ruleName, function (primaryOption, secondaryOptionObject) {
return function (postcssRoot, postcssResult) {
postcssRoot.walkRules(function (rule) {
var uppercasedDecl;
var hasLetterSpacing = false;
rule.walkDecls(function (decl) {
if (
'text-transform' === decl.prop &&
'uppercase' === decl.value
)
{
uppercasedDecl = decl;
}
else if ('letter-spacing' === decl.prop)
{
hasLetterSpacing = true;
}
});
if (uppercasedDecl && ! hasLetterSpacing)
{
stylelint.utils.report({
ruleName: ruleName,
result: postcssResult,
node: uppercasedDecl,
message: messages.expected,
});
}
});
}
});
module.exports.ruleName = ruleName;
module.exports.messages = messages;