Skip to main content

rule-empty-line-before

Require or disallow an empty line before rules.

a {}
/* ← */
b {} /* ↑ */
/** ↑
* This line */

This rule ignores rules that are the very first node in a source.

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

This rule doesn't have any message arguments.

Options

"always"

There must always be an empty line before rules.

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

The following patterns are considered problems:

a {} b {}
a {}
b {}

The following patterns are not considered problems:

a {}

b {}

"never"

There must never be an empty line before rules.

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

The following patterns are considered problems:

a {}

b {}

The following patterns are not considered problems:

a {} b {}
a {}
b {}

"always-multi-line"

There must always be an empty line before multi-line rules.

{
"rule-empty-line-before": "always-multi-line"
}

The following patterns are considered problems:

a {
color: red;
}
b {
color: blue;
}

The following patterns are not considered problems:

a {
color: red;
}

b {
color: blue;
}

"never-multi-line"

There must never be an empty line before multi-line rules.

{
"rule-empty-line-before": "never-multi-line"
}

The following patterns are considered problems:

a {
color: red;
}

b {
color: blue;
}

The following patterns are not considered problems:

a {
color: red;
}
b {
color: blue;
}

Optional secondary options

except

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

"after-rule"

Reverse the primary option for rules that follow another rule.

Given:

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

The following patterns are considered problems:

a {}

b {}

The following patterns are not considered problems:

a {}
b {}

"after-single-line-comment"

Reverse the primary option for rules that follow a single-line comment.

Given:

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

The following patterns are considered problems:

/* comment */

a {}

The following patterns are not considered problems:

/* comment */
a {}

"inside-block-and-after-rule"

Reverse the primary option for rules that are inside a block and follow another rule.

Given:

{
"rule-empty-line-before": [
"always",
{ "except": ["inside-block-and-after-rule"] }
]
}

The following patterns are considered problems:

@media {

a {}

b {}
}

The following patterns are not considered problems:

@media {

a {}
b {}
}

"inside-block"

Reverse the primary option for rules that are inside a block.

Given:

{
"rule-empty-line-before": ["always", { "except": ["inside-block"] }]
}

The following patterns are considered problems:

a {
color: red;

& b {
color: blue;
}
}

The following patterns are not considered problems:

a {
color: red;
& b {
color: blue;
}
}

"first-nested"

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

Given:

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

The following patterns are considered problems:

@media {

a {}

b {}
}

The following patterns are not considered problems:

@media {
a {}

b {}
}

ignore

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

"after-comment"

Ignore rules that follow a comment.

Given:

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

The following patterns are not considered problems:

/* comment */
a {}

"first-nested"

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

Given:

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

The following patterns are not considered problems:

@media {
a {}

b {}
}

"inside-block"

Ignore rules that are inside a block.

Given:

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

The following patterns are not considered problems:

@media {
a {}
}
@media {
a {}
b {}
}