UI Motion Prompts Pack $19

Button Part 2

6 button animations. Copy any short prompt for free, and open full prompt 1 to see how detailed they are. Full prompts 2–6 are in the pack.

1  Hold to Confirm
Hold it down: a ring fills around the button, then it turns into a ✓.
Full prompt (free sample)
A round delete button that must be held down: a ring fills around it and it turns into a check mark, on a 470×240 stage with a dark #13131C background. Point C = (235, 108) from the stage's top-left is the center reference. 4s loop that plays by itself: the finger presses at 0.35s, holds, and lifts at 2.35s (times are seconds from the loop start). Let e = seconds since 0.35s (0 to 4, wrapping). The loop is seamless: everything is back at rest before 0.25s.
- Conventions: changes are linear unless an easing is named; ease-out cubic = 1 − (1 − k)³; seg(e, a, b) = (e − a)/(b − a) clamped to 0–1; bump(e, a, b) = sin(π·seg(e, a, b)). A damped spring is x(t) = 1 − e^(−ζω₀t)·(cos ω_d t + (ζω₀/ω_d)·sin ω_d t), ω_d = ω₀√(1−ζ²).
- Button: circle radius 52px centered at (C.x + shake, C.y − 14). The ring track, ring fill, done pulse, body and finger all move with the shake; only the body and its icons are scaled (the rings are not).
- Values over time:
  - Press depth pd: during the 0.1s before 0.35s it goes 0 → 1 (ease-out cubic); it stays 1 while held (e < 2.0); after the finger lifts, pd = 1 − x(e − 2.0) with ω₀ = 18 rad/s, ζ = 0.55 (clamp pd to −0.5…1).
  - Ring fill k: seg(e, 0.08, 2.0) while e < 2.0 (linear, about 1.9s to fill); 1 until e = 2.9; then 1 − ease-out cubic(seg(e, 2.9, 3.3)) (it retracts).
  - Done amount c: seg(e, 2.0, 2.14) until e = 2.9, then 1 − seg(e, 3.0, 3.35).
  - Shake (px, horizontal, only while e < 2.0): sin(70·e) × 2.2 × seg(k, 0.72, 1) — it trembles just before it completes.
  - Scale of the button body and icon: (1 − 0.08·pd) × (1 + 0.12·bump(e, 2.0, 2.3)) (a pop when done).
- Ring track: circle outline radius 67 (52 + 15), line width 8, white 8%, around the button.
- Ring fill: the same circle, an arc from 12 o'clock (−90°) clockwise for k × 360°, line width 8, round caps, stroked with a linear gradient violet #6E5BFF (at the button's top-left, −52, −52) → cyan #38C6FF (at +52, +52), cyan glow (canvas shadowBlur 12 + 14·c).
- Done pulse: for e = 2.0…2.6, q = ease-out cubic((e − 2.0)/0.6): a cyan circle outline, line width 4, radius 67 + 26·q, opacity 1 − q.
- Body (scaled): disc radius 52 with a violet glow (shadowColor rgba(110,91,255, 0.25 + 0.35·k), shadowBlur 16 + 16·k). Fill #24223A; once c > 0, a linear gradient from its top-left to bottom-right: mix(#24223A, #6E5BFF, c) → mix(#1B1A2C, #38C6FF, c).
- Trash icon (in the body, scaled by 1 − 0.3·c, opacity 1 − c), stroke color mix(#C9C6E8, #FFFFFF, k), line width 5, round caps and joins; coordinates in px from the button center (y down): lid line (−20, −13) → (20, −13); handle (−7, −13) → (−5, −20) → (5, −20) → (7, −13); can (−15, −7) → (−12, 20) → (12, 20) → (15, −7); two inner lines (−4, −1) → (−3, 13) and (4, −1) → (3, 13).
- Check (in the body, opacity c): white, line width 7.5, round caps and joins, a polyline through (−25.2, −0.3), (−7.6, 17.3), (26.9, −18.8) from the button center, drawn in proportion to seg(e, 2.0, 2.25) of its total length (fully drawn after that).
- Caption 40px below the circle's bottom edge (at y = button center + 92), centered on C.x, 24px: "Hold to delete" (semibold 600, #8C8AA8) with opacity la = clamp(1 − 2c) and moved up by 10·(1 − la) px; "Deleted" (bold 700, #9FE6FF) with opacity lb = clamp(2c − 1) and moved down by 10·(1 − lb) px. They never overlap: the old one leaves in the first half of the change, the new one arrives in the second half.
- Finger indicator (draw it on top) at the button center (including the shake): a 23px-radius circle, fill white 38%, 3.5px white border, soft dark shadow (black 35%, canvas shadowBlur 10). It fades in over 0.18s starting 0.42s before 0.35s while shrinking 125% → 100% (ease-out cubic over 0.32s), presses to 80% over the last 0.1s before 0.35s, stays at 80% while held, then at 2.35s grows back to 100% over 0.2s (ease-out cubic), stays opaque until 2.47s and fades out by 2.72s. No ripple ring. The 3.5px border scales with it; it is not scaled by the button's press.
2  Paper Plane
The paper plane flies off with a trail and the label flips to "Sent!".
Full prompt · 3,386 characters
A "Send" button whose paper-plane icon flies away when tapped, on a 470×240 stage with a dark #13131C background. Point C = (235, 108) from the …
🔒 Unlock all 6 in the pack — $19
3  Confetti Burst
A tap bursts confetti out of the button; the pieces flutter and fall.
Full prompt · 3,004 characters
A "Celebrate" button that bursts confetti when tapped, on a 470×240 stage with a dark #13131C background. Point C = (235, 108) from the stage's …
🔒 Unlock all 6 in the pack — $19
4  Copy Feedback
The copy icon morphs into a ✓ and a "Copied!" tooltip pops up.
Full prompt · 3,564 characters
A link field with a small copy button: the icon turns into a check and a "Copied!" tooltip pops up, on a 470×240 stage with a dark #13131C …
🔒 Unlock all 6 in the pack — $19
5  Shine Sweep
A diagonal shine sweeps across the button and sparkles twinkle.
Full prompt · 3,209 characters
An "Upgrade to Pro" button with a diagonal shine that sweeps across it and little sparkles, on a 470×240 stage with a dark #13131C background. Point …
🔒 Unlock all 6 in the pack — $19
6  Slide to Confirm
Drag the knob to the end: the track fills and the knob turns into a ✓.
Full prompt · 3,439 characters
A slide-to-confirm control: the finger drags the knob to the end, the track fills and the knob becomes a check, on a 470×240 stage with a dark …
🔒 Unlock all 6 in the pack — $19

Get every full prompt — $19

One-time payment. Price goes up as new patterns are added. Buy once, get every update.
Team license (up to 5 people, client work): $49.
Lower price in many countries, applied automatically at checkout.
Get the pack on Gumroad
← Button Part 1Button Part 3 →
Full pack · $19438 prompts · 73 demos
Get the pack