Moves overlay content to a caller-selected DOM mount while preserving meaningful SSR output in place.
Since
1.0.0-next.0
Owner
Brand Core
Export
PRIVATE_BETA_PACKAGE_COORDINATE_REDACTED/Portal
Release
Documentation version
Deterministic fixture · default state
Component studio
Keyboard focusCanvasRaised
Locale-aware foundations keep permissions, direction, and reading scale independent.
Preview controls could not be applied. The static default fixture remains available.
§01
Contract
Semantics first
Anatomy
Introduces no wrapper or role; children retain their semantics at the client mount and, by default, in the SSR fallback location.
Consumer classes, styles, and data attributes may extend the surface, but required roles, IDs, relationships, and handlers remain owned by the component.
Keyboard
No keyboard behavior of its own; portalled descendants retain their documented focus order.
Mount order must not create a surprising reading or focus sequence.
§02
Public surface
API & styling
Props
id
Explicit IDs override stable generated IDs.
class / style
Consumer additions compose with required styles.
ref
Element or callback where focus control is expected.
children
Typed content; raw HTML strings are never rendered.
Slots & events
children
Primary content slot.
onChange
Typed value plus a small reason object when state changes.
import Portal from 'PRIVATE_BETA_PACKAGE_COORDINATE_REDACTED/Portal';
<Portal>Frauthy content</Portal>
Astroisland
---
import Portal from 'PRIVATE_BETA_PACKAGE_COORDINATE_REDACTED/Portal';
---
<Portal client:visible>Frauthy content</Portal>
§04
Verification
Evidence record
Scheduled
Automated
Batch C coverage verifies server fallback output, client-only opt-out, and explicit mount behavior; integrated axe remains part of the Portal route matrix.
Target
Brand 1.0.0-next.0 matrix
Last verified
Pending integrated G2 run
Required
Assistive technology
Pending VoiceOver/Safari and NVDA/Firefox reading-order verification with Dialog and Popover mounts.
Desktop
VoiceOver/Safari · NVDA/Firefox
Touch
Not required for beta
Open
Known issues
Setting ssrFallback=false intentionally omits the children from server output.
A mount outside the logical reading sequence can make focus restoration confusing even when the DOM move succeeds.
§05
Editorial guidance
Do / don’t
Do
Use one deliberate overlay mount near the application root and keep the trigger-to-content relationship explicit.
Don’t
Do not portal ordinary document content merely to escape layout CSS.
There is no stable predecessor for this explicit compiled subpath. The v1 compatibility layer remains tested separately; visual and API diffs begin with the next prerelease.