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.
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 {}
}