Original prompt — Tested HyperFrames app promo prompt — phone mockup motion
by MotionPrompts (own run)
Prompt
Banned list ✓Beat grid ✓Build method ✓Self-review ✓
<direction>
An 8-second vertical app promo for FITLOOP, 1080x1920 vertical. A phone mockup rises centre-frame; inside it, a rings screen draws three activity rings while a counter steps 412 → 896 → 1,248 (stepped, never a smooth roll). Feature tags — STREAKS / PLANS / REMINDERS — pop in around the phone. 1,248 WORKOUTS LOGGED sits under the counter. A download CTA bar closes the film.
Banned: real app-store badges or logos, real phone brand trade dress, glows, gradients, smooth odometer counters, hands holding phones.
</direction>
<structure>
Beat 1 (0.3s): phone rises, screen frame draws. Beat 2 (0.8–2.0s): rings draw staggered, counter steps on the same beats. Beat 3 (~4.4s): tags pop around the phone. Beat 4 (~6.5s): CTA bar rises. Hold to 8s.
</structure>
<build>
One HyperFrames composition, seek-driven GSAP. Rings are SVG circles, dashoffset from getTotalLength. Counter uses a stepped onUpdate over a plain object. Small chips on the accent colour take near-black text, never white.
</build>
<gotchas>
White text on the orange tags measured 3.09:1 — fails AA. Chips now use #0a0a0a text on the accent (6.8:1). Large 900-weight display type is the only place white-on-accent survives, and even there we avoid it for anything that must be read.
</gotchas>
Before you finish: step through the timeline at five points and fix anything that overlaps, clips the frame, or drifts off the beat grid.
A vertical app promo built around a phone mockup: the phone rises, its workout rings fill and a counter steps up in threes, feature tags land around the phone, and the store CTA closes it. All UI inside the phone is drawn in-frame.
Run log
| Model | Claude (agent build) |
| Renderer / stack | HyperFrames + GSAP |
| Iterations to final | 2 |
| Render time | 31s (final render) |
| Format | 1080×1920 · vertical |
| Published | 2026-10-25 |
What broke (and the fix)
- Snapshot gate failed the first build on contrast: white text on the orange AUTO-FILED tags measures 3.09:1 — fine for large text, but at 18px the tags count as body text and need 4.5:1. Switched the tag text to near-black on the same accent (6.8:1); the tags read sharper, and the gate passes.
Related videos