All · Motion graphics · How-to explainer
628Three notifications and done" — notifications stack up on the lock screen and the tapped one opens into the app screen, 11 seconds
Enter three notification lines: the phone buzzes as they stack up on the lock screen, and the top one, when tapped, grows straight into the app screen — a vertical MP4.
What you get
- A 4-scene vertical MP4 (11 seconds at 120 BPM, 60fps, coded backing track)
- An HTML file with a settings panel to change the messages, time, title, wallpaper and tempo
- A render script that makes a new MP4 with one command
- Claude Opus 5.5 Made with this AI
Fill in the fields
- 1Fill in the fields
- 2Copy the prompt
- 3Paste it into an AI that can run code (Claude Opus 5.5 · GPT-6 Astra · Gemini Argon)
- 4It builds the HTML, renders it itself and leaves an MP4
- 5To change it, edit the settings panel at the top of the HTML and run one render command No new request
Full prompt 6,155 characters
Make a short vertical phone-motion video as one self-contained HTML file and render it to MP4. The idea: three notifications tell the whole story. On a phone lock screen, three notifications arrive one after another and stack up, the phone buzzing each time; then a finger taps the newest one and that very notification box grows into the full app screen. It must look like a premium app launch film — real-feeling phone, soft glass, calm springs. Do the whole job now without asking questions. [Inputs (use the default when empty)] App or shop name: "【App or shop name】" — default Promptpan (its first character goes on the app icon) Lock-screen time: "【Lock-screen time】" · Date line: "【Date line】" Notification 1: "【Notification 1】" · Notification 2: "【Notification 2】" · Notification 3: "【Notification 3】" Opened screen title: "【Opened screen title】" · Opened screen button: "【Opened screen button】" End line: "【End line】" — a part wrapped in *asterisks* is the emphasis word · End address: "【End address】" Wallpaper: "【Wallpaper】" Sunset = gradient #FFB199 to #FF6A88 with soft #FFD3A5 blobs, accent #FF5A5F Dawn = gradient #7F8CFF to #764BA2 with soft #B8C6FF blobs, accent #5B6CFF Forest = gradient #5EE6A0 to #0EA5A0 with soft #C2F5D8 blobs, accent #10B981 Tempo: "【Tempo】" — default 120 BPM. Aspect ratio: Output size 1080x1920 pixels, 9:16 portrait story. Keep all text inside the central 80% of the height. (default 9:16). [The phone] A modern phone with a thin black bezel, large rounded corners, a soft drop shadow on a warm off-white room background and a faint rim highlight. The lock screen: the wallpaper gradient with large blurred blobs drifting slowly, a status bar with the time and a black pill-shaped island, the date and a big clock. Each notification is a white frosted rounded box with a soft shadow, the app icon (accent rounded square with the name's first character), the app name and "now" small and gray, and the message in bold. [Structure — 22 beats in 4 scenes of 4, 8, 6, 4 beats] 1. Lock screen (beats 0–4). Frame 0 is already a finished picture: the phone with its lock screen, centered. On beat 1.5 the phone buzzes (a short sideways shake that dies out) and notification 1 drops in from above on a spring, with a soft white ripple. 2. Stack (beats 4–12). On beat 5.5 notification 2 arrives on top and pushes the first one down; on beat 9 notification 3 arrives on top and pushes both down — every push is a spring, every arrival a buzz. The camera slowly moves closer to the stack. 3. Open (beats 12–18). A finger cursor glides in and taps the top notification on beat 13. That box grows in place into the full screen (its rounded rectangle interpolates to the screen's) and the app screen appears inside: the icon and name at the top, a large image panel in the wallpaper-to-accent gradient with a soft halftone, the screen title rising from a mask line on it, three text bars springing out under it, and a wide accent button at the bottom. The finger taps the button on beat 16.2 (the button presses in, a ring spreads) and leaves. 4. End (beats 18–22). The camera pulls back so the whole phone sits in the upper part of the frame, and the end line types in large under it, with the address rising under that. [Motion rules] Nothing pops in: closed-form springs with a small overshoot, mask-line rises and the shape growth only. The tapped notification must visibly become the screen — never cut or crossfade to it. One slow camera move per scene plus a very slight handheld float, so nothing freezes for more than half a second. Real motion blur on fast moves only (sub-frame samples centered on the frame time); text stays crisp. [Always-on details] No timecode, no progress bar, no corner labels, no HUD outside the phone. Light film grain. Typeface: Noto Sans KR for everything, a monospace for the address, from Google Fonts. Keep a 6% safe margin; long messages shrink to fit their box, never clip. [Sound] If you can generate music, add a light, modern track at the given tempo with a soft notification chime and a buzz on each arrival, a tap click, and a whoosh when the screen opens, muxed into the MP4 as AAC. If you cannot generate audio files with a music model, write the backing track yourself in code instead: synthesize an original instrumental (kick, snare, hi-hats, bass, a chord pad and a light arpeggio, no vocals) at the given tempo with a simple chord loop, sample by sample into a WAV, then mux it into the MP4 as AAC. Never use a placeholder or someone else's recording. [Build] One HTML file, everything on a single canvas. The script starts with a `const CONFIG` object holding every input plus fps 60 and a seed. All drawing comes from a pure `seek(t)` — no timers, no CSS animation, randomness only from the seed — so any frame renders identically. A settings panel above the preview (hidden with ?render=1) with English labels: text inputs for every text input, selects for wallpaper, tempo and ratio, play/pause, a scrubber, and a "Copy settings" button that copies CONFIG as code. Edits re-render instantly. Write render.mjs: open the page with ?render=1 in headless Chromium (Playwright), wait for document.fonts.ready, step seek(frame / 60) through every frame, screenshot the canvas at 1080 px on the short side, and pipe into ffmpeg (libx264, yuv420p, crf 18) to make motion.mp4. Close the browser at the end. Accept an optional JSON file argument that overrides CONFIG. [Check before finishing] Render one still per beat into a contact sheet and look at it: frame 0 is a finished picture, the three notifications arrive in order with the newest on top, each arrival buzzes, the tapped box itself grows into the screen, every message is readable, nothing is clipped. Fix and re-render if anything fails. Finish with the file paths and the single command to re-render after editing settings. [Final output format] Output size 1080x1920 pixels, 9:16 portrait story. Keep all text inside the central 80% of the height. This selected output format takes priority over any fixed canvas size or aspect ratio elsewhere in this template. Adapt the composition, text zones and margins to the selected canvas without stretching or cropping essential content. Device safe areas apply only when a device is selected. Never print these format instructions on the image.
How did it turn out?
How to use it · FAQ
Show how it works with three notifications — 11 seconds
Enter three notification lines: the phone buzzes and they drop onto the lock screen one by one (the newest on top, the older ones pushed down). A finger taps the top one and that very box grows into the app screen, then taps its button too. Use it to show how customers use you through the notifications they will actually get — booking → confirmed → visit, order → making → pickup.
Paste it into an AI that runs code
Paste it into an AI that writes and runs code, not an image AI. Claude Opus 5.5 also adds a backing track it builds in code (simple instrumental, no vocals) — no music model, account or cost needed. The AI builds the HTML, renders it and leaves you an MP4. The example above was made with Claude Opus 5.5. Check fees and terms of any outside service with that service.
How to fill it in
Write the three lines in real order; around 30 characters each stays big. The app icon shows the first character of the name. Don't show notifications you don't send or features you don't have.
Edit without asking again
Change the messages, time, title, wallpaper and tempo in the settings panel at the top of the HTML, press "Copy settings" and run the one render command for a new video.

