diff --git a/src/lib/style-transformer.html b/src/lib/style-transformer.html
index 1a072f76..419c38d6 100644
--- a/src/lib/style-transformer.html
+++ b/src/lib/style-transformer.html
@@ -30,9 +30,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
* :host(...) -> scopeName...
- * ::content -> ' ' NOTE: requires use of scoping selector and selectors
- cannot otherwise be scoped:
- e.g. :host ::content > .bar -> x-foo > .bar
+ * ::content -> ' '
* ::shadow, /deep/: processed similar to ::content
@@ -161,6 +159,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
var stop = false;
var hostContext = false;
var self = this;
+ selector = selector.replace(CONTENT_START, HOST + ' $1');
selector = selector.replace(SIMPLE_SELECTOR_SEP, function(m, c, s) {
if (!stop) {
var info = self._transformCompoundSelector(s, c, scope, hostScope);
@@ -256,7 +255,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
// NOTE: this supports 1 nested () pair for things like
// :host(:not([selected]), more general support requires
// parsing which seems like overkill
- var HOST_PAREN = /(\:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;
+ var HOST_PAREN = /(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;
var HOST_CONTEXT = ':host-context';
var HOST_CONTEXT_PAREN = /(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;
var CONTENT = '::content';
@@ -266,6 +265,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
var CSS_ATTR_SUFFIX = ']';
var PSEUDO_PREFIX = ':';
var CLASS = 'class';
+ var CONTENT_START = new RegExp('^(' + CONTENT + ')');
// exports
return api;
diff --git a/test/unit/polymer-dom-elements.html b/test/unit/polymer-dom-elements.html
index d4afa8b2..53956048 100644
--- a/test/unit/polymer-dom-elements.html
+++ b/test/unit/polymer-dom-elements.html
@@ -200,7 +200,7 @@
box-sizing: border-box;
}
- :host ::content .add3 {
+ ::content .add3 {
box-sizing: border-box;
height: 20px;
background: #333;
@@ -240,7 +240,7 @@
padding: 4px;
}
- :host ::content .add2 {
+ ::content .add2 {
box-sizing: border-box;
height: 20px;
background: gray;
@@ -281,7 +281,7 @@
padding: 4px;
}
- :host ::content .add1 {
+ ::content .add1 {
box-sizing: border-box;
height: 20px;
background: lightgray;