Content block that starts invisible and fades + slides into view when scrolled into the viewport, using an IntersectionObserver with a CSS class toggle. Requires a small inline script — degrades gracefully to visible static content where JS is unavailable.
| Surface | Note |
|---|---|
| meet-stage | Content renders visible immediately (no scroll context) |
| Renders as fully visible static block | |
| googlechat | Renders as plain text block |
| Field | Type | |
|---|---|---|
| title | string. Bold heading inside the block. | optional |
| body | string. Body text inside the block. | optional |
| direction | "up" | "down" | "left" | "right" (optional, default "up"). Drift direction before reveal. | optional |
| duration | number. Transition duration in seconds. Default 0.7. | optional |
| accent | string. Left border accent colour. Default "#4f46e5". | optional |
| background | string. Block background. Default "#f8fafc". | optional |
{
"type": "reveal_on_scroll"
}
{
"identifier": "urn:air:a2uicatalog.ai:atom:reveal_on_scroll",
"displayName": "Reveal On Scroll",
"type": "application/vnd.a2ui.atom+json",
"url": "https://a2uicatalog.ai/atoms/reveal_on_scroll",
"capabilities": [
"web",
"apps-script-web"
],
"description": "Content block that starts invisible and fades + slides into view when scrolled into the viewport, using an IntersectionObserver with a CSS class toggle. Requires a small inline script \u2014 degrades gracefully to visible static content where JS is unavailable.",
"representativeQueries": [
"show a IntersectionObserver scroll-triggered fade+slide reveal",
"content block that starts invisible and fades + slides into view when scrolled into the viewport, us",
"render a reveal on scroll"
]
}
The renderer is open source. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.
git clone https://github.com/a2uicatalog/a2ui
cd apps-script-surface/gas-schema-renderer
clasp push && clasp deploy
Full deploy guide →