Skip to content
This repository has been archived by the owner on Sep 20, 2019. It is now read-only.

Shadow DOM is not scoped and elements doesn't get style-scope when template is cloned after CE definition #883

Closed
2 of 3 tasks
tomalec opened this issue Jan 10, 2018 · 2 comments

Comments

@tomalec
Copy link
Contributor

tomalec commented Jan 10, 2018

Description

Shadow DOM styles are not scoped for vanilla JS Custom Elements and shadow DOM content does not get style-scope my-element class when element is cloned and stamped after CE definition

Live Demo

http://jsbin.com/sekilom/edit?html,output

Steps to Reproduce

  1. Create a template with <my-element>
  2. Define my-element in the way it attaches open shadow root in constructor or attributeChangedCallback, the shadow root that contains styles and elements.
  3. Clone the template, stamp it to the main document

Expected Results

  1. Styles should get scoped,
  2. Elements should get style-scope my-element class

Actual Results

  1. Styles are not scoped,
  2. Elements didn't get style-scope my-element class

Browsers Affected

  • Chrome
  • Firefox
  • Edge
  • [?] Safari 9
  • [?] Safari 8
  • [?] IE 11

Versions

  • webcomponents: v1.0.22

Investigation

When element is created:

  • before upgrade, or
  • added after upgrade with .innerHTML, or
  • stamped from a template created after upgrade

elements get style-scope ... class, so are at least scopeable

I tried ShadyCSS.styleElement with no luck.
I suspect ShadyCSS assumes every custom element instance should have the same shadow root what is not true per spec and in my case. https://github.com/webcomponents/shadycss/blob/master/src/scoping-shim.js#L233 early returns early, even though my element has shadowRoot.

@TimvdLippe
Copy link
Contributor

Issue still exists: http://jsbin.com/secotoveta/edit?html,output

@TimvdLippe
Copy link
Contributor

This issue was moved to webcomponents/shadydom#250

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants