Skip to content

No.287 · Micro-animations

Paper Plane

A send button whose plane actually leaves — it tips back and launches away trailing a dashed line — then a fresh one glides in.

The prompt

The design brief behind this component — reuse it to regenerate, remix, or explain it.

Build a send button (blue pill, 48px, white label with a paper-plane icon) whose plane really leaves. On press: the plane tips back (−3px, −12°) for a beat, then launches up and to the right (translate 70px, −60px, a slight turn, fading) over 650ms on an accelerating curve, trailing a short dashed line that flashes and fades; the label rolls from "Send" to "Sent" and the pill turns green. About 1.75s later a fresh plane glides in from the lower left (translate −40px, 18px → 0, fading in, 520ms) and the label rolls back, ready again. Presses during the flight are ignored (aria-disabled). A hidden status announces "Sent".

Notes

Interaction
Click, tap, Space or Enter to send; it resets itself after about 2.4 seconds.
Motion
Launch 650ms; label reel 380ms; return glide 520ms; colour change 300ms.
Accessibility
A real button with a visible label; aria-disabled while sending and a role="status" announcement. Reduced motion swaps states without flight.
Responsive
A fixed-size control that sits inline wherever it's placed; nothing depends on screen width.
On touch
Works the same on touch; there's no hover-only behaviour.

Featured

301 components