ShadowRoot extension type

The ShadowRoot interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.

You can retrieve a reference to an element's shadow root using its Element.shadowRoot property, provided it was created using Element.attachShadow with the mode option set to open.


API documentation sourced from MDN Web Docs.

on
Implemented types
Available extensions

Properties

activeElement Element?
The activeElement read-only property of the ShadowRoot interface returns the element within the shadow tree that has focus.
no setter
adoptedStyleSheets JSArray<CSSStyleSheet>
The adoptedStyleSheets property of the ShadowRoot interface sets an array of constructed stylesheets to be used by the shadow DOM subtree.
getter/setter pair
baseURI String
The read-only baseURI property of the Node interface returns the absolute base URL of the document containing the node.
no setterinherited
childElementCount int
The DocumentFragment.childElementCount read-only property returns the number of child elements of a DocumentFragment.
no setterinherited
childNodes NodeList
The read-only childNodes property of the Node interface returns a live NodeList of child Node of the given element where the first child node is assigned index 0. Child nodes include elements, text and comments.
no setterinherited
children HTMLCollection
The read-only children property returns a live HTMLCollection which contains all of the child Element of the document fragment upon which it was called.
no setterinherited
clonable bool
The clonable read-only property of the ShadowRoot interface returns true if the shadow root is clonable, and false otherwise.
no setter
delegatesFocus bool
The delegatesFocus read-only property of the ShadowRoot interface returns true if the shadow root delegates focus, and false otherwise.
no setter
firstChild Node?
The read-only firstChild property of the Node interface returns the node's first child in the tree, or null if the node has no children.
no setterinherited
firstElementChild Element?
The DocumentFragment.firstElementChild read-only property returns the document fragment's first child Element, or null if there are no child elements.
no setterinherited
fullscreenElement Element?
The fullscreenElement read-only property of the ShadowRoot interface returns the element within the shadow tree that is currently displayed in full screen.
no setter
hashCode int
The hash code for this object.
no setterinherited
host Element
The host read-only property of the ShadowRoot returns a reference to the DOM element the ShadowRoot is attached to.
no setter
innerHTML JSAny
The innerHTML property of the ShadowRoot interface sets or returns a reference to the DOM tree inside the ShadowRoot.
getter/setter pair
isConnected bool
The read-only isConnected property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to a Document object.
no setterinherited
isDefinedAndNotNull bool

Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

no setter
isNull bool

Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

Whether this value corresponds to JavaScript null.
no setter
isTruthy JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of !!this in JavaScript.
no setter
isUndefined bool

Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

Whether this value corresponds to JavaScript undefined.
no setter
isUndefinedOrNull bool

Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension

no setter
lastChild Node?
The read-only lastChild property of the Node interface returns the last child of the node, or null if there are no child nodes.
no setterinherited
lastElementChild Element?
The DocumentFragment.lastElementChild read-only property returns the document fragment's last child Element, or null if there are no child elements.
no setterinherited
mode ShadowRootMode
The mode read-only property of the ShadowRoot specifies its mode — either open or closed. This defines whether or not the shadow root's internal features are accessible from JavaScript.
no setter
nextSibling Node?
The read-only nextSibling property of the Node interface returns the node immediately following the specified one in their parent's Node.childNodes, or returns null if the specified node is the last child in the parent element.
no setterinherited
nodeName String
The read-only nodeName property of Node returns the name of the current node as a string.
no setterinherited
nodeType int
The read-only nodeType property of a Node interface is an integer that identifies what the node is. It distinguishes different kind of nodes from each other, such as Element, Text and Comment.
no setterinherited
nodeValue String?
The nodeValue property of the Node interface returns or sets the value of the current node.
getter/setter pairinherited
not JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of !this in JavaScript.
no setter
onslotchange EventHandler?
getter/setter pair
ownerDocument Document?
The read-only ownerDocument property of the Node interface returns the top-level document object of the node.
no setterinherited
parentElement Element?
The read-only parentElement property of Node interface returns the DOM node's parent Element, or null if the node either has no parent, or its parent isn't a DOM Element.
no setterinherited
parentNode Node?
The read-only parentNode property of the Node interface returns the parent of the specified node in the DOM tree.
no setterinherited
pictureInPictureElement Element?
The pictureInPictureElement read-only property of the ShadowRoot interface returns the Element that is currently being presented in picture-in-picture mode in this shadow tree, or null if picture-in-picture mode is not currently in use.
no setter
pointerLockElement Element?
The pointerLockElement read-only property of the ShadowRoot interface provides the element set as the target for mouse events while the pointer is locked. It is null if lock is pending, pointer is unlocked, or the target is in another tree.
no setter
previousSibling Node?
The read-only previousSibling property of the Node interface returns the node immediately preceding the specified one in its parent's Node.childNodes list, or null if the specified node is the first in that list.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
serializable bool
The serializable read-only property of the ShadowRoot interface returns true if the shadow root is serializable.
no setter
slotAssignment SlotAssignmentMode
The read-only slotAssignment property of the ShadowRoot interface returns the slot assignment mode for the shadow DOM tree. Nodes are either automatically assigned (named) or manually assigned (manual). The value of this property defined using the slotAssignment option when calling Element.attachShadow.
no setter
styleSheets StyleSheetList
The styleSheets read-only property of the ShadowRoot interface returns a StyleSheetList of CSSStyleSheet objects, for stylesheets explicitly linked into or embedded in a shadow tree.
no setter
text String

Available on Node, provided by the NodeGlue extension

no getter
textContent String?
The textContent property of the Node interface represents the text content of the node and its descendants.
getter/setter pairinherited

Methods

add(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this + any in JavaScript.
addEventListener(String type, EventListener? callback, [JSAny options]) → void
The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
inherited
and(JSAny? any) JSAny?

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this && any in JavaScript.
append(Node other) Node

Available on Node, provided by the NodeGlue extension

append(JSAny nodes) → void
The DocumentFragment.append() method inserts a set of Node objects or string objects after the last child of the document fragment. String objects are inserted as equivalent Text nodes.
inherited
appendChild(Node node) Node
The appendChild() method of the Node interface adds a node to the end of the list of children of a specified parent node.
inherited
callMethod<R extends JSAny?>(JSAny method, [JSAny? arg1, JSAny? arg2, JSAny? arg3, JSAny? arg4]) → R

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Calls method on this JSObject with up to four arguments.
callMethodVarArgs<R extends JSAny?>(JSAny method, [List<JSAny?>? arguments]) → R

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Calls method on this JSObject with a variable number of arguments.
clone(bool? deep) Node

Available on Node, provided by the NodeGlue extension

cloneNode([bool deep]) Node
The cloneNode() method of the Node interface returns a duplicate of the node on which this method was called. Its parameter controls if the subtree contained in a node is also cloned or not.
inherited
compareDocumentPosition(Node other) int
The compareDocumentPosition() method of the Node interface reports the position of its argument node relative to the node on which it is called.
inherited
contains(Node? other) bool
The contains() method of the Node interface returns a boolean value indicating whether a node is a descendant of a given node, that is the node itself, one of its direct children (Node.childNodes), one of the children's direct children, and so on.
inherited
dartify() Object?

Available on JSAny?, provided by the JSAnyUtilityExtension extension

Converts a JavaScript value to the Dart equivalent if possible.
delete(JSAny property) JSBoolean

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Deletes the property with key property from this JSObject.
dispatchEvent(Event event) bool
The dispatchEvent() method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
inherited
divide(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this / any in JavaScript.
equals(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this == any in JavaScript.
exponentiate(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this ** any in JavaScript.
getAnimations() JSArray<Animation>
The getAnimations() method of the ShadowRoot interface returns an array of all Animation objects currently in effect whose target elements are descendants of the shadow tree. This array includes CSS Animations, CSS Transitions, and Web Animations.
getElementById(String elementId) Element?
The getElementById() method of the DocumentFragment returns an Element object representing the element whose Element.id property matches the specified string. Since element IDs are required to be unique if specified, they're a useful way to get access to a specific element quickly.
inherited
getHTML([GetHTMLOptions options]) String
The getHTML() method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.
getProperty<R extends JSAny?>(JSAny property) → R

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

The value of the property key property of this JSObject.
getRootNode([GetRootNodeOptions options]) Node
The getRootNode() method of the Node interface returns the context object's root, which optionally includes the shadow root if it is available.
inherited
greaterThan(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this > any in JavaScript.
greaterThanOrEqualTo(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this >= any in JavaScript.
has(String property) bool

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Shorthand helper for hasProperty to check whether this JSObject contains the property key property, but takes and returns a Dart value.
hasChildNodes() bool
The hasChildNodes() method of the Node interface returns a boolean value indicating whether the given Node has child nodes or not.
inherited
hasProperty(JSAny property) JSBoolean

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Whether or not this JSObject contains the property key property.
insertBefore(Node node, Node? child) Node
The insertBefore() method of the Node interface inserts a node before a reference node as a child of a specified parent node.
inherited
instanceof(JSFunction constructor) bool

Available on JSAny?, provided by the JSAnyUtilityExtension extension

Whether this JSAny? is an instanceof constructor.
instanceOfString(String constructorName) bool

Available on JSAny?, provided by the JSAnyUtilityExtension extension

Whether this JSAny? is an instanceof the constructor that is defined by constructorName, which is looked up in the globalContext.
isA<T extends JSAny?>() bool

Available on JSAny?, provided by the JSAnyUtilityExtension extension

Whether this JSAny? is an instance of the JavaScript type that is declared by T.
isDefaultNamespace(String? namespace) bool
The isDefaultNamespace() method of the Node interface accepts a namespace URI as an argument. It returns a boolean value that is true if the namespace is the default namespace on the given node and false if not.
inherited
isEqualNode(Node? otherNode) bool
The isEqualNode() method of the Node interface tests whether two nodes are equal. Two nodes are equal when they have the same type, defining characteristics (for elements, this would be their ID, number of children, and so forth), its attributes match, and so on. The specific set of data points that must match varies depending on the types of the nodes.
inherited
isSameNode(Node? otherNode) bool
The isSameNode() method of the Node interface is a legacy alias the for the === strict equality operator. That is, it tests whether two nodes are the same (in other words, whether they reference the same object).
inherited
lessThan(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this < any in JavaScript.
lessThanOrEqualTo(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this <= any in JavaScript.
lookupNamespaceURI(String? prefix) String?
The lookupNamespaceURI() method of the Node interface takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and null if not).
inherited
lookupPrefix(String? namespace) String?
The lookupPrefix() method of the Node interface returns a string containing the prefix for a given namespace URI, if present, and null if not. When multiple prefixes are possible, the first prefix is returned.
inherited
modulo(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this % any in JavaScript.
multiply(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this * any in JavaScript.
normalize() → void
The normalize() method of the Node interface puts the specified node and all of its sub-tree into a normalized form. In a normalized sub-tree, no text nodes in the sub-tree are empty and there are no adjacent text nodes.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notEquals(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this != any in JavaScript.
or(JSAny? any) JSAny?

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this || any in JavaScript.
prepend(JSAny nodes) → void
The DocumentFragment.prepend() method inserts a set of Node objects or string objects before the first child of the document fragment. String objects are inserted as equivalent Text nodes.
inherited
querySelector(String selectors) Element?
The DocumentFragment.querySelector() method returns the first element, or null if no matches are found, within the DocumentFragment (using depth-first pre-order traversal of the document's nodes) that matches the specified group of selectors.
inherited
querySelectorAll(String selectors) NodeList
The DocumentFragment.querySelectorAll() method returns a NodeList of elements within the DocumentFragment (using depth-first pre-order traversal of the document's nodes) that matches the specified group of selectors.
inherited
removeChild(Node child) Node
The removeChild() method of the Node interface removes a child node from the DOM and returns the removed node.
inherited
removeEventListener(String type, EventListener? callback, [JSAny options]) → void
The removeEventListener() method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
inherited
replaceChild(Node node, Node child) Node
The replaceChild() method of the Node interface replaces a child node within the given (parent) node.
inherited
replaceChildren(JSAny nodes) → void
The DocumentFragment.replaceChildren() method replaces the existing children of a DocumentFragment with a specified new set of children. These can be string or Node objects.
inherited
setHTMLUnsafe(JSAny html) → void
The setHTMLUnsafe() method of the ShadowRoot interface is used to parse a string of HTML into a DocumentFragment, which then replaces the element's subtree in the DOM. The input HTML may include declarative shadow roots.
setProperty(JSAny property, JSAny? value) → void

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Write the value of property key property of this JSObject.
strictEquals(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this === any in JavaScript.
strictNotEquals(JSAny? any) JSBoolean

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this !== any in JavaScript.
subtract(JSAny? any) JSAny

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this - any in JavaScript.
toString() String
A string representation of this object.
inherited
typeofEquals(String typeString) bool

Available on JSAny?, provided by the JSAnyUtilityExtension extension

Whether the result of typeof on this JSAny? is typeString.
unsignedRightShift(JSAny? any) JSNumber

Available on JSAny?, provided by the JSAnyOperatorExtension extension

The result of this >>> any in JavaScript.

Operators

operator ==(Object other) bool
The equality operator.
inherited
operator [](String property) JSAny?

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Shorthand helper for getProperty to get the value of the property key property of this JSObject, but takes and returns a Dart value.
operator []=(String property, JSAny? value) → void

Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension

Shorthand helper for setProperty to write the value of the property key property of this JSObject, but takes a Dart value.