Control when an element or background appears
React to scroll, delay, touch, or exit-intent instead of showing everything instantly.
By default every button and object renders the moment the page loads. The appear section of
POST /api/admin/bg/ui lets you delay any individual element — or the background itself —
behind a trigger: after N seconds, after scrolling N%, on first touch, or on exit-intent.
Delay an element
Rules are keyed by the same button/object id used in free-canvas positioning:
curl -X POST "https://app.tease.link/api/admin/bg/ui?domain=links.creator.com" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"appear": {
"items": {
"obj_headline": { "when": "delay", "after": 1.5 },
"b_a1b2c3d4": { "when": "scroll", "after": 40, "once": "visit" }
}
}
}'| Key | Meaning |
|---|---|
when | now (default), delay, touch, scroll, exit |
after | Only with when: "delay" (seconds, 0.1–60) or when: "scroll" (percent scrolled, 1–100) — invalid with any other when |
once | visit (default) or session — whether the "already appeared" memory resets each visit or lasts the browser session |
Up to 120 element rules per domain. Omit an id to leave that element showing instantly, as today.
Delay the background
appear.bg reveals a background variant (or the desktop-wide background) on the same trigger
vocabulary, keyed by the background's own arm identifier rather than an element id:
curl -X POST "https://app.tease.link/api/admin/bg/ui?domain=links.creator.com" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"appear": {
"bg": { "arm": "desktop", "when": "scroll", "after": 25 }
}
}'arm is required alongside when — a rule missing either is dropped rather than stored
partially. This only takes effect when the domain isn't running a background carousel.
Clear either part by omitting it from a fresh appear object, or remove the whole section with
{ "appear": null }.
Confirm it worked
ui.appear in the response should list exactly the ids/arm you set. On the preview page, an
item with when: "delay" should be invisible until the delay elapses; one with when: "scroll"
should stay hidden until you scroll past its threshold. Reload with once: "visit" and it should
appear again in the new load; with once: "session" it should stay revealed within the same
browser tab session.
Different from buttons.reveal_delay
The landing-wide buttons.reveal_delay (see
Style every button on the landing page)
is a single flat fade-in delay for the whole button row. appear is the richer, per-element
system — use it when different elements need different triggers.
What's next
- Add a sticky call-to-action bar uses the same
appear/aftervocabulary for its own show trigger - Place elements freely on a canvas
- Back to Landing-page builder