Docs Platform
Reveal
A visual entrance wrapper. The machine owns a one-way
hidden → shown latch. IntersectionObserver, delay, and
reduced-motion live in
ui-headless-core/reveal/controller.
Live machine
The shipped revealMachine: START begins observing, then intersection, backstop, or a manual REVEAL shows the content — and it never un-reveals.
reveal · live via createService
States · walked from the machine
Transitions from here · click to send
Context
{
"observing": false,
"backstopPending": false
}Log · newest first
No events yet — use the component above or send a transition.
Explore the layers
Machine (@grassroot/ui-machines/reveal).
Headless: five adapters plus mountReveal.
Styled: five @grassroot/ui-* Reveal
wrappers. Spec:
packages/ui-headless/core/src/reveal/reveal.spec.md.
Behaviour contract
Oracle: frozen reduceReveal. No keys, no pointer, no ARIA
role. Root carries data-state="hidden" | "shown".
Anatomy
root only. There is no trigger or overlay.