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 on the command line can automatically fix all of the problems reported by this rule. We recommend to enable indentation rule for better autofixing results with this rule.

Options

string: "always"|"never"|"always-multi-line"|"never-multi-line"

"always"

There must always be an empty line before rules.

The following patterns are considered violations:

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

The following patterns are not considered violations:

a {}

b {}

"never"

There must never be an empty line before rules.

The following patterns are considered violations:

a {}

b {}

The following patterns are not considered violations:

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

"always-multi-line"

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

The following patterns are considered violations:

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

The following patterns are not considered violations:

a {
  color: red;
}

b {
  color: blue;
}

"never-multi-line"

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

The following patterns are considered violations:

a {
  color: red;
}

b {
  color: blue;
}

The following patterns are not considered violations:

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

Optional secondary options

except: ["after-rule", "after-single-line-comment", "inside-block-and-after-rule", "inside-block", "first-nested"]

"after-rule"

Reverse the primary option for rules that follow another rule.

For example, with "always":

The following patterns are considered violations:

a {}

b {}

The following patterns are not considered violations:

a {}
b {}

"after-single-line-comment"

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

For example, with "always":

The following patterns are considered violations:

/* comment */

a {}

The following patterns are not considered violations:

/* comment */
a {}

"inside-block-and-after-rule"

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

For example, with "always":

The following patterns are considered violations:

@media {

  a {}

  b {}
}

The following patterns are not considered violations:

@media {
  a {}
  b {}
}

"inside-block"

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

For example, with "always":

The following patterns are considered violations:

a {
  color: red;

  b {
    color: blue;
  }
}

The following patterns are not considered violations:

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.

For example, with "always":

The following patterns are considered violations:

@media {

  a {}

  b {}
}

The following patterns are not considered violations:

@media {
  a {}

  b {}
}

ignore: ["after-comment", "first-nested", "inside-block"]

"after-comment"

Ignore rules that follow a comment.

For example, with "always":

The following patterns are not considered violations:

/* comment */
a {}

"first-nested"

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

For example, with "always":

The following patterns are not considered violations:

@media {
  a {}

  b {}
}

"inside-block"

Ignore rules that are inside a block.

For example, with "always":

The following patterns are not considered violations:

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