The node type for this renderer (e.g., HTMLElement, VNode, string)
ReadonlyaddAdd an event listener to a node. Scoped — the listener is removed
when the enclosing Scope closes. Callers don't need to register
their own finalizer.
options is passed through to the underlying addEventListener
(matters for once, capture, passive); the same values are
passed to removeEventListener in the finalizer so the listener
is correctly identified for removal.
Non-interactive renderers (SSR) treat this as a no-op.
ReadonlyappendAppend a child node to a parent node.
ReadonlycompleteMark the initial hydration walk as complete — flips hydrationPhase
from true to false and emits the transition to subscribers.
Called by hydrate() after the initial Effect.provide(element, …)
returns; no-op for non-hydration renderers.
ReadonlycreateCreate an element node of the given type.
The element tag name
Optionalnamespace: string
Optional namespace URI (e.g., "http://www.w3.org/2000/svg" for SVG)
ReadonlycreateCreate a slot for swappable content. Used by Boundary.suspense to swap fallback with actual content. Returns a Slot with a marker node and methods to set/clear content.
ReadonlycreateCreate a text node with the given content.
ReadonlyenvironmentA string identifying the rendering environment (e.g., "dom", "ssr", "terminal"). Useful for conditional logic in components that need to behave differently in different environments.
ReadonlyfinalizeSignal that an element created with createNode has been fully built (attributes set, children appended). Used by the hydration renderer to pop its traversal context. No-op for other renderers.
ReadonlygetGet children of a node (for traversal during hydration).
ReadonlyhydrationReactive hydration phase — true while the initial hydration walk is
in progress, false afterwards (or from the outset for non-hydration
renderers). Observed by browser-only reactive values (e.g.
Screen.match) that need to serve their SSR-safe fallback during
hydration and switch to the live value once hydration completes, so
the first client render matches the SSR HTML.
ReadonlyinsertInsert a child before a reference node.
ReadonlypushResume a hydration walk inside a node whose subtree hasn't been fully
consumed yet. Used by reconcile after a forked ControlCtx builds its
containerElement via create() — create()'s inner finalizeNode
pops the container off the stack, and subsequent addSlot renders
need it back on top so they find the SSR slot nodes inside.
The complementary pop is finalizeNode(node), which is invoked
indirectly by finalizeContainer at the end of reconcile.
No-op for renderers that don't maintain a traversal stack.
ReadonlyremoveRemove an attribute from a node.
ReadonlyremoveRemove a child node from a parent node.
ReadonlyremoveRemove a CSS style property from a node.
ReadonlyreplaceReplace an old child node with a new one.
ReadonlysetSet an attribute on a node. If value is null/undefined, the attribute should be removed. If value is a boolean, true sets empty string, false removes.
ReadonlysetSet the className of a node.
ReadonlysetSet the innerHTML of a node. Note: This may not be supported by all renderers.
ReadonlysetSet the value property of an input-like node.
ReadonlysetSet a CSS style property on a node.
ReadonlysetSet the text content of a node.
ReadonlytoggleToggle a CSS class on a node.
Abstract renderer interface for creating and manipulating a node tree. Implementations can target DOM, strings (SSR), terminal, native, etc.