Expanding Reveal Button

An expanding icon button that reveals its label on hover or focus for compact layouts.

Installation

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

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

New here? Read the installation guide.

Usage

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

import { Button15 } from "@/components/beste/component/button15";
import Link from "next/link";
import { Mail } from "lucide-react";

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

<Button15
  label="Email us"
  icon={Mail}      // seal icon (default: ArrowRight)
  tone="outline"   // "dark" (default) | "primary" | "outline"
  rounded="lg"     // "full" (default) | "lg" | "md" | "none", mirrored onto the seal
  onClick={() => console.log("email us")}
/>

Playground

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

Usage
import { Button15 } from "@/components/beste/component/button15";

<Button15
  label="Get in touch"
/>

Props

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

PropTypeDefaultDescription
label*stringButton label, revealed as the pill expands on hover/focus
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.
iconLucideIconSeal icon (defaults to ArrowRight)
tone"dark" | "primary" | "outline"Surface tone: solid dark (default), primary, or bordered outline
rounded"full" | "lg" | "md" | "none"Corner radius, mirrored onto the seal (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

Icon Button

An accessible icon button with a required label, three sizes, and circle or square shape.

Pressable Button

A neobrutalist button with a hard offset shadow that lifts on hover and presses in on click.

Seal Arrow Button

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

Play Button

A video play button with a circular play seal, label, and duration for showreels and product demos.

Shine Sweep Button

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

Corner Brackets Button

A monospace button framed by corner brackets that spring outward on hover.

Markdown version