Examples

A library of animation patterns that recur in launch videos, each built once in the engine with its numbers, to copy from.

Some moves come up in video after video: a prompt typed close up, an answer streaming in, a status that changes, a number that proves a claim. The examples library builds each one once, checks it with measure and check, and writes down its numbers, so a shot that needs one starts from a working version.

The effects Intentface Launch has, in one reel

Each example video holds one family. Each shot is one pattern, written as a small component that takes its copy and cue frames as props, with a comment saying when to use it and why its numbers are what they are. They are drawn on a neutral made-up app. In a product video the same moves run on the product's own UI and in its look.

Claude finds them through the product-launch-video skill's patterns.md, which lists every pattern with its numbers. The code is in this repo's videos/ folder.

Look at one

From a checkout of this repo:

sh
pnpm launch sheet example-ai --shot cut-in --every 3
pnpm launch still example-states --at status:+60,status:end --grid
pnpm launch measure example-type --shot build-centred

Or open the studio (pnpm launch dev) and pick the video.

AI products: example-ai

ShotPatternUse it for
cut-inCut in on the caretA prompt typed close up: a hard cut to about 2× closer on the caret while the typing carries on, so it reads as getting closer, not a new scene.
streamStreaming answerThe answer after send: words land in the accent and cool to ink, and the camera pulls back as the answer grows.
selectSelect a passageActing on part of a text: a selection band drags across a span word by word, then an action chip appears beside it.
agent-stepsAgent stepsAn agent working: a log writes itself a line at a time, each step spinning while it runs and checked when it is done.

UI changing state: example-states

ShotPatternUse it for
statusStatus pill that cyclesA state the product reports, in a sentence: the label rolls, the pill's width and colour follow, the line stays centred.
spreadState spreading through a listOne action that changes many things: a click, then a wave down the rows.
progress-toastA task finishingAn export or deploy: a toast counts to 100%, becomes "Exported" with a check, and a headline rises from behind the window.
threadA conversation filling inChat or comments: typing dots, then the message, the list gliding up.

Kinetic type: example-type

ShotPatternUse it for
build-centredA line that stays centred as it buildsA claim told word by word on the beats.
slotA word on a reelOne product, many uses: the last word of a sentence rolls through options and brakes onto one.
wordmark-cut, wordmark-closeWordmark, then its last lettersAn end card that feels final: the wordmark settles, then a hard cut to a close-up on its full stop.
punchStatement cardsA short manifesto: lines flicked in, hard cuts on the beat.

Camera and composition: example-camera

ShotPatternUse it for
wide-fieldA field wider than the frameA long query typed close up: the camera pages across before the caret reaches the edge.
flickCards flicked along a railBrowsing templates or a gallery: a quick throw and a long glide that stops exactly on a card.
count-gridProof by multiplicationA number that matters: a few cards, then the grid fills and the count runs up.
wallA wall of integrations"Works with everything": tiles flow out around a still headline while the camera pulls back.

Add a pattern

A new pattern goes in the example video of its family (or a new videos/example-<family>), in the shared look the others use (videos/example-look.tsx), as a component with props and a comment giving its numbers and their reasons. The look has a light and a dark theme: an example is light, and plays dark inside <ExampleTheme value={DARK}> (a reel on a dark film does this). Read its colours from look while rendering, never into a module-level constant, or the theme cannot reach them. Check it with still, sheet, measure and check like any shot, then add it to patterns.md and to this page.