Package Exports
- @webcomponents/shadydom
- @webcomponents/shadydom/shadydom.min.js
- @webcomponents/shadydom/src/shadydom
- @webcomponents/shadydom/src/shadydom.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@webcomponents/shadydom) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ShadyDOM
ShadyDOM provides a shim for ShadowDOM V1. It is less correct but less intrusive and faster than the ShadowDOM Polyfill.
Usage
Usage of the shim is transparent when attachShadow is unavailable. Elements are
patched as needed to report ShadowDOM correct dom information. Only dom tree
accessors and mutation api is maintained. Some dom api
(for example MutationObservers) is not shimmed.
To force ShadyDOM to be used even when native ShadowDOM is available, set
the ShadyDOM = {force: true} in a script prior to loading the polyfill.
Example
<div id="host"></div>
<script>
host.attachShadow({mode: 'open'});
host.shadowRoot.appendChild(document.createElement('a'));
</script>
Building and Testing
For building and testing, first run
npm install
bower installTo build, make sure gulp is installed and gulp.
To test, run npm test
Limitations
ShadyDOM distribution is asynchronous for performance reasons. This means that
the composed dom will be available 1 microtask after the dom mutation occurs.
For testing, ShadyDOM.flush may be called to force syncronous composition.
ShadowDOM compatible styling is not provided with the ShadyDOM shim. To shim ShadowDOM styling, use the shadycss shim.