We use Google Analytics cookies to understand which pages and tools are useful and improve the site. Privacy policy.

Build

Find a component. See it working. Ship the code.

Search a curated component index across multiple UI libraries, compare the source-isolated preview, copy the TSX, and open the original source.

Component index

Search the catalog, then see it working.

Compare patterns from multiple component libraries, open the official source, and copy a ready-to-adapt example without leaving the page.

Browse source docs
⌘ K

Showing 34 of 34 components

8 sources indexed
Feedbackfrom shadcn/ui

Alert

A high-signal message for success, warning, or action-required states.

notificationwarningsuccessmessagebanner
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { CircleCheck } from "lucide-react";

<div className="flex gap-3 rounded-lg border border-brand-200 bg-brand-50 p-4">
  <CircleCheck className="mt-0.5 h-4 w-4 text-brand-700" />
  <div>
    <p className="font-semibold text-navy-900">Ready to ship</p>
    <p className="text-sm text-navy-600">Your latest audit has no blocking issues.</p>
  </div>
</div>
Identityfrom shadcn/ui

Avatar group

A compact way to show the people attached to a project, review, or shared space.

avatarteampeoplemembersidentity
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
<div className="flex -space-x-2">
  {[
    ["AR", "bg-navy-900"],
    ["LM", "bg-brand-500"],
    ["+4", "bg-surface-subtle"],
  ].map(([label, color]) => (
    <span className={`grid h-9 w-9 place-items-center rounded-full border-2 border-surface text-xs font-bold ${color}`}>
      {label}
    </span>
  ))}
</div>
Navigationfrom shadcn/ui

Command menu

A keyboard-friendly command surface for jumping between actions, pages, and content.

commandsearchpalettekeyboardnavigation
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { Command } from "cmdk";

<Command className="rounded-xl border bg-surface shadow-menu">
  <Command.Input placeholder="Search commands..." />
  <Command.List>
    <Command.Item>Open dashboard</Command.Item>
    <Command.Item>Run an audit</Command.Item>
  </Command.List>
</Command>
Datafrom ReUI

Data grid

A dense, readable table pattern for scanning status, owners, and the next action.

tabledatatablespreadsheetrowsfilter
PreviewSource-isolated
Copy-ready TSXReUI pattern
tsx
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";

<Table>
  <TableHeader>
    <TableRow><TableHead>Page</TableHead><TableHead>Status</TableHead></TableRow>
  </TableHeader>
  <TableBody>
    <TableRow><TableCell>/pricing</TableCell><TableCell>Ready</TableCell></TableRow>
  </TableBody>
</Table>
Marketingfrom shadcnblocks

Pricing block

A decisive plan comparison with one highlighted recommendation and plain-language value.

pricingplansbillingsubscriptionmarketing
PreviewSource-isolated
Copy-ready TSXshadcnblocks pattern
tsx
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";

<Card className="border-brand-400 shadow-hover">
  <CardHeader><CardTitle>Starter</CardTitle></CardHeader>
  <CardContent>
    <p className="text-3xl font-semibold">$0</p>
    <Button className="mt-5 w-full">Start free</Button>
  </CardContent>
</Card>
Feedbackfrom Coss UI

Empty state

A useful pause that explains what is missing and gives the visitor a clear next move.

no dataplaceholderfirst runonboardingempty
PreviewSource-isolated
Copy-ready TSXCoss UI pattern
tsx
import { EmptyState } from "@/components/ui/empty-state";

<EmptyState
  title="No audits yet"
  description="Run your first audit to see issues and next steps here."
  action={<Button>Run an audit</Button>}
/>
Formsfrom Aceternity UI

File upload

A visible drop zone with an upload promise, file type hint, and browse action.

uploaddropzonefileformdrag and drop
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
import { UploadCloud } from "lucide-react";

<label className="grid cursor-pointer place-items-center rounded-xl border border-dashed border-line-strong bg-surface-subtle p-8 text-center">
  <UploadCloud className="mb-3 h-5 w-5 text-brand-700" />
  <span className="font-semibold">Drop a CSV here</span>
  <span className="mt-1 text-sm text-navy-500">or click to browse, up to 10 MB</span>
  <input type="file" className="sr-only" accept=".csv" />
</label>
Marketingfrom Tailark

Hero block

A focused landing section with a clear promise, one primary action, and proof close by.

herolandingheadlinectamarketing
PreviewSource-isolated
Copy-ready TSXTailark pattern
tsx
<section className="rounded-2xl bg-navy-900 px-6 py-10 text-white">
  <Badge variant="brand">Built for fast teams</Badge>
  <h2 className="mt-4 max-w-lg text-3xl font-semibold">Ship the page, not the plumbing.</h2>
  <p className="mt-3 max-w-md text-sm text-navy-300">A strong hero earns attention with a single job.</p>
  <Button className="mt-6">Start building</Button>
</section>
Date & timefrom shadcn/ui

Calendar

A compact date picker preview that keeps month context and selection obvious.

datepickerschedulemonthbooking
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { Calendar } from "@/components/ui/calendar";

<Calendar
  mode="single"
  selected={date}
  onSelect={setDate}
  className="rounded-lg border"
/>
Navigationfrom Aceternity UI

Timeline

A progress narrative for deployments, reviews, or any sequence with a clear next step.

timelinestepsactivityhistoryprogress
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
const steps = ["Brief approved", "Design reviewed", "Build in progress"];

<ol className="space-y-4">
  {steps.map((step, index) => (
    <li className="flex items-center gap-3">
      <span className="grid h-6 w-6 place-items-center rounded-full bg-brand-400 text-xs font-bold">
        {index + 1}
      </span>
      <span className="text-sm font-medium">{step}</span>
    </li>
  ))}
</ol>
Feedbackfrom Sonner

Toast stack

Layered feedback that confirms an action without taking the user out of context.

toastfeedbacknotificationsuccesssnackbar
PreviewSource-isolated
Copy-ready TSXSonner pattern
tsx
import { toast } from "sonner";

toast.success("Audit shared", {
  description: "Anyone with the link can view the report.",
  action: { label: "Copy link", onClick: copyShareUrl },
});
Marketingfrom shadcnblocks

Testimonial

A proof block that keeps the quote, person, and outcome in one readable unit.

quotesocial proofreviewmarketingcustomer
PreviewSource-isolated
Copy-ready TSXshadcnblocks pattern
tsx
<figure className="max-w-md rounded-xl border border-line bg-surface p-5 shadow-card">
  <blockquote className="text-base font-medium leading-relaxed text-navy-900">
    “We found the issue in minutes, then shipped the fix before lunch.”
  </blockquote>
  <figcaption className="mt-4 text-sm text-navy-500">Maya Chen, Northstar</figcaption>
</figure>
Navigationfrom shadcn/ui

Accordion

Progressive disclosure for FAQs, settings, and dense supporting detail.

disclosurefaqcollapsiblecontentnavigation
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@/components/ui/accordion";

<Accordion type="single" collapsible>
  <AccordionItem value="item-1">
    <AccordionTrigger>Is it accessible?</AccordionTrigger>
    <AccordionContent>Yes. It follows the WAI-ARIA pattern.</AccordionContent>
  </AccordionItem>
</Accordion>
Navigationfrom shadcn/ui

Breadcrumb

A compact path that keeps location and parent context visible in nested flows.

navigationpathhierarchylocationwayfinding
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "@/components/ui/breadcrumb";

<Breadcrumb>
  <BreadcrumbList>
    <BreadcrumbItem><BreadcrumbLink href="/">Home</BreadcrumbLink></BreadcrumbItem>
    <BreadcrumbSeparator />
    <BreadcrumbItem><BreadcrumbPage>Components</BreadcrumbPage></BreadcrumbItem>
  </BreadcrumbList>
</Breadcrumb>
Navigationfrom shadcn/ui

Carousel

A swipeable content rail for related cards, images, or feature highlights.

slidercarouselgalleryswipeembla
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Carousel,
  CarouselContent,
  CarouselItem,
  CarouselNext,
  CarouselPrevious,
} from "@/components/ui/carousel";

<Carousel className="w-full max-w-sm">
  <CarouselContent>
    {items.map((item) => <CarouselItem key={item.id}>{item.title}</CarouselItem>)}
  </CarouselContent>
  <CarouselPrevious />
  <CarouselNext />
</Carousel>
Formsfrom shadcn/ui

Checkbox

A clear binary control for preferences, consent, and multi-select forms.

formtoggleselectionpreferenceinput
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { Checkbox } from "@/components/ui/checkbox";

<label className="flex items-center gap-2">
  <Checkbox id="terms" />
  <span>I agree to the terms and conditions.</span>
</label>
Formsfrom shadcn/ui

Combobox

An autocomplete field that keeps a large option set fast to search and select.

formautocompletesearchselectcommand
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Combobox,
  ComboboxContent,
  ComboboxInput,
  ComboboxItem,
  ComboboxList,
} from "@/components/ui/combobox";

<Combobox items={["Next.js", "React", "Astro"]}>
  <ComboboxInput placeholder="Select a framework" />
  <ComboboxContent>
    <ComboboxList>{(item) => <ComboboxItem value={item}>{item}</ComboboxItem>}</ComboboxList>
  </ComboboxContent>
</Combobox>
Feedbackfrom shadcn/ui

Dialog

A focused surface for confirmation, editing, or a short task without leaving context.

modaloverlayconfirmationformfocus
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogHeader,
  DialogTitle,
  DialogTrigger,
} from "@/components/ui/dialog";

<Dialog>
  <DialogTrigger>Open settings</DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>Project settings</DialogTitle>
      <DialogDescription>Update the details for this project.</DialogDescription>
    </DialogHeader>
  </DialogContent>
</Dialog>
Navigationfrom shadcn/ui

Dropdown menu

A compact action menu that keeps secondary commands close without crowding the surface.

menuactionscontextoverflownavigation
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";

<DropdownMenu>
  <DropdownMenuTrigger>More actions</DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuItem>Duplicate</DropdownMenuItem>
    <DropdownMenuItem>Archive</DropdownMenuItem>
  </DropdownMenuContent>
</DropdownMenu>
Navigationfrom shadcn/ui

Pagination

A compact page navigator for long tables, directories, and result sets.

pagestableresultsnavigationnext
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Pagination,
  PaginationContent,
  PaginationItem,
  PaginationLink,
  PaginationNext,
  PaginationPrevious,
} from "@/components/ui/pagination";

<Pagination>
  <PaginationContent>
    <PaginationItem><PaginationPrevious href="#" /></PaginationItem>
    <PaginationItem><PaginationLink href="#" isActive>2</PaginationLink></PaginationItem>
    <PaginationItem><PaginationNext href="#" /></PaginationItem>
  </PaginationContent>
</Pagination>
Navigationfrom shadcn/ui

Sheet

A side panel for filters, details, or quick edits that keeps the underlying page in view.

drawerpanelfiltersoverlayresponsive
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Sheet,
  SheetContent,
  SheetDescription,
  SheetHeader,
  SheetTitle,
  SheetTrigger,
} from "@/components/ui/sheet";

<Sheet>
  <SheetTrigger>Open filters</SheetTrigger>
  <SheetContent>
    <SheetHeader>
      <SheetTitle>Filters</SheetTitle>
      <SheetDescription>Refine the result set.</SheetDescription>
    </SheetHeader>
  </SheetContent>
</Sheet>
Navigationfrom shadcn/ui

Sidebar

A composable application rail for grouped navigation, workspace context, and account actions.

navigationapp shelldashboardrailworkspace
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { Sidebar, SidebarContent, SidebarGroup } from "@/components/ui/sidebar";

<Sidebar>
  <SidebarContent>
    <SidebarGroup>
      <nav className="space-y-1">
        <a href="/overview">Overview</a>
        <a href="/projects">Projects</a>
      </nav>
    </SidebarGroup>
  </SidebarContent>
</Sidebar>
Navigationfrom shadcn/ui

Tabs

A compact way to switch between related panels while keeping the page hierarchy stable.

navigationpanelssectionsswitchercontent
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";

<Tabs defaultValue="overview">
  <TabsList>
    <TabsTrigger value="overview">Overview</TabsTrigger>
    <TabsTrigger value="activity">Activity</TabsTrigger>
  </TabsList>
  <TabsContent value="overview">Project health at a glance.</TabsContent>
  <TabsContent value="activity">Recent changes and events.</TabsContent>
</Tabs>
Feedbackfrom shadcn/ui

Tooltip

A short explanation or label that appears on demand without adding visual weight.

hinthelplabelhoveraccessible
PreviewSource-isolated
Copy-ready TSXshadcn/ui pattern
tsx
import {
  Tooltip,
  TooltipContent,
  TooltipProvider,
  TooltipTrigger,
} from "@/components/ui/tooltip";

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger aria-label="Copy link">Copy</TooltipTrigger>
    <TooltipContent>Copy share link</TooltipContent>
  </Tooltip>
</TooltipProvider>
Motionfrom Magic UI

Animated list

A staggered notification or activity stream that makes incoming items feel alive.

motionnotificationsactivitylistsequence
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { AnimatedList } from "@/components/ui/animated-list";

<AnimatedList>
  <Notification title="Payment received" time="15m ago" />
  <Notification title="New workspace member" time="10m ago" />
  <Notification title="Report exported" time="5m ago" />
</AnimatedList>
Marketingfrom Magic UI

Bento grid

A responsive feature layout that gives a few high-value stories different visual weight.

layoutfeaturesmarketinggridcards
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { BentoCard, BentoGrid } from "@/components/ui/bento-grid";

<BentoGrid>
  <BentoCard name="Save your files" description="A larger feature story." className="md:col-span-2" />
  <BentoCard name="Notifications" description="A supporting feature." />
  <BentoCard name="Integrations" description="A supporting feature." />
</BentoGrid>
Motionfrom Magic UI

Marquee

An infinite content rail for logos, testimonials, capabilities, or short proof points.

motionscrolllogostestimonialsinfinite
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { Marquee } from "@/components/ui/marquee";

<Marquee pauseOnHover>
  <span>Next.js</span>
  <span>React</span>
  <span>TypeScript</span>
  <span>Tailwind CSS</span>
</Marquee>
Datafrom Magic UI

Number ticker

A count-up metric that adds motion to a number without turning the dashboard into a showreel.

metricanimationkpinumberdashboard
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { NumberTicker } from "@/components/ui/number-ticker";

<div>
  <p className="text-sm text-muted-foreground">Pages improved</p>
  <NumberTicker value={1284} className="text-4xl font-semibold" />
</div>
Motionfrom Magic UI

Shimmer button

A high-intent button with a restrained moving highlight around the perimeter.

buttonctamotionhighlightconversion
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { ShimmerButton } from "@/components/ui/shimmer-button";

<ShimmerButton className="shadow-2xl">
  Start building
</ShimmerButton>
Navigationfrom Magic UI

Dock

A compact floating navigation rail for utility actions, tools, or a focused workspace.

navigationtoolbarmacosactionsworkspace
PreviewSource-isolated
Copy-ready TSXMagic UI pattern
tsx
import { Dock, DockIcon } from "@/components/ui/dock";
import { Home, Search, Settings } from "lucide-react";

<Dock>
  <DockIcon><Home /></DockIcon>
  <DockIcon><Search /></DockIcon>
  <DockIcon><Settings /></DockIcon>
</Dock>
Marketingfrom Aceternity UI

3D card

A depth-forward card treatment for featured work, products, or a single high-value story.

carddepthhovermarketingperspective
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
import { CardBody, CardContainer, CardItem } from "@/components/ui/3d-card";

<CardContainer>
  <CardBody>
    <CardItem translateZ="50" className="text-xl font-bold">
      Featured project
    </CardItem>
    <CardItem translateZ="60" className="mt-4">
      A layered card with depth on hover.
    </CardItem>
  </CardBody>
</CardContainer>
Marketingfrom Aceternity UI

Background beams

A directional line field that adds atmosphere behind a focused hero or launch moment.

backgroundherolinesatmospheremarketing
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
import { BackgroundBeams } from "@/components/ui/background-beams";

<section className="relative overflow-hidden rounded-2xl">
  <BackgroundBeams />
  <div className="relative z-10 px-6 py-16">
    <h1>Build a sharper interface.</h1>
  </div>
</section>
Marketingfrom Aceternity UI

Card spotlight

A contained hover spotlight that guides attention to one card without adding another accent color.

cardspotlighthoverfeaturesurface
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
import { CardSpotlight } from "@/components/ui/card-spotlight";

<CardSpotlight className="rounded-xl border p-6">
  <h3 className="text-xl font-bold">Team workspace</h3>
  <p className="mt-2 text-sm text-muted-foreground">
    Keep the next action visible for everyone.
  </p>
</CardSpotlight>
Marketingfrom Aceternity UI

Infinite moving cards

A continuous testimonial rail for social proof that keeps the section compact and scannable.

testimonialsmotionsocial proofcarouselinfinite
PreviewSource-isolated
Copy-ready TSXAceternity UI pattern
tsx
import { InfiniteMovingCards } from "@/components/ui/infinite-moving-cards";

<InfiniteMovingCards
  items={testimonials}
  direction="right"
  speed="slow"
/>

Design tokens first

Every local example uses semantic tokens (brand, navy, surface, line, and status), so the kit stays coherent as it grows.

ts
// tailwind.config.ts, the token system everything above uses
colors: {
  brand:  { 50:"#f4fbe8", 100:"#e6f7c6", 400:"#a3e635", 500:"#84cc16", 600:"#4d7c0f", 700:"#3f6212" },
  navy:   { 300:"#9aa5b5", 400:"#6b7788", 500:"#44506a", 700:"#1f293d", 900:"#0a0f1a" },
  surface:{ DEFAULT:"#ffffff", subtle:"#f7f8f5" },
  line:   { DEFAULT:"#e6e8e2", strong:"#cfd3c8" },
  status: { pass:"#16a34a", warn:"#d97706", fail:"#dc2626", info:"#2563eb" },
},
borderRadius: { pill: "9999px" },
boxShadow: {
  card:  "0 1px 2px rgba(10,15,26,.04), 0 1px 3px rgba(10,15,26,.05)",
  hover: "0 6px 20px rgba(10,15,26,.09)",
  menu:  "0 12px 32px rgba(10,15,26,.14)",
}