designer-skill: cleaner UI from your agent.

Get it

Morph Button

Kit UI — MorphButton A multi-state async action button. Clicking runs your action while the pill morphs its width to fit each state's content: a rotating arc spinner while loading, an emerald check that draws in on success, or a rose X with a tight shake on error — then it melts back to idle. Works controlled or uncontrolled, honors prefers-reduced-motion, and announces every state to screen re…

Morph Button preview
morph-buttonLive preview · interact with it
Build promptPaste into Claude, Cursor or v0 with the Niblet MCP connected
Build the "Morph Button" React component in this project using the Niblet MCP (connected with my Niblet API key).

1. Call get_ui_component {"id": "morph-button"} to fetch its source files and dependencies.
2. Write each returned file at its target path, adapting the `@/` imports to this project's aliases.
3. Install the npm dependencies it lists. Add unprefixed registry dependencies with `npx shadcn@latest add <name>`; fetch `@niblet/<id>` ones with get_ui_component.
4. Render it on a page, run the type check, and confirm it works the way the live preview does.

Live preview: https://niblet.pymodel.com/components/morph-button
If the Niblet MCP is not connected, stop and tell me to create an API key at https://niblet.pymodel.com/account and follow https://niblet.pymodel.com/docs.
Category
uikit
License
MIT

Adapted from MIT-licensed open-source UI projects. Keep the MIT license notice with copies.

npm dependencies
  • framer-motion
Registry dependencies
  • utils
Files it installs
  • components/uikit/morph-button.tsx

Get the source

The source is served to your agent through the hosted Niblet MCP. Have it run:

  1. find_ui_materials {"query": "morph button", "kind": "component"}
  2. get_ui_component {"id": "morph-button"}

Needs an API key: get one on your account, then see the MCP setup docs.