Sticker
A transparent cutout dropped straight onto the footage: no card, no frame. Pops in, drifts like it is held in a hand, and leaves with the spec's exit (pair with exit "vanish").
Put this in your video
Slap a cutout straight onto the footage: a mark, a reaction, a product shot. Paste this into Claude Code, Codex, or any coding agent.
Use the OverlayMotion video templates from https://github.com/ricardo/overlay-motion Add the Sticker template with my logo PNG at 70% size in the top right corner, from 2s to 6s, popping in with sound and vanishing on the way out.
- Have ready: A transparent PNG or SVG.
- Works over any clip, and still renders with no clip at all.
- Defaults to the center of the frame for about 4 seconds. Ask for another spot, a start time, or a longer hold.
- A correction is one sentence: “Bigger, and let it drift a little more.”
Technical reference: props, spec knobs and JSON
Inputs
Everything inside the overlay's props. Omit one and its default applies.
srctextRequiredCutout artwork: a bundled library name ("pickle") or your own path/URL. A transparent PNG or WebP is the point: a JPEG paints its own rectangle over the footage.
alttextOptionalAccessibility label. Never painted on screen.
fitcontain | coverDefault "contain"How the art meets the region box: contain keeps the whole cutout visible, cover crops it to fill.
sizePctnumberDefault 100Size as a percentage of the region box, so placement stays region-driven. Use overlay.scale when you want the sticker to grow past its region.
shadownone | soft | dropDefault "drop"Contact shadow that separates the cutout from busy footage: soft is a wide ambient pool, drop sits tighter and darker.
entrancepop | fade | noneDefault "pop"Native entrance. Set none when the spec drives the entrance with enter, so the two never stack into a double scale-up.
sfxfalse | cue name | file pathDefault "pop"Entrance sound. false is silence, any cue name swaps it ("ding", "whoosh", "click"), and any path or URL plays your own file.
All 46 accepted values
falsepopbubbletickdingwhooshkeyboard-typing-naturalmouse-click-pressmouse-click-releasetypewriter-scissor-metallic-lowtypewriter-scissor-metallic-basstypewriter-scissor-metallic-subtypewriter-scissor-metallictypewriter-scissor-lowtypewriter-scissor-deeptypewriter-laptoptypewriter-chiclettypewriter-scissortypewritertypewriter-softtypewriter-mechanicaltypewriter-digitaltypewriter-heavytypewriter-thocktypewriter-steeltypewriter-slamtypewriter-buttontypewriter-switchtypewriter-keycapclickclick-crispclick-roundclick-glasstogglesuccesserrornotificationsparkleswoopriserimpactglitchshutterswipedropdisplayborderobjectOptionalDie-cut outline that follows the artwork's own alpha edge, off unless you ask for it. It is painted before the contact shadow, so the shadow is cast by the outlined silhouette rather than crossing it.
What the spec changes without touching props
These live on the overlay, not in this template. They are renderer-provided, so they behave the same here as on every other template.
regionWhere it sits. One of the 12 named boxes, or your own
{ "x": 62, "y": 12, "w": 34, "h": 42 }in percent of the frame. This template is designed aroundcenter, which is what it uses when the spec says nothing.fullscreentop-bannerlower-thirdupper-thirdcaption-zoneleft-panelright-panelcentercorner-tlcorner-trcorner-blcorner-brscaleUniform size inside the resolved region,
0.25to2. Props that size the artwork stay relative to the region box, soscaleis how an overlay grows past it.timeWhen it lives:
start,duration, or theappear+holdpair (entrance length plus how long the finished overlay stays). Seconds (3s), percentages (66%) and negative seconds from the end (-2s) are all valid.motionObject motion, applied to the element itself so nothing is cropped or zoomed. This template ships
{ "style": "shake" }; the spec replaces it, retunes it withamount(0..1) and its owntimewindow, stacks several by passing an array, or stops it with{ "style": "none" }. The oscillating styles also takefrequency,seed,rampSecandrampOutSec; the one-shotskew-*sweeps take their tempo fromtimeinstead.shakewobblefloatsway-3dskew-rightskew-leftskew-upskew-downnoneenterRenderer-owned entrance, 0.6s, identical on every template. It stacks with whatever entrance the template already runs, so set the template's own entrance prop to
nonewhen you drive it from here.slide-leftslide-rightspringmaskexitHow it leaves:
blur-outmelts it away,fade-downdrifts down,shrinkscales to center (0.9s each),vanishpops it out of existence in 0.45s. Set one and the template's own fade steps aside.blur-outfade-downshrinkvanishcameraMoves the region's VIEWPORT rather than the element:
push-in,pull-out, thepan-*family,handheld. Its own transform layer, so it stacks withmotion,enter,exitandscale.soundPer-overlay override of the spec's sound block:
enabled,volume, and asoundsmap that remaps one cue by name ({ "pop": "ding" }, a path to your own file, orfalseto mute just that cue). The map is keyed by CUE, so remappingpopalso changes anexit: "vanish", which firespoptoo. To change only this template's own sound, use itssfxprop instead. Core palette:click,pop,whoosh,ding,typewriter.All 45 premade cues
popbubbletickdingwhooshkeyboard-typing-naturalmouse-click-pressmouse-click-releasetypewriter-scissor-metallic-lowtypewriter-scissor-metallic-basstypewriter-scissor-metallic-subtypewriter-scissor-metallictypewriter-scissor-lowtypewriter-scissor-deeptypewriter-laptoptypewriter-chiclettypewriter-scissortypewritertypewriter-softtypewriter-mechanicaltypewriter-digitaltypewriter-heavytypewriter-thocktypewriter-steeltypewriter-slamtypewriter-buttontypewriter-switchtypewriter-keycapclickclick-crispclick-roundclick-glasstogglesuccesserrornotificationsparkleswoopriserimpactglitchshutterswipedropdisplay
Copy and customize
This exact spec drives the preview. Replace media paths and props with your own.
{
"theme": "<your-brand-tokens>",
"version": 1,
"format": "square",
"fps": 60,
"durationSec": 4,
"source": {
"type": "none"
},
"sound": {
"enabled": true,
"volume": 1,
"sounds": {}
},
"overlays": [
{
"template": "sticker",
"region": "center",
"time": {},
"motion": {
"style": "shake",
"seed": 1,
"rampSec": 0.25,
"rampOutSec": 0.4
},
"props": {
"src": "/brand/overlaymotion-mark.png",
"alt": "OverlayMotion mark",
"sizePct": 70,
"sfx": "pop"
}
}
]
}