diff --git a/lib/parse-statements.js b/lib/parse-statements.js index 17fc3aa..5e812fe 100644 --- a/lib/parse-statements.js +++ b/lib/parse-statements.js @@ -24,7 +24,9 @@ module.exports = function parseStatements(result, styles, conditions, from) { !node.nodes ) stmt = parseLayer(result, node, conditions, from) - } else if (node.type !== "comment") { + } + + if (!stmt && node.type !== "comment") { encounteredNonImportNodes = true } diff --git a/test/fixtures/imports/layer-empty-after-content-pkg.css b/test/fixtures/imports/layer-empty-after-content-pkg.css new file mode 100644 index 0000000..63182d9 --- /dev/null +++ b/test/fixtures/imports/layer-empty-after-content-pkg.css @@ -0,0 +1,21 @@ +@layer base { + html { + box-sizing: border-box; + } +} +@layer layout { + .container { + display: flex; + } +} +@layer components { + .btn { + padding: 8px; + } +} +@layer utils { + .hidden { + display: none; + } +} +@layer overrides; diff --git a/test/fixtures/layer-empty-after-content.css b/test/fixtures/layer-empty-after-content.css new file mode 100644 index 0000000..2a19c59 --- /dev/null +++ b/test/fixtures/layer-empty-after-content.css @@ -0,0 +1,6 @@ +@import url("layer-empty-after-content-pkg.css"); +@layer overrides { + body { + background-color: #e5e5e5; + } +} diff --git a/test/fixtures/layer-empty-after-content.expected.css b/test/fixtures/layer-empty-after-content.expected.css new file mode 100644 index 0000000..3b3c26e --- /dev/null +++ b/test/fixtures/layer-empty-after-content.expected.css @@ -0,0 +1,26 @@ +@layer base { + html { + box-sizing: border-box; + } +} +@layer layout { + .container { + display: flex; + } +} +@layer components { + .btn { + padding: 8px; + } +} +@layer utils { + .hidden { + display: none; + } +} +@layer overrides; +@layer overrides { + body { + background-color: #e5e5e5; + } +} diff --git a/test/layer.js b/test/layer.js index a67b310..e0cf89d 100644 --- a/test/layer.js +++ b/test/layer.js @@ -57,3 +57,9 @@ test( checkFixture, "layer-statement-with-conditions", ) + +test( + "should preserve the order of layer statements that follow layer blocks", + checkFixture, + "layer-empty-after-content", +)