Button

A product button with every state: it springs in, breathes while idle, lifts on hover, presses, spins while it loads and lands on a check with the done label. In a page, <volito-player> plays each state on hover and click.

  • ui/button
  • UI
  • cta
  • Overlay with alpha
  • 4.6 s (4.6–4.6 s)
Live in your browser
Button at 16:9
0.00 / 4.60 s
Playing live with volito/browser, the engine a render uses. Each tab lays the item out again for that shape, not a crop. The graphic is transparent; the grey stands in for your footage.

Try it live

In a page it is a live element: each state plays its stretch of the timeline, and hover and click switch them. Your code sets the rest with player.state. See Interactive states.

Button

Hover it, then click it.

state: …
<script type="module" src="https://cdn.jsdelivr.net/npm/volito/dist/player.js"></script>
<volito-player item="ui/button" aspect="1000x500" ground="none" props='{"label":"Get started"}'></volito-player>
StatePlaysThen
enteronceidle
idleloopstays
hoveroncestays
unhoveronceidle
pressonceloading
loadingloopstays
doneoncestays

Page events: pointerenter(idle|unhover): hover; pointerleave(hover): unhover; click(idle|hover|unhover): press

Render it

npx volito render ui/button --prop label="Get started" --prop done="You're in" --out button.mov

That writes ProRes 4444 with alpha, ready to drop over footage. The same item in another shape, brand or format:

volito render ui/button --aspect 9:16 --style cobalt --out button-9x16.mov
volito render ui/button --format mp4 --out button.mp4
volito still ui/button --t 2.3 --out button.png
volito info ui/button     # every prop and part
volito add ui/button      # copy its source into ./motion to edit

From Node:

import { findItem, renderVideo } from "volito";

await renderVideo(findItem("ui/button"), { props: { label: "Get started", done: "You're in" }, out: "button.mov" });

Or ask an agent with the MCP server connected: “Render the Volito button (ui/button) in 9:16, in our brand.”

Props

Set each with --prop name=value, or all at once with --props and a JSON object.

PropTypeDefaultTakes
labeltextGet started≤ 22 chars
done
Done label
textYou're in≤ 22 chars
iconiconarrowRight—

Tags: ui, button, hover, press, loading, success, interactive, micro-interaction, product, web

More in UI