Skip to main content

declaration-property-unit-allowed-list

Specify a list of allowed property and unit pairs within declarations.

a { width: 100px; }
/** ↑ ↑
* These properties and these units */

The message secondary option can accept the arguments of this rule.

Options

Object<string, Array<string>>

{ "unprefixed-property-name": ["array", "of", "units"] }

You can specify a regex for a property name, such as { "/^animation/": [] }.

Given:

{
"declaration-property-unit-allowed-list": {
"font-size": ["em", "px"],
"/^animation/": ["s"],
"line-height": []
}
}

The following patterns are considered problems:

a { font-size: 1.2rem; }
a { animation: animation-name 500ms ease; }
a { -webkit-animation: animation-name 500ms ease; }
a { animation-duration: 500ms; }
a { line-height: 13px; }

The following patterns are not considered problems:

a { font-size: 1em; }
a { height: 100px; }
a { animation: animation-name 5s ease; }
a { -webkit-animation: animation-name 5s ease; }
a { animation-duration: 5s; }
a { line-height: 1; }

Optional secondary options

ignore

{ "ignore": ["array", "of", "options"] }

"inside-function"

Ignore units that are inside a function.

Given:

{
"declaration-property-unit-allowed-list": [
{
"/^border/": ["px"],
"/^background/": ["%"]
},
{
"ignore": ["inside-function"]
}
]
}

The following patterns are not considered problems:

a {
border: 1px solid hsla(162deg, 51%, 35%, 0.8);
}
a {
background-image: linear-gradient(hsla(162deg, 51%, 35%, 0.8), hsla(62deg, 51%, 35%, 0.8));
}