Skip to main content

declaration-empty-line-before

Require or disallow an empty line before declarations.

a {
--foo: pink;
/* ← */
top: 15px; /* ↑ */
} /* ↑ */
/** ↑
* This line */

This rule only applies to standard property declarations. Use the custom-property-empty-line-before rule for custom property declarations.

The fix option can automatically fix all of the problems reported by this rule.

Options

"always"

{
"declaration-empty-line-before": "always"
}

The following patterns are considered problems:

a {
--foo: pink;
top: 5px;
}
a {
bottom: 15px;
top: 5px;
}

The following patterns are not considered problems:

a {
--foo: pink;

top: 5px;
}
a {

bottom: 15px;

top: 5px;
}

"never"

{
"declaration-empty-line-before": "never"
}

The following patterns are considered problems:

a {
--foo: pink;

bottom: 15px;
}
a {

bottom: 15px;

top: 5px;
}

The following patterns are not considered problems:

a {
--foo: pink;
bottom: 15px;
}
a {
bottom: 15px;
top: 5px;
}

Optional secondary options

except

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

"after-comment"

Reverse the primary option for declarations that follow a comment.

Shared-line comments do not trigger this option.

Given:

{
"declaration-empty-line-before": ["always", { "except": ["after-comment"] }]
}

The following patterns are considered problems:

a {
/* comment */

top: 5px;
}
a {
bottom: 5px; /* comment */
top: 5px;
}

The following patterns are not considered problems:

a {
/* comment */
top: 5px;
}

a {
bottom: 5px; /* comment */

top: 5px;
}

"after-declaration"

Reverse the primary option for declarations that follow another declaration.

Shared-line comments do not affect this option.

Given:

{
"declaration-empty-line-before": [
"always",
{ "except": ["after-declaration"] }
]
}

The following patterns are considered problems:

a {

bottom: 15px;

top: 5px;
}
a {

bottom: 15px; /* comment */

top: 5px;
}

The following patterns are not considered problems:

a {

bottom: 15px;
top: 5px;
}
a {

bottom: 15px; /* comment */
top: 5px;
}

"first-nested"

Reverse the primary option for declarations that are nested and the first child of their parent node.

Given:

{
"declaration-empty-line-before": ["always", { "except": ["first-nested"] }]
}

The following patterns are considered problems:

a {

bottom: 15px;

top: 5px;
}

The following patterns are not considered problems:

a {
bottom: 15px;

top: 5px;
}

ignore

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

"after-comment"

Ignore declarations that follow a comment.

Given:

{
"declaration-empty-line-before": ["always", { "ignore": ["after-comment"] }]
}

The following patterns are not considered problems:

a {
/* comment */
bottom: 15px;
}

"after-declaration"

Ignore declarations that follow another declaration.

Given:

{
"declaration-empty-line-before": [
"always",
{ "ignore": ["after-declaration"] }
]
}

The following patterns are not considered problems:

a {

bottom: 15px;
top: 15px;
}
a {

bottom: 15px;

top: 15px;
}
a {

color: orange;
text-decoration: none;

bottom: 15px;
top: 15px;
}

"first-nested"

Ignore declarations that are nested and the first child of their parent node.

Given:

{
"declaration-empty-line-before": ["always", { "ignore": ["first-nested"] }]
}

The following patterns are not considered problems:

a {
bottom: 15px;

top: 5px;
}

"inside-single-line-block"

Ignore declarations that are inside single-line blocks.

Given:

{
"declaration-empty-line-before": [
"always",
{ "ignore": ["inside-single-line-block"] }
]
}

The following patterns are not considered problems:

a { bottom: 15px; top: 5px; }