The animations you saw in my Reels were made in Claude, in minutes. No editing software, no years of design experience.
So what is actually happening under the hood? Claude does not draw video. It writes code (HTML, CSS, JavaScript), and your browser plays that code as motion.
Think of sheet music. Claude is the composer: it writes the notes. The browser is the pianist: it plays them. The more precise the notes, the better it sounds. Your job is to give the right brief, and that is what this guide is about.
And because everything is code, changes are easy. One sentence changes the text, the color, the tempo. The same animation can work for ten different products.
Where Claude is strong, and where it is not
01What works well
- Kinetic typography. Text that moves to a rhythm, word by word, letter by letter.
- Logo reveal. A logo appearing in 3 to 5 seconds, from lines to the finished mark.
- UI and product explainers. App screens, cards, buttons, a feature explained visually.
- Data and charts. Numbers counting up, bars growing in front of your eyes.
- Abstract loops. Backgrounds that move forever with no visible seam.
- Text animations for Reels. Hooks, captions, CTAs.
Technically, Claude uses CSS animations, SVG, Canvas, and ready made libraries from a CDN, such as GSAP (for animation) and Three.js (for 3D). The result opens in an artifact next to the chat, where you can watch it, replay it, view the code, go back to an earlier version and share it with a link.
02The honest limits
- No photorealistic video. Real people, live scenes, cinematic shots: that is Seedance and Higgsfield territory. Claude is graphics, not cinema.
- Sound is either code or yours. Claude can synthesize simple effects and a beat with code. It will not bring you a finished song.
- Long, complex scenes will not land on the first try. Plan for 3 to 6 rounds. That is normal, not failure.
Your first animation, step by step
03Six steps to your first video
Go to claude.ai or open the app. Check that Artifacts is turned on; there is a setting for it in Settings. The free plan is enough to start.
- Reels, TikTok, Stories: 9:16, 1080x1920
- Feed post: 4:5, 1080x1350
- YouTube, presentations: 16:9, 1920x1080
Decide the format before the prompt. Cropping later breaks the composition.
Copy the starter prompt below, fill in the [brackets] and send it. Writing single HTML file matters: Claude puts everything in one file, and the preview works right away.
If your animation needs text in another language, put those words inside quotes and Claude will keep them exactly as written. For Armenian text, the prompts already ask for Noto Sans Armenian.
Create a 10 second motion graphics animation as a single HTML file.
Format: vertical 9:16. Build a fixed 1080x1920 stage and scale it to fit the browser window, centered on a dark background.
Topic: [what the video is about, one sentence]
On screen text: "[headline]", then "[second line]", then "[CTA, e.g. Follow for more]"
Style: [e.g. bold, minimal, editorial]
Colors: background [#000000], text [#FFFFFF], accent [#1200FF]
Font: [Archivo] from Google Fonts. If any text is Armenian, use Noto Sans Armenian and keep the quoted text exactly as written.
Timeline:
0.0s to 2.0s: the headline enters word by word
2.0s to 4.5s: hold, with one subtle accent motion
4.5s to 7.5s: the second line replaces the headline
7.5s to 10.0s: the CTA enters and holds until the end
Motion rules: no linear easing. Smooth ease out for entrances, ease in for exits. One focal point at a time. Keep all text inside the Instagram safe zone.
Use GSAP from cdnjs for the timeline.
Outside the stage add a Replay button and a live timecode in seconds.
Play automatically on load.The artifact opens in the side panel. Watch it three times: first for the overall feel, second to check that the text is readable, third for rhythm. Open the same chat on your phone too, because that is where your viewer is.
Not "make it better", but "at 2.5s the headline enters too fast". Name the second, the element and what should change. Three fixes per message, maximum.
When you like the result, download the video right from Claude. Watch the downloaded file on your phone once before you post.
The motion prompt framework
A good motion prompt is a director's script. Not "make a beautiful animation", but what, when and how. Here are 11 fields and why each one matters.
0411 fields that change the result
- Format and ratio. 9:16 and 1080x1920 for Reels. Skip it and Claude builds "whatever the window is", and the composition falls apart. Ask for a fixed stage that scales to the window, so every screen shows the same frame.
- Duration. Without it there is no rhythm. For your first animations, 8 to 15 seconds is a good start: easy to check and easy to fix.
- Timeline in seconds. The most important field. You write "0.0s to 2.0s: the headline enters word by word", and Claude stops guessing and starts executing.
- Visual style and references in words. Minimal, bold editorial, Swiss grid, soft 3D. Describe references in words ("like a financial news ticker") instead of asking to copy someone else's work.
- Palette with hex codes. "Blue" has a thousand shades; #1200FF has one. Define 3 to 4 colors: background, main text, accent, secondary.
- Typography. Name a Google Fonts font. For Armenian text use Noto Sans Armenian or another font with Armenian glyphs. Otherwise the browser swaps in a default font and the design breaks.
- Easing and motion rules. How an object speeds up and slows down. This is the difference between "robotic" and "alive". Details in Part 4.
- Transitions. Cut, mask wipe, push, zoom. Pick one type and keep it through the whole video. Consistency already is a style.
- Sound. Silent, or effects synthesized in code. If you want sound, set the BPM from the start so motion and sound share the same grid.
- Loop or end frame. A loop must return to the start with no seam. An end frame must hold so the CTA can be read.
- Safe zone. Instagram shows its interface at the top and bottom (name, caption, music) and the like and comment buttons on the right. Keep key text in the center. Ask for a safe zone overlay so you can see the limits.
05The full template
This is your main prompt. Save it in Notes or Notion and fill it in for every new animation.
Create a motion graphics animation as a single HTML file.
FORMAT: [9:16, 1080x1920 for Reels / 4:5, 1080x1350 for feed / 16:9, 1920x1080]. Fixed stage scaled to fit the window.
DURATION: [10] seconds.
GOAL: [what the viewer should feel or understand]
TIMELINE:
[0.0s to 2.0s]: [what happens]
[2.0s to 4.0s]: [what happens]
[4.0s to 7.0s]: [what happens]
[7.0s to 10.0s]: [what happens]
VISUAL STYLE: [3 to 5 words, e.g. bold Swiss editorial, lots of negative space]
REFERENCES IN WORDS: [e.g. like a keynote title card, like a financial news ticker]
COLORS: background [#hex], main text [#hex], accent [#hex], secondary [#hex]
TYPOGRAPHY: headline [font, weight], body [font, weight] from Google Fonts. Armenian text uses Noto Sans Armenian. Keep all quoted text exactly as written.
MOTION RULES: easing [power3.out for entrances, power2.in for exits], no linear motion, stagger [0.1s] between items, one focal point per beat.
TRANSITIONS: [cut / mask wipe / push / zoom through], [0.4s], same type throughout.
SOUND: [silent, I will add music later / Web Audio synthesized effects at [120] BPM]
ENDING: [seamless loop back to the first frame / hold the end frame for [2] seconds]
SAFE ZONE: keep text and key elements away from the top and bottom areas where Instagram shows its interface, and away from the buttons on the right edge.
TECH: GSAP from cdnjs. Autoplay on load. Outside the stage add: Replay, a live timecode, and a toggle that shows the safe zone as an overlay.06Ready prompts by task
Create a kinetic typography animation as a single HTML file, 9:16, fixed 1080x1920 stage scaled to fit the window.
Phrase: "[your phrase]"
Language: [Armenian / English]. If Armenian, use Noto Sans Armenian from Google Fonts and keep the text exactly as written inside the quotes.
Duration: [8] seconds. Rhythm: [120] BPM, so every word lands on a beat (0.5s).
Treatment: each word gets its own entrance (scale, slide, mask reveal or letter stagger). Vary them, but keep one visual system.
Hero word: "[key word]" is bigger, in the accent color [#E9EF00], and holds for at least 1.5 seconds.
Colors: background [#hex], text [#hex], accent [#hex]
Easing: power3.out or expo.out on entrances. A small overshoot only on the hero word.
End frame: the full phrase readable and still for the last 2 seconds.
Add Replay and a live timecode outside the stage.Create a [4] second logo reveal as a single HTML file, [9:16, 1080x1920 / 16:9, 1920x1080] fixed stage scaled to fit the window.
Logo: here is my logo as SVG code: [paste SVG]. If I did not paste an SVG, build the logo from text: "[brand name]" in [font].
Brand colors: [#hex], [#hex], [#hex]
Mood: [premium and calm / playful and bouncy / techy and precise]
Sequence:
0.0s to 1.0s: anticipation, [a line, a dot or light gathers in the center]
1.0s to 2.5s: the logo builds from its own shapes (stroke draws first, then the fill)
2.5s to 3.2s: the tagline "[tagline]" fades up under the logo
3.2s to 4.0s: hold, perfectly still
Rules: one focal point at a time, no spinning, no glitch effects unless I ask. Ease out on arrivals and a subtle settle at the end.
Add Replay and a live timecode outside the stage.Create a [15] second product explainer animation as a single HTML file, 9:16, fixed 1080x1920 stage scaled to fit the window.
Product: [name], [one sentence about what it does]
Audience: [who]
Scene 1 (0s to 5s), the problem: [e.g. a messy inbox with 40 unread messages]. Show it with simple flat UI shapes.
Scene 2 (5s to 10s), the solution: [feature name] in action. Animate a simplified app screen: [a cursor clicks X, a card slides in, a list sorts itself].
Scene 3 (10s to 15s), the result and CTA: "[result line]" and "[CTA]".
Style: clean flat UI, rounded cards, soft shadows. Colors: [#hex], [#hex], [#hex]
Transitions between scenes: [push / mask wipe / zoom through an element], 0.4s, the same type both times.
Text: max 6 words on screen at once. Each text block holds long enough to be read aloud twice.
Use GSAP from cdnjs. Add Replay and a live timecode outside the stage.Create an animated data chart as a single HTML file, [9:16, 1080x1920] fixed stage scaled to fit the window, [10] seconds long.
Title: "[chart title]"
Chart type: [bar / line / donut]
Data (label: value):
[January: 120]
[February: 180]
[March: 260]
Unit: [followers / AMD / %]
Sequence: the title appears (0s to 1.5s), the axes draw (1.5s to 2.5s), values grow one by one while numbers count up (2.5s to 7s), the highest value is highlighted in [#accent] with a short note "[insight]" (7s to 10s).
Accuracy rule: bar heights and numbers must match the data exactly. Do not round or invent values.
Style: [minimal dark / light editorial], subtle gridlines, large numbers that are readable on a phone.
Add Replay and a live timecode outside the stage.Create a seamless looping background animation as a single HTML file, [9:16, 1080x1920] fixed stage scaled to fit the window.
Loop length: [6] seconds. The last frame must match the first frame exactly, so the loop has no visible jump.
Visual: [e.g. slow flowing gradient blobs / rotating geometric grid / floating particles / wavy lines]
Colors: [#hex], [#hex], [#hex]
Mood: [calm / energetic / premium]
Motion: slow and continuous, no sudden changes. Build every movement from values that complete full cycles within the loop length (sine waves, full rotations).
Keep the center calm enough to place text on top later.
Use Canvas or CSS, whichever runs smoother. Add a timecode that resets every loop.Quality: what separates amateur from pro
Two animations can share the same text and the same colors, and one looks cheap while the other looks expensive. The difference is in the details. Here are the seven that actually matter.
07Easing, not linear
Linear motion runs at a constant speed, like an elevator that jerks into motion and stops dead. Nothing in the real world moves like that. Ease out means it arrives fast and settles gently, like a good driver braking smoothly. Use ease out for entrances, ease in for exits.
08Anticipation and follow through
Before a jump, a person crouches for a moment: that is anticipation. After landing, they sway a little: that is follow through. A logo can shrink for an instant, then grow, then "settle" slightly at the end. Do not overdo it; a little goes a long way.
09Hold frames
Text must stay on screen long enough to be read. A simple test: read it aloud twice at a normal pace. That is how long it should stay, perfectly still.
10One focal point at a time
The eye looks at one place at a time. If three elements move together, the eye follows none of them. Stagger them: as a starting point, try 0.08 to 0.15 seconds between elements.
11Consistent rhythm
Tie every timing to one grid, for example 0.5 seconds or the BPM of your music. At 120 BPM one beat is 0.5 seconds. When everything lands on the grid, the video breathes.
12Contrast
Text must read on a small screen, in sunlight, on a moving bus. Dark background with light text, or the other way around. Save the accent color for what matters most.
13Restraint
A pro knows what not to add. Two fonts at most, three to four colors, one type of transition. Every effect must serve the message; if it does not, cut it.
You can apply all seven rules to any existing animation with one prompt:
Act as a senior motion designer. Review this animation and upgrade it to professional quality without changing the concept, the text or the colors.
Apply these rules:
1) Easing: no linear motion anywhere except constant loops. Entrances ease out, exits ease in.
2) Anticipation and follow through: key elements get a tiny wind up before they move and a soft settle after they land.
3) Hold frames: every text block stays still long enough to be read aloud twice.
4) One focal point per beat: stagger elements that currently start at the same time.
5) Rhythm: snap all timings to a [0.5s] grid or to [120] BPM.
6) Hierarchy: one hero element per scene, clearly bigger or brighter than the rest.
7) Restraint: remove any effect that does not support the message.
First list the problems you found, with timestamps. Then give me the full updated file.Sound
You have two paths: sound in code, or a silent video with music added in your editor.
With the Web Audio API, Claude can synthesize simple sounds: whoosh, pop, click, kick, riser. No audio files needed; the sound is generated right in the browser.
One important detail: browsers do not play sound until the user clicks something. So ask for a "Start with sound" button that starts sound and animation together.
To sync, pick a tempo. At 120 BPM one beat is 60 / 120 = 0.5 seconds. Put key entrances on the beats: 0.5s, 1.0s, 1.5s and so on.
Add sound design to this animation using the Web Audio API only (no audio files).
Tempo: [120] BPM. Keep all main animation events on the beat grid.
Sounds to synthesize:
1) a soft whoosh on every text entrance
2) a short pop or click when [element] lands
3) a low kick on beats [1 and 3] of each bar
4) a gentle riser in the last [2] seconds before the CTA
Mix: effects quieter than the beat, nothing harsh or clipping, moderate master volume.
Browsers block audio until the user clicks, so add a large "Start with sound" button that starts the animation and the audio together from 0.0s, perfectly in sync.
The Replay button must restart both audio and animation from zero.Simpler, and often better. Download the video without sound, open your usual editing app and add the music there. If you know the track's BPM, put it in the prompt so the animation lands on the beats.
Quick summary
- Claude writes code, the browser turns it into motion. You are the director.
- Best results: kinetic typography, logo reveals, explainers, charts, loops. Photorealism belongs to other tools.
- Motion prompt = format, duration, timeline in seconds, style, colors, font, easing, transitions, sound, ending, safe zone.
- Quality lives in the details: easing, hold frames, one focal point, rhythm, restraint.
- Give feedback by the second, then download the video from Claude.
