#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 if the rule comes after 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 if the rule comes after 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 if the rule is inside a block and comes after 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 if the rule is 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 if the rule is the first in a block.

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 come after 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 {}
}