polyfiddle
Polymer boilerplate for jsFiddle
HTML
<button>Open dialog inside Shadow DOM</button>
<div id="parent"></div>
JavaScript
let d = document.querySelector('#parent');
let shadowRoot = d.attachShadow({ mode: 'open' });
let style = document.createElement("style");
style.textContent = `::backdrop {
--bg-color: blue;
}
dialog::backdrop {
background-color: var(--bg-color);
}`;
let child = document.createElement('dialog');
child.textContent = 'foo';
// var shadowContent = document.importNode(template.content, true);
shadowRoot.appendChild(style);
shadowRoot.appendChild(child);
let b = document.querySelector('button');
b.addEventListener('click', () => {
child.showModal();
});