| # rule-empty-line-before |
| |
| Require or disallow an empty line before rules. |
| |
| ```css |
| a {} |
| /* ← */ |
| b {} /* ↑ */ |
| /** ↑ |
| * This line */ |
| ``` |
| |
| This rule ignores rules that are the very first node in a source. |
| |
| The `--fix` option on the [command line](../../../docs/user-guide/cli.md#autofixing-errors) can automatically fix all of the problems reported by this rule. We recommend to enable [`indentation`](../indentation/README.md) 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: |
| |
| ```css |
| a {} b {} |
| ``` |
| |
| ```css |
| a {} |
| b {} |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| a {} |
| |
| b {} |
| ``` |
| |
| ### `"never"` |
| |
| There *must never* be an empty line before rules. |
| |
| The following patterns are considered violations: |
| |
| ```css |
| a {} |
| |
| b {} |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| a {} b {} |
| ``` |
| |
| ```css |
| a {} |
| b {} |
| ``` |
| |
| ### `"always-multi-line"` |
| |
| There *must always* be an empty line before multi-line rules. |
| |
| The following patterns are considered violations: |
| |
| ```css |
| a { |
| color: red; |
| } |
| b { |
| color: blue; |
| } |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| 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: |
| |
| ```css |
| a { |
| color: red; |
| } |
| |
| b { |
| color: blue; |
| } |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| 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: |
| |
| ```css |
| a {} |
| |
| b {} |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| 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: |
| |
| ```css |
| /* comment */ |
| |
| a {} |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| /* 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: |
| |
| ```css |
| @media { |
| |
| a {} |
| |
| b {} |
| } |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| @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: |
| |
| ```scss |
| a { |
| color: red; |
| |
| b { |
| color: blue; |
| } |
| } |
| |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```scss |
| 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: |
| |
| ```css |
| @media { |
| |
| a {} |
| |
| b {} |
| } |
| ``` |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| @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: |
| |
| ```css |
| /* 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: |
| |
| ```css |
| @media { |
| a {} |
| |
| b {} |
| } |
| ``` |
| |
| #### `"inside-block"` |
| |
| Ignore rules that are inside a block. |
| |
| For example, with `"always"`: |
| |
| The following patterns are *not* considered violations: |
| |
| ```css |
| @media { |
| a {} |
| } |
| ``` |
| |
| ```css |
| @media { |
| a {} |
| b {} |
| } |
| ``` |