Morphing UI-toestandlus
Spoed
Vra my vir: 8 tot 12 gebruikerskoppelvlak-toestande wat ek wil hê die vorm moet wees (bv. knoppie, laaier, speler, skuifbalk, skakelaar, oortjies, grafiek, opdragpalet, roosterbrood), suiwer swart en wit of een aksentkleur, en 'n tantième-vrye liedjie van ongeveer 120 BPM (bv. Mixkit, gratis vir kommersiële gebruik). Dribbble-vlak UI-beweging. Een vorm, nooit gesny nie: elke toestand is dieselfde element wat sy grootte, radius en kleur verander terwyl die inhoud met 'n kort vervaagde beweging omruil. 'n Wysertjie dryf elke verandering met regte klikke en sleepbewegings. Ligte warmgrys doek, swart en wit komponente, een skoon UI-lettertipe (Geist). Vere oral, hoogstens 'n klein oorskiet. Die kamera zoem sodat elke toestand die raam vul. Die laaste raam is die eerste raam, so dit herhaal. Verban: springerige verligting, deeltjie-uitbarstings, gloede, gradiënte op UI-chroom, wanpassende ikoonstrepe, dooie tyd, enigiets wat soos 'n sjabloon lyk. 120 BPM, 7 mate, iets gebeur op elke maat. Knoppie → laaier → kontroleer → dinamiese eiland → musiekspeler met 'n speel/pouse-morf → skrop die vorderingsbalk → dit word 'n volumeskuifbalk wat rek wanneer dit verby maksimum gesleep word → 'n skakelaar flip op die maat → die knoppie word 'n vloeibare oortjie-aanwyser → die oortjies maak oop in 'n grafiek wat homself teken, met 'n nutswenk wanneer jy oor die oortjie beweeg → dit stort in ⌘K in → tik om te filter → enter → rooster → terug na die knoppie. 1. Een HTML lêer, vierkantig 1440x1440. Elke styl word bereken vanaf tyd binne seek(t): geen CSS oorgange, geen tydtellers, geen toestand tussen rame gedra nie. 2. Vere is geslote-vorm stapresponse. 'n Waarde wat die teiken baie keer verander, is die som van een veer per verandering, dus bly dit 'n suiwer funksie van tyd. 3. Die twee rande van die lip-aanwyser ry op verskillende vere, so die voorste rand strek voor die agterste een. Dieselfde truuk vir die skakelknop. 4. Sleepbewegings is direkte manipulasie: terwyl die wyser gehou word, word die waarde vanaf sy posisie bereken. Wanneer dit vrygestel word, spring dit terug van waar dit ook al was. 5. Analiseer die liedjie met numpy vir die maatrooster en begin op 'n afwaartse maat. Plaas elke UI-klank volgens sy gemete piek. 6. Lewer met Playwright: 4 subrame per raam, gemeng met ffmpeg tmix vir bewegingsonscherpte teen 60fps. 7. Render een raam per maat voor die volle weergawe. Maak enigiets buite die rooster reg, beknop of moeilik leesbaar. Moet nooit "will-change" op enigiets plaas wat die kamera skaal of die teks vaag maak nie. Teks wat binne 'n morferende houer omruil, benodig sy eie invoer- en uitgangstye, anders oorvleuel dit. Maak die laaste raam identies aan die eerste, wyserposisie en -spoed ingesluit, anders haper die lus. Vra my vir die insette, wys my dan die toestandslys op die maatrooster voordat jy enige kode skryf.
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).
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.
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.
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.
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.
Ask me for the inputs, then show me the state list on the beat grid before you write any code.
Aanwysing geneem van pos @demonugc.
- Model
- Opus 5.5
- Stapel
- HTML, Playwright
- Gepubliseer
Maak 'n video soos hierdie
Maak self video's soos hierdie—7 keer goedkoper as die API—met ons Google Chrome uitbreiding.. Werk saam met Claude via MCP: jy beskryf die taak, en die uitbreiding hanteer die genereringsproses van die aanwysingsprompt tot die voltooide lêer. Dit genereer video's, stel hulle saam, gee hulle stem en vertaal hulle.
Automation — MCP для Google Flow, Google Vids и Claude
TikTok Symphony Creative Studio MCP Claude Code
SeedFlow — Seedance 2.5 в Dreamina, Qwen-Audio-3.1-TTS и Claude MCP