Skip to content

Small controls, done right.

Every example is live. Install one with a single command, and your agent reads its motion rules first.

8,391 example visits

Segmented control

Pick one of a few options. The thumb slides to it.

npx shadcn@latest add https://better-design.com/registry/motion/segmented-control.json

Switch

Turn a setting on or off. The thumb stretches as you press.

npx shadcn@latest add https://better-design.com/registry/motion/switch.json

Slider

Drag to pick a number. The fill stays under your finger.

npx shadcn@latest add https://better-design.com/registry/motion/slider.json
npx shadcn@latest add https://better-design.com/registry/motion/copy-button.json

Copy button

Copy a value. The button confirms without changing size.

npx shadcn@latest add https://better-design.com/registry/motion/copy-button.json
The new onboarding flow cut setup to two steps.

Reactions

React with one tap. The count rolls the way it moved.

npx shadcn@latest add https://better-design.com/registry/motion/reactions.json

Your agent designs forms, dashboards, onboarding, pricing pages

Word rotate

Swap one word in a sentence. Hover to pause it.

npx shadcn@latest add https://better-design.com/registry/motion/word-rotate.json

Number field

Type or step a number. Changed digits roll.

npx shadcn@latest add https://better-design.com/registry/motion/number-field.json

Nothing is deleted in this example.

Hold to confirm

Hold to delete. Let go early and it drains back.

npx shadcn@latest add https://better-design.com/registry/motion/hold-to-confirm.json