Reveal On Scroll

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.

Surfaces
webapps-script-web
Degraded on
SurfaceNote
meet-stageContent renders visible immediately (no scroll context)
pdfRenders as fully visible static block
googlechatRenders as plain text block
Fields
FieldType
titlestring. Bold heading inside the block.optional
bodystring. Body text inside the block.optional
direction"up" | "down" | "left" | "right" (optional, default "up"). Drift direction before reveal.optional
durationnumber. Transition duration in seconds. Default 0.7.optional
accentstring. Left border accent colour. Default "#4f46e5".optional
backgroundstring. Block background. Default "#f8fafc".optional
Example payload
{
  "type": "reveal_on_scroll"
}
ARD catalog entry
{
  "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"
  ]
}
← Full ARD catalog Try it live →
Deploy your own renderer

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 →