Button

Jelly Button

A button that behaves like a soft body: it squashes while held and wobbles along both axes after release until it settles.

React + Tailwind, shadcn-compatible: press “Copy for AI” and your Cursor or Claude Code agent installs it with the shadcn CLI.

What you can change

  • label — the button caption
  • onPress — the action on press; the wobble fires regardless of it
  • accent — the button fill, with the caption colour kept contrasting against it

A link for your AI agent: preview, code and instructions.

Preview

1440pxHost theme
Jelly Button — A button that behaves like a soft body: it squashes while held and wobbles along both axes after release until it settles.

Use it with AI

  1. 1. Copy the link.
  2. 2. Write to your agent in your own words and drop the link into the sentence.
  3. 3. The agent opens the link and installs the component from the registry.
AI
1Pick it here

put this on the home page as the hero:

https://vibeui.club/c/button-076?lang=en&theme=dark

2Paste into the chat
3Get it in your project

Not sure where to paste it? Step-by-step guide

Show the full instructions

What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.

Loading…

How to use

<Button076 label="Press me" onPress={submit} />

A sample call. The agent installs the component itself from the registry via the “Copy for AI” link.

Settings

Caption
label · default: Press me
Accent
accent · default: theme colour
Background
background · default: theme colour

FAQ

How do I add Jelly Button with Cursor or Claude Code?
Press “Copy for AI” on this page and paste it into your agent's chat. The instruction contains the shadcn CLI install command, the dependencies and what to keep, so the agent installs this exact component instead of recreating a lookalike.
What does Jelly Button depend on?
No npm packages beyond React and Tailwind CSS.
What can I change in Jelly Button?
Adapt: label — the button caption; onPress — the action on press; the wobble fires regardless of it; accent — the button fill, with the caption colour kept contrasting against it. Keep as installed: the local --vibeui-button-076-* palette — do not swap it for your theme tokens (bg-primary, text-primary-foreground and the like); the spring linear(…) curve together with the cubic-bezier line before it: the first is there for older browsers, the second gives the overshoot; the conservation of volume in the keyframes: one axis has to grow exactly as much as the other shrinks — otherwise the jelly reads as plain scaling.
Is Jelly Button free?
The preview is open to everyone; the source is available with a PRO subscription.

For developers

npx shadcn@latest add https://vibeui.club/r/pro/button-076.json

This command needs a signed link: sign in and open “Component source” below — it issues a working link valid for 30 minutes. All install options

Technical notes

The component is self-contained: one file, no dependencies, its own palette in the local --vibeui-button-076-* variables. A client component: useState holds nothing but the wobble phase. The wobble itself is a keyframe animation with non-uniform per-axis scaling on a spring linear() curve; holding gives an instant squash through :active and the click starts the frames. The restart is done by alternating two identical keyframe sets: changing the animation name starts it over while the button is neither remounted nor loses focus.

Tags

  • button
  • jelly
  • squash
  • spring
  • animation
Component source

The same file your agent installs. Here in case you would rather copy it by hand.

Loading…