§06 · Motion
Every page tells one story.
Our animations act out the customer's real work in three beats: the problem, what we do, what you get. The beats carry the meaning as text, so the scene can stay decorative, and anyone who prefers less motion gets the finished frame at once.
Six rules for moving things.
01
One story, three beats
01 · The problem → 02 · What we do → 03 · What you get. The beats carry the story as text; the scene is decorative.
02
One signature animation per page
The story card on guides, docs and the blog; one scene per section on the home page. Never stack competing animations.
03
Simulate the real work
Real chips, real yoursite.com URLs and real edge cases: a messy paste, an "Already seen" skip, a refund. No abstract geometry.
04
One focal point
In the hero, the animation acts out the headline right under it. Nothing competes beside it.
05
End on the end goal
Every story ends on a call to action, by default "Check my pages free".
06
Google at the centre
Only Google ("Seen by Google") and Bing ("Sent to Bing") ever light up. ChatGPT and Perplexity read "We don't submit to it".
Twelve scenes, one per topic.
Pick the variant that matches what the page is about. Each one below is the real story card, playing the story of a live guide. Replay it, or click a beat to jump.
Illustration with sample pages, not your data.
Timing and easing.
Scenes switch state on data-beat and CSS transitions do the motion. The home page's scroll scenes use GSAP ScrollTrigger.
| Item | Value |
|---|---|
| Story beats | 3,000 / 3,200 / 3,400 ms; plays once at 35% in view; Replay button; beats are clickable |
| Scene easing | cubic-bezier(.2, .7, .2, 1) |
| Pop-in (ig-pop) | 0.35 s ease-out: a 4 px rise, 0.98 → 1 scale |
| Attention flash (ig-flash) | 1.2 s gold wash, once or twice, never looping |
| Footnote pulse | An unlit [1] pulses gold every 1.4 s until it lights |
| Reduced motion | Everything sits inside prefers-reduced-motion: no-preference. Otherwise the end state shows at once, every beat readable |
Less motion, same story.
Every animation sits inside prefers-reduced-motion: no-preference. With reduced motion on, the card shows its last beat straight away, every beat stays readable and every control still works.
DoShow the end state at once, with all three beats readable
Don'tHide content until an animation finishes
DoMark the scene aria-hidden and let the beats carry the story
Don'tPut meaning only in motion or only in colour
DoFlash gold once or twice to draw the eye
Don'tLoop an attention flash, or stack competing animations
Scenes for the blog and docs.
Seven more variants, made for the blog index and the API and MCP docs.
| Variant | The scene | Used on |
|---|---|---|
press | An article comes off the press, into Google's index, then surfaces in a search and an AI Overview | /blog |
mcp-connect | A terminal: an agent's tool call, a curl, or AGENTS.md driving the call | MCP, REST API and AGENTS.md docs |
client-install | The client's own three steps: install, connect, first tool call | Per-client install docs |
tool-sort | The MCP tools file from a jumble into their groups | Tool reference |
recipe-timeline | A recipe's steps on one line, each with the tool it calls | Recipes |
oauth | The real OAuth 2.1 handshake as a sequence diagram | Auth docs |
rate-window | A fixed window of 60 a minute; the 61st request gets 429 and Retry-After | Rate limits |