For AI agents: a documentation index is available at /llms.txt. Markdown versions of all pages are available by appending .md to any URL.
Interface ShadowRoot
activeElement: Element | null;
adoptedStyleSheets: CSSStyleSheet[];
ATTRIBUTE_NODE: 2;
baseURI: string;
CDATA_SECTION_NODE: 4;
childElementCount: number;
childNodes: NodeListOf<ChildNode>;
children: HTMLCollection;
clonable: boolean;
COMMENT_NODE: 8;
customElementRegistry: CustomElementRegistry | null;
delegatesFocus: boolean;
DOCUMENT_FRAGMENT_NODE: 11;
DOCUMENT_NODE: 9;
DOCUMENT_POSITION_CONTAINED_BY: 16;
DOCUMENT_POSITION_CONTAINS: 8;
DOCUMENT_POSITION_DISCONNECTED: 1;
DOCUMENT_POSITION_FOLLOWING: 4;
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
DOCUMENT_POSITION_PRECEDING: 2;
DOCUMENT_TYPE_NODE: 10;
ELEMENT_NODE: 1;
ENTITY_NODE: 6;
ENTITY_REFERENCE_NODE: 5;
firstChild: ChildNode | null;
firstElementChild: Element | null;
fullscreenElement: Element | null;
host: Element;
innerHTML: string;
isConnected: boolean;
lastChild: ChildNode | null;
lastElementChild: Element | null;
mode: ShadowRootMode;
nextSibling: ChildNode | null;
nodeName: string;
nodeType: number;
nodeValue: string | null;
NOTATION_NODE: 12;
onslotchange: ((this: ShadowRoot, ev: Event) => any) | null;
ownerDocument: Document;
parentElement: HTMLElement | null;
parentNode: ParentNode | null;
pictureInPictureElement: Element | null;
pointerLockElement: Element | null;
previousSibling: ChildNode | null;
PROCESSING_INSTRUCTION_NODE: 7;
serializable: boolean;
slotAssignment: SlotAssignmentMode;
styleSheets: StyleSheetList;
TEXT_NODE: 3;
get textContent(): string;
set textContent(value: string | null): void;
addEventListener<K extends "slotchange">(
type: K,
listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any,
options?: boolean | AddEventListenerOptions,
): void;
addEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | AddEventListenerOptions,
): void;
append(...nodes: (string | Node)[]): void;
appendChild<T extends Node>(node: T): T;
cloneNode(subtree?: boolean): Node;
compareDocumentPosition(other: Node): number;
contains(other: Node | null): boolean;
dispatchEvent(event: Event): boolean;
elementFromPoint(x: number, y: number): Element | null;
elementsFromPoint(x: number, y: number): Element[];
getAnimations(): Animation[];
getElementById(elementId: string): HTMLElement | null;
getHTML(options?: GetHTMLOptions): string;
getRootNode(options?: GetRootNodeOptions): Node;
hasChildNodes(): boolean;
insertBefore<T extends Node>(node: T, child: Node | null): T;
isDefaultNamespace(namespace: string | null): boolean;
isEqualNode(otherNode: Node | null): boolean;
isSameNode(otherNode: Node | null): boolean;
lookupNamespaceURI(prefix: string | null): string | null;
lookupPrefix(namespace: string | null): string | null;
moveBefore(node: Node, child: Node | null): void;
normalize(): void;
prepend(...nodes: (string | Node)[]): void;
querySelector<K extends keyof HTMLElementTagNameMap>(
selectors: K,
): HTMLElementTagNameMap[K] | null;
querySelector<K extends keyof SVGElementTagNameMap>(
selectors: K,
): SVGElementTagNameMap[K] | null;
querySelector<K extends keyof MathMLElementTagNameMap>(
selectors: K,
): MathMLElementTagNameMap[K] | null;
querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(
selectors: K,
): HTMLElementDeprecatedTagNameMap[K] | null;
querySelector<E extends Element = Element>(selectors: string): E | null;
querySelectorAll<K extends keyof HTMLElementTagNameMap>(
selectors: K,
): NodeListOf<HTMLElementTagNameMap[K]>;
querySelectorAll<K extends keyof SVGElementTagNameMap>(
selectors: K,
): NodeListOf<SVGElementTagNameMap[K]>;
querySelectorAll<K extends keyof MathMLElementTagNameMap>(
selectors: K,
): NodeListOf<MathMLElementTagNameMap[K]>;
querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(
selectors: K,
): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
querySelectorAll<E extends Element = Element>(
selectors: string,
): NodeListOf<E>;
removeChild<T extends Node>(child: T): T;
removeEventListener<K extends "slotchange">(
type: K,
listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any,
options?: boolean | EventListenerOptions,
): void;
removeEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | EventListenerOptions,
): void;
replaceChild<T extends Node>(node: Node, child: T): T;
replaceChildren(...nodes: (string | Node)[]): void;
setHTMLUnsafe(html: string): void;
}
Hierarchy (View Summary)
- DocumentFragment
- DocumentOrShadowRoot
- ShadowRoot
Index
Properties
Accessors
Methods
Properties
ReadonlyactiveElement
Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document.
For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe's node document.
Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that's located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not.
adoptedStyleSheets
ReadonlyATTRIBUTE_NODE
ReadonlybaseURI
The read-only baseURI property of the Node interface returns the absolute base URL of the document containing the node.
ReadonlyCDATA_SECTION_NODE
node is a CDATASection node.
ReadonlychildElementCount
ReadonlychildNodes
The read-only childNodes property of the Node interface returns a live NodeList of child nodes of the given element where the first child node is assigned index 0. Child nodes include elements, text and comments.
Readonlychildren
Returns the child elements.
Readonlyclonable
The clonable read-only property of the ShadowRoot interface returns true if the shadow root is clonable, and false otherwise.
ReadonlyCOMMENT_NODE
node is a Comment node.
ReadonlycustomElementRegistry
ReadonlydelegatesFocus
The delegatesFocus read-only property of the ShadowRoot interface returns true if the shadow root delegates focus, and false otherwise.
ReadonlyDOCUMENT_FRAGMENT_NODE
node is a DocumentFragment node.
ReadonlyDOCUMENT_NODE
node is a document.
ReadonlyDOCUMENT_POSITION_CONTAINED_BY
Set when other is a descendant of node.
ReadonlyDOCUMENT_POSITION_CONTAINS
Set when other is an ancestor of node.
ReadonlyDOCUMENT_POSITION_DISCONNECTED
Set when node and other are not in the same tree.
ReadonlyDOCUMENT_POSITION_FOLLOWING
Set when other is following node.
ReadonlyDOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
ReadonlyDOCUMENT_POSITION_PRECEDING
Set when other is preceding node.
ReadonlyDOCUMENT_TYPE_NODE
node is a doctype.
ReadonlyELEMENT_NODE
node is an element.
ReadonlyENTITY_NODE
ReadonlyENTITY_REFERENCE_NODE
ReadonlyfirstChild
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.
ReadonlyfirstElementChild
Returns the first child that is an element, and null otherwise.
ReadonlyfullscreenElement
Returns document's fullscreen element.
Readonlyhost
The host read-only property of the ShadowRoot returns a reference to the DOM element the ShadowRoot is attached to.
innerHTML
The innerHTML property of the ShadowRoot interface gets or sets the HTML markup to the DOM tree inside the ShadowRoot.
ReadonlyisConnected
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.
ReadonlylastChild
The read-only lastChild property of the Node interface returns the last child of the node, or null if there are no child nodes.
ReadonlylastElementChild
Returns the last child that is an element, and null otherwise.
Readonlymode
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.
ReadonlynextSibling
The read-only nextSibling property of the Node interface returns the node immediately following the specified one in their parent's childNodes, or returns null if the specified node is the last child in the parent element.
ReadonlynodeName
The read-only nodeName property of Node returns the name of the current node as a string.
ReadonlynodeType
The read-only nodeType property of a Node interface is an integer that identifies what the node is. It distinguishes different kinds of nodes from each other, such as elements, text, and comments.
nodeValue
The nodeValue property of the Node interface returns or sets the value of the current node.
ReadonlyNOTATION_NODE
onslotchange
ReadonlyownerDocument
The read-only ownerDocument property of the Node interface returns the top-level document object of the node.
ReadonlyparentElement
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. Node.parentNode on the other hand returns any kind of parent, regardless of its type.
ReadonlyparentNode
The read-only parentNode property of the Node interface returns the parent of the specified node in the DOM tree.
ReadonlypictureInPictureElement
ReadonlypointerLockElement
ReadonlypreviousSibling
The read-only previousSibling property of the Node interface returns the node immediately preceding the specified one in its parent's childNodes list, or null if the specified node is the first in that list.
ReadonlyPROCESSING_INSTRUCTION_NODE
node is a ProcessingInstruction node.
Readonlyserializable
The serializable read-only property of the ShadowRoot interface returns true if the shadow root is serializable.
ReadonlyslotAssignment
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().
ReadonlystyleSheets
ReadonlyTEXT_NODE
node is a Text node.
Accessors
textContent
-
get textContent(): string
Returns string
-
set textContent(value: string | null): void
The
textContentproperty of the Node interface represents the text content of the node and its descendants.Parameters
- value: string | null
Returns void
Methods
addEventListener
-
addEventListener<K extends "slotchange">(
type: K,
listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any,
options?: boolean | AddEventListenerOptions,
): voidThe
addEventListener()method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.Type Parameters
- K extends "slotchange"
Parameters
- type: K
- listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any
Optionaloptions: boolean | AddEventListenerOptions
Returns void
-
addEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | AddEventListenerOptions,
): voidThe
addEventListener()method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.Parameters
- type: string
- listener: EventListenerOrEventListenerObject
Optionaloptions: boolean | AddEventListenerOptions
Returns void
append
-
Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
- ...nodes: (string | Node)[]
Returns void
appendChild
cloneNode
-
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 the node is also cloned or not.Parameters
Optionalsubtree: boolean
Returns Node
compareDocumentPosition
-
The
compareDocumentPosition()method of the Node interface reports the position of its argument node relative to the node on which it is called.Parameters
- other: Node
Returns number
contains
-
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 (childNodes), one of the children's direct children, and so on.Parameters
- other: Node | null
Returns boolean
dispatchEvent
-
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().Parameters
- event: Event
Returns boolean
elementFromPoint
-
Parameters
- x: number
- y: number
Returns Element | null
elementsFromPoint
-
Parameters
- x: number
- y: number
Returns Element[]
getAnimations
-
Returns Animation[]
getElementById
-
The
getElementById()method of the DocumentFragment returns an Element object representing the element whose 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.Parameters
- elementId: string
Returns HTMLElement | null
getHTML
-
The
getHTML()method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.Parameters
Optionaloptions: GetHTMLOptions
Returns string
getRootNode
-
The
getRootNode()method of the Node interface returns the context object's root, which optionally includes the shadow root if it is available.Parameters
Optionaloptions: GetRootNodeOptions
Returns Node
hasChildNodes
-
The
hasChildNodes()method of the Node interface returns a boolean value indicating whether the given Node has child nodes or not.Returns boolean
insertBefore
isDefaultNamespace
-
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. The default namespace can be retrieved with Node.lookupNamespaceURI() by passing null as the argument.Parameters
- namespace: string | null
Returns boolean
isEqualNode
-
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.Parameters
- otherNode: Node | null
Returns boolean
isSameNode
-
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).Parameters
- otherNode: Node | null
Returns boolean
lookupNamespaceURI
-
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). This method's existence allows Node objects to be passed as a namespace resolver to XPathEvaluator.createExpression() and XPathEvaluator.evaluate().Parameters
- prefix: string | null
Returns string | null
lookupPrefix
-
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.Parameters
- namespace: string | null
Returns string | null
moveBefore
normalize
-
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.Returns void
prepend
-
Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
- ...nodes: (string | Node)[]
Returns void
querySelector
-
querySelector<K extends keyof HTMLElementTagNameMap>(
selectors: K,
): HTMLElementTagNameMap[K] | nullReturns the first element that is a descendant of node that matches selectors.
Type Parameters
- K extends keyof HTMLElementTagNameMap
Parameters
- selectors: K
Returns HTMLElementTagNameMap[K] | null
-
Type Parameters
- K extends keyof SVGElementTagNameMap
Parameters
- selectors: K
Returns SVGElementTagNameMap[K] | null
-
querySelector<K extends keyof MathMLElementTagNameMap>(
selectors: K,
): MathMLElementTagNameMap[K] | nullType Parameters
- K extends keyof MathMLElementTagNameMap
Parameters
- selectors: K
Returns MathMLElementTagNameMap[K] | null
-
querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(
selectors: K,
): HTMLElementDeprecatedTagNameMap[K] | nullType Parameters
- K extends keyof HTMLElementDeprecatedTagNameMap
Parameters
- selectors: K
Returns HTMLElementDeprecatedTagNameMap[K] | null
querySelectorAll
-
querySelectorAll<K extends keyof HTMLElementTagNameMap>(
selectors: K,
): NodeListOf<HTMLElementTagNameMap[K]>Returns all element descendants of node that match selectors.
Type Parameters
- K extends keyof HTMLElementTagNameMap
Parameters
- selectors: K
Returns NodeListOf<HTMLElementTagNameMap[K]>
-
querySelectorAll<K extends keyof SVGElementTagNameMap>(
selectors: K,
): NodeListOf<SVGElementTagNameMap[K]>Type Parameters
- K extends keyof SVGElementTagNameMap
Parameters
- selectors: K
Returns NodeListOf<SVGElementTagNameMap[K]>
-
querySelectorAll<K extends keyof MathMLElementTagNameMap>(
selectors: K,
): NodeListOf<MathMLElementTagNameMap[K]>Type Parameters
- K extends keyof MathMLElementTagNameMap
Parameters
- selectors: K
Returns NodeListOf<MathMLElementTagNameMap[K]>
-
querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(
selectors: K,
): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>Type Parameters
- K extends keyof HTMLElementDeprecatedTagNameMap
Parameters
- selectors: K
Returns NodeListOf<HTMLElementDeprecatedTagNameMap[K]>
removeChild
removeEventListener
-
removeEventListener<K extends "slotchange">(
type: K,
listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any,
options?: boolean | EventListenerOptions,
): voidThe
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.Type Parameters
- K extends "slotchange"
Parameters
- type: K
- listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any
Optionaloptions: boolean | EventListenerOptions
Returns void
-
removeEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | EventListenerOptions,
): voidThe
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.Parameters
- type: string
- listener: EventListenerOrEventListenerObject
Optionaloptions: boolean | EventListenerOptions
Returns void
replaceChild
replaceChildren
-
Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Parameters
- ...nodes: (string | Node)[]
Returns void
setHTMLUnsafe
-
The
setHTMLUnsafe()method of the ShadowRoot interface can be used to parse HTML input into a DocumentFragment, optionally filtering out unwanted elements and attributes, and then use it to replace the existing tree in the Shadow DOM.Parameters
- html: string
Returns void
The
ShadowRootinterface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.MDN Reference