From 47da5f90386c83d89fbc6a6ed05a974fb320e02c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 23 Jun 2017 08:47:51 -0400 Subject: [PATCH] put attribute selector before pseudo-class selector - fixes #658 --- src/generators/shared/processCss.ts | 5 +++++ .../cascade-false-pseudo-element/_config.js | 3 +++ .../cascade-false-pseudo-element/expected.css | 12 ++++++++++++ .../cascade-false-pseudo-element/input.html | 15 +++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 test/css/samples/cascade-false-pseudo-element/_config.js create mode 100644 test/css/samples/cascade-false-pseudo-element/expected.css create mode 100644 test/css/samples/cascade-false-pseudo-element/input.html diff --git a/src/generators/shared/processCss.ts b/src/generators/shared/processCss.ts index 468a866649..17eae9b57d 100644 --- a/src/generators/shared/processCss.ts +++ b/src/generators/shared/processCss.ts @@ -87,6 +87,11 @@ export default function processCss( shouldTransform = false; } + else if (child.type === 'PseudoElementSelector') { + code.prependRight(c, attr); + shouldTransform = false; + } + c = child.end; }); diff --git a/test/css/samples/cascade-false-pseudo-element/_config.js b/test/css/samples/cascade-false-pseudo-element/_config.js new file mode 100644 index 0000000000..b37866f9b6 --- /dev/null +++ b/test/css/samples/cascade-false-pseudo-element/_config.js @@ -0,0 +1,3 @@ +export default { + cascade: false +}; \ No newline at end of file diff --git a/test/css/samples/cascade-false-pseudo-element/expected.css b/test/css/samples/cascade-false-pseudo-element/expected.css new file mode 100644 index 0000000000..e2a4397f38 --- /dev/null +++ b/test/css/samples/cascade-false-pseudo-element/expected.css @@ -0,0 +1,12 @@ + + span[svelte-583610229]::after { + content: 'i am a pseudo-element'; + } + + span[svelte-583610229]:first-child { + color: red; + } + + span[svelte-583610229]:last-child::after { + color: blue; + } diff --git a/test/css/samples/cascade-false-pseudo-element/input.html b/test/css/samples/cascade-false-pseudo-element/input.html new file mode 100644 index 0000000000..16be3071f9 --- /dev/null +++ b/test/css/samples/cascade-false-pseudo-element/input.html @@ -0,0 +1,15 @@ + + + \ No newline at end of file