diff --git a/src/printer-postcss.js b/src/printer-postcss.js index a83474c08..1ecc29077 100644 --- a/src/printer-postcss.js +++ b/src/printer-postcss.js @@ -217,7 +217,12 @@ function genericPrint(path, options, print) { return adjustStrings(n.value, options); } case "selector-tag": { - return maybeToLowerCase(n.value); + const parent = path.getParentNode(); + const index = parent.nodes.indexOf(n); + const previous = index > 0 ? parent.nodes[index - 1] : null; + return previous && previous.type === "selector-nesting" + ? n.value + : maybeToLowerCase(n.value); } case "selector-id": { return concat(["#", n.value]); diff --git a/tests/css_case/__snapshots__/jsfmt.spec.js.snap b/tests/css_case/__snapshots__/jsfmt.spec.js.snap index 92673f290..d23c27475 100644 --- a/tests/css_case/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_case/__snapshots__/jsfmt.spec.js.snap @@ -50,6 +50,10 @@ a[HREF=KeepAttrValue]:HOVER::FIRST-letter, prop: val; } + &Keep & NoKeep { + prop: val; + } + @KeepDetachedRuleset(); @KeepDetachedRuleset ( /* comment */ ); @@ -123,6 +127,10 @@ a[href="KeepAttrValue"]:hover::first-letter, prop: val; } + &Keep & nokeep { + prop: val; + } + @KeepDetachedRuleset(); @KeepDetachedRuleset(); @@ -208,6 +216,10 @@ a[HREF=KeepAttrValue]:HOVER::FIRST-letter, prop: val; } + &Keep & NoKeep { + prop: val; + } + BACKGROUND: { COLOR: RED; } @@ -284,6 +296,10 @@ a[href="KeepAttrValue"]:hover::first-letter, prop: val; } + &Keep & nokeep { + prop: val; + } + background: { color: RED; } diff --git a/tests/css_case/case.less b/tests/css_case/case.less index 9d8fe85a7..637f13f81 100644 --- a/tests/css_case/case.less +++ b/tests/css_case/case.less @@ -47,6 +47,10 @@ a[HREF=KeepAttrValue]:HOVER::FIRST-letter, prop: val; } + &Keep & NoKeep { + prop: val; + } + @KeepDetachedRuleset(); @KeepDetachedRuleset ( /* comment */ ); diff --git a/tests/css_case/case.scss b/tests/css_case/case.scss index f57543824..bc0fe16e0 100644 --- a/tests/css_case/case.scss +++ b/tests/css_case/case.scss @@ -50,6 +50,10 @@ a[HREF=KeepAttrValue]:HOVER::FIRST-letter, prop: val; } + &Keep & NoKeep { + prop: val; + } + BACKGROUND: { COLOR: RED; }