Element.createShadowRoot()

Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Draft
This page is not complete.

Use Element.createShadowRoot to create an instance of shadow DOM. When shadow DOM is created, it is always attached to an existing element. After the shadow DOM is created, the element that it is attached to is called the shadow root.

This method has been deprecated in favor of attachShadow().

Syntax

var shadowroot = element.createShadowRoot();

Parameters

No parameters.

Result value

Returns a ShadowRoot.

Specifications

This feature is no longer defined by any specifications.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
DeprecatedNon-standard
Chrome Full support 35
Notes
Full support 35
Notes
Notes In Chrome 45, the ability to have multiple shadow roots was deprecated.
No support 25 — ?
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge No support NoFirefox No support 59 — 61
Disabled
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 29 — 59
Disabled
Disabled From version 29 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 22
Notes
Full support 22
Notes
Notes In Opera 32, the ability to have multiple shadow roots was deprecated.
No support 15 — ?
Prefixed
Prefixed Requires the vendor prefix: webkit
Safari No support NoWebView Android Full support 37
Notes
Full support 37
Notes
Notes In version 45, the ability to have multiple shadow roots was deprecated.
No support ? — ?
Prefixed
Prefixed Requires the vendor prefix: webkit
Chrome Android Full support 35
Notes
Full support 35
Notes
Notes In Chrome 45, the ability to have multiple shadow roots was deprecated.
No support 25 — ?
Prefixed
Prefixed Requires the vendor prefix: webkit
Edge Mobile No support NoFirefox Android No support 59 — 61
Disabled
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 29 — 59
Disabled
Disabled From version 29 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 22
Notes
Full support 22
Notes
Notes In Opera 32, the ability to have multiple shadow roots was deprecated.
No support 14 — ?
Prefixed
Prefixed Requires the vendor prefix: webkit
Safari iOS No support NoSamsung Internet Android Full support 5.0
Full support 5.0
No support 4.0 — ?
Prefixed
Prefixed Requires the vendor prefix: webkit

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

Document Tags and Contributors

Contributors to this page: ExE-Boss, DomenicDenicola, Keysox, japacible, jpmedley, markg, Sebastianz
Last updated by: ExE-Boss,