UI morph motion design video made with Claude Opus 5.5: Claude Opus launch video
Originally posted by @twoclipping on X · posted Sep 24, 2026 · curated by MotionHunt, updated Oct 15, 2026

In short
A UI-motion piece in which one shape morphs through a sequence of interface states (button, loader, check, dynamic island, music player, slider, toggle, tabs, chart, ⌘K, toast) on a 120 BPM beat grid. The author says the whole video is code with no After Effects, and the post is a reusable prompt template for recreating it.
Prompt
Ask me for: 8 to 12 UI states I want the shape to become (e.g. button, loader, player, slider, toggle, tabs, chart, command palette, toast), pure black and white or one accent color, and a royalty-free song around 120 BPM (e.g. Mixkit, free for commercial use).
<direction>
Dribbble-level UI motion. One shape, never cut: every state is the same element morphing its size, radius and color while its content swaps with a short blur. A cursor drives every change with real clicks and drags. Light warm-gray canvas, black and white components, one clean UI font (Geist). Springs everywhere, a tiny overshoot at most. The camera zooms so each state fills the frame. The last frame is the first frame, so it loops.
Banned: bouncy easing, particle bursts, glows, gradients on UI chrome, mismatched icon strokes, dead time, anything that looks like a template.
</direction>
<structure>
120 BPM, 7 bars, something happens on every beat.
Button → loader → check → dynamic island → music player with a play/pause morph → scrub the progress bar → it becomes a volume slider that stretches when dragged past max → a toggle flips on the beat → the knob becomes a liquid tab indicator → the tabs open into a chart that draws itself, with a tooltip on hover → it collapses into ⌘K → type to filter → enter → toast → back to the button.
</structure>
<build>
1. One HTML file, square 1440x1440. Every style is computed from time inside seek(t): no CSS transitions, no timers, no state carried between frames.
2. Springs are closed-form step responses. A value that changes target many times is the sum of one spring per change, so it stays a pure function of time.
3. The tab indicator's two edges ride different springs, so the leading edge stretches ahead of the trailing one. Same trick for the toggle knob.
4. Drags are direct manipulation: while the cursor is held, the value is computed from its position. On release it springs back from wherever it was.
5. Analyze the song with numpy for the beat grid and start on a downbeat. Place every UI sound by its measured peak.
6. Render with Playwright: 4 subframes per frame, blended with ffmpeg tmix for motion blur at 60fps.
7. Render one frame per beat before the full render. Fix anything off the grid, cramped or hard to read.
</build>
<gotchas>
Never put will-change on anything the camera scales or the text renders blurry. Text that swaps inside a morphing container needs its own enter and exit timing or it overlaps. Make the last frame identical to the first, cursor position and speed included, or the loop stutters.
</gotchas>
<start>
Ask me for the inputs, then show me the state list on the beat grid before you write any code.
</start>How it was made
The author says the entire video is code, with zero After Effects, and credits Opus 5.5 in the post. The shared prompt template specifies the build: one HTML file, time-driven styles computed in seek(t), closed-form spring step responses, numpy beat analysis of a roughly 120 BPM song, and Playwright rendering with 4 subframes per frame blended by ffmpeg tmix at 60fps. The author does not say these exact steps produced this specific video.
- Tools
- Claude Opus
Shot breakdown
- Sequence 1Button: the single shape starts as a button.
- Sequence 2Loader: the same shape morphs into a loader.
- Sequence 3Check: the loader resolves into a check mark.
- Sequence 4Dynamic island: the shape expands into a dynamic-island state.
- Sequence 5Music player: the island becomes a player with a play/pause morph.
- Sequence 6Scrub: the cursor drags the progress bar.
- Sequence 7Volume slider: the bar becomes a volume slider that stretches when dragged past max.
- Sequence 8Toggle: the toggle flips on the beat, with its knob springing.
- Sequence 9Liquid tabs: the knob becomes a tab indicator whose leading edge stretches ahead of the trailing edge.
- Sequence 10Chart: the tabs open into a chart that draws itself, with a tooltip on hover.
- Sequence 11Command palette: the shape collapses into ⌘K, and typing filters the list before Enter.
- Sequence 12Toast, then back: a toast appears, and the shape returns to the starting button so the loop closes.
Breakdown written by AI from the prompt and post, reviewed by MotionHunt.
Why it works
- One continuous element morphs between states, so every change reads as the same object rather than a cut.
- Springs are closed-form and kept to a tiny overshoot, avoiding bouncy easing as the template requires.
- Two edges of the tab indicator and the toggle knob ride different springs, which creates a liquid stretch.
- Drags compute the value directly from cursor position, then spring back from the release point, so interaction feels physical.
- Changes are placed on a 120 BPM beat grid, with something happening on every beat across 7 bars.
Remix it for your product
Ask me for: [FEATURES] as the UI states I want the shape to become, a pure black and white or single accent color scheme, and a royalty-free song around 120 BPM. Dribbble-level UI motion for [PRODUCT]. One shape, never cut: every state is the same element morphing its size, radius and color while its content swaps with a short blur. A cursor drives every change with real clicks and drags. Light warm-gray canvas, black and white components, one clean UI font. Springs everywhere, a tiny overshoot at most. The camera zooms so each state fills the frame. The last frame is the first frame, so it loops. Banned: bouncy easing, particle bursts, glows, gradients on UI chrome, mismatched icon strokes, dead time, anything that looks like a template. Structure: 120 BPM, 7 bars, something happens on every beat, moving through [FEATURES] in order and ending back at the starting state. Build: one HTML file, square 1440x1440, every style computed from time inside seek(t) with no CSS transitions, timers, or carried state. Springs are closed-form step responses; a value that changes many times is a sum of one spring per change. Drags compute the value from cursor position while held and spring back on release. Analyze the song with numpy for the beat grid and start on a downbeat; place every UI sound by its measured peak. Render with Playwright at 4 subframes per frame, blended with ffmpeg tmix for motion blur at 60fps. Render one frame per beat before the full render and fix anything off-grid, cramped, or hard to read. Gotchas: never put will-change on anything the camera scales; give swapping text its own enter and exit timing; make the last frame identical to the first, including cursor position and speed.FAQ
What tool made this launch video?
This video was made with Claude Opus.
Can I see the prompt behind this video?
Yes. The full prompt is shown on this page (reconstructed). Credit the original creator if you reuse it.
What kind of product is this video for?
It is a launch video for a other product.
Comments (0)
Sign in to comment.
Related videos
Motion design test prompt for Claude Opus 5.5@zheke
Paper cut-out shadow theatre animation on what makes a place feel like home@x4b47x
Code-driven animation prompt for Claude Opus, shared as a text post@xelandre__
Hand-drawn stop-motion test animation made with Claude Opus@_nikolajankovic
Pelican riding a bicycle animation rendered by code, made with Claude Opus 5.5@axtonliu
Three.js Douglas A-1H Skyraider model built with Claude Opus in one shot@buildfastwithai