UNPKG

1.04 kBJavaScriptView Raw
1'use strict';
2
3const report = require('../../utils/report');
4const ruleMessages = require('../../utils/ruleMessages');
5const validateOptions = require('../../utils/validateOptions');
6
7const ruleName = 'keyframe-declaration-no-important';
8
9const messages = ruleMessages(ruleName, {
10 rejected: 'Unexpected !important',
11});
12
13const meta = {
14 url: 'https://stylelint.io/user-guide/rules/list/keyframe-declaration-no-important',
15};
16
17/** @type {import('stylelint').Rule} */
18const rule = (primary) => {
19 return (root, result) => {
20 const validOptions = validateOptions(result, ruleName, { actual: primary });
21
22 if (!validOptions) {
23 return;
24 }
25
26 root.walkAtRules(/^(-(moz|webkit)-)?keyframes$/i, (atRuleKeyframes) => {
27 atRuleKeyframes.walkDecls((decl) => {
28 if (!decl.important) {
29 return;
30 }
31
32 report({
33 message: messages.rejected,
34 node: decl,
35 word: 'important',
36 result,
37 ruleName,
38 });
39 });
40 });
41 };
42};
43
44rule.ruleName = ruleName;
45rule.messages = messages;
46rule.meta = meta;
47module.exports = rule;