Letter Roll Button

A pill button whose label rolls up letter by letter with a staggered hover animation.

Installation

Adds the component and everything it depends on to your project.

npx shadcn add https://ui.beste.co/component/r-base/button13

New here? Read the installation guide.

Usage

The import and the props worth knowing about, in one place.

import { Button13 } from "@/components/beste/component/button13";
import Link from "next/link";

// Compose the link with the render prop: your Link becomes the rendered
// element and the button content stays as its children.
<Button13 label="Start your project" render={<Link href="/contact" />} />

<Button13
  label="Explore services"
  tone="outline"   // "dark" (default) | "primary" | "outline"
  rounded="md"     // "full" (default) | "lg" | "md" | "none"
  hideIcon         // drop the trailing arrow
  onClick={() => console.log("explore services")}
/>

Playground

Turn the props on the right; the snippet under them is what you would write to get what you see.

Usage
import { Button13 } from "@/components/beste/component/button13";

<Button13
  label="Start your project"
/>

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
label*stringButton label (animated letter by letter on hover)
asChildbooleanCompose the rendered element shadcn-style (radix asChild): your element (e.g. a router Link) becomes the root and the button content is injected as its children. Pass the element without children of its own.
childrenReact.ReactElementThe element to render when `asChild` is set (e.g. your framework's Link)
hrefstringFallback link: renders a plain `<a>`. Prefer `asChild` with your framework's Link component for client-side navigation.
iconLucideIconTrailing icon (defaults to ArrowRight); pass null-like hide via showIcon
hideIconbooleanHide the trailing icon
tone"dark" | "primary" | "outline"Surface tone: solid dark (default), primary, or bordered outline
rounded"full" | "lg" | "md" | "none"Corner radius (defaults to full)
onClickReact.MouseEventHandler<HTMLButtonElement>Click handler (used when there is no href and no asChild)
classNamestringAdditional classes merged onto the button

More Button components

View all Button

Editorial CTA Button

An editorial pill button with a rolling label and animated icon seal on hover.

Scramble Button

A scramble text button that cycles random glyphs on hover for developer and tech landings.

Shine Sweep Button

A premium pill button with a diagonal shine sweep on hover for pricing and upgrade actions.

Seal Arrow Button

An uppercase pill button with a trailing seal arrow chip and an optional link.

Magnetic Button

A magnetic button that is pulled toward the cursor on hover and springs back on leave.

Avatar Stack Button

A social proof button with an avatar stack inside the pill and a trailing arrow.

Markdown version