34 components. Copy one in, then change whatever you like — it is your file now.
npx shadcn@latest add https://uibeats.com/r/border-beam.jsonThe library
Everything below is the real component, running. Drag the deck, scratch the card, press the button.
Copy, paste, own
There is nothing to import from node_modules. The CLI writes the source into your repo, and from then on it is yours.
A light travels the border to mark the card worth looking at, without moving anything on the page.
Run one command
The CLI grabs the component and installs the packages it needs.
The file lands in your repo
At components/ui/border-beam.tsx. It shows up in your next diff.
Change anything
No wrapper API, no version to pin. Rename it, cut the props you do not want.
npx shadcn@latest add https://uibeats.com/r/border-beam.json"use client";
import { Sparkles } from "lucide-react";
import { BorderBeam } from "@/components/ui/border-beam";
const BorderBeamUsage = () => {
return (
<BorderBeam className="w-72" duration={5}>
<div className="p-6">
<div className="flex size-9 items-center justify-center rounded-lg bg-brand-subtle text-brand">
<Sparkles className="size-4" />
</div>
<h3 className="mt-4 text-sm font-semibold">Pro plan</h3>
<p className="mt-1 text-xs leading-relaxed text-muted-foreground">
A light travels the border to mark the card worth looking at, without
moving anything on the page.
</p>
</div>
</BorderBeam>
);
};
export default BorderBeamUsage;That is the whole API. Read the props
Built for how you build
Add the MCP server once. Claude Code, Cursor and Windsurf can then search the components, read the real props and install one without opening this site.
claude mcp add uibeats -- npx -y @uibeats/mcpDrag a control, watch it change, copy the snippet. It carries only what you changed. Motion Studio goes further: shape the easing curve or tune the spring, then take the transition.
Install it, read it, change it. If it does not fit, delete it. It is only a file, and there are 34 to pick from.