Components
A reference of all available UI components, grouped by category. Each component is vendored source code that you own and can customize.
Adding New Components
The project includes a components.json configuration file, so you can scaffold new shadcn/ui components using the CLI:
npx shadcn@latest add accordionThis generates the component source file in src/components/ui/ with all dependencies resolved.
Layout
Card
Container with header, content, and footer slots. Used for stats, forms, and data panels.
import { ... } from "@/components/ui/card"Separator
Horizontal or vertical divider line between sections.
import { ... } from "@/components/ui/separator"Tabs
Tabbed interface for switching between content panels. Supports controlled and uncontrolled modes.
import { ... } from "@/components/ui/tabs"Sheet
Slide-out panel from any edge. Used for mobile menus and detail views.
import { ... } from "@/components/ui/sheet"Form
Input
Text input field with consistent border and focus ring styling.
import { ... } from "@/components/ui/input"Select
Dropdown select menu built on Radix UI Select primitive.
import { ... } from "@/components/ui/select"Textarea
Multi-line text input with auto-sizing support.
import { ... } from "@/components/ui/textarea"Checkbox
Boolean toggle with checkmark indicator. Supports indeterminate state.
import { ... } from "@/components/ui/checkbox"Switch
Toggle switch for on/off boolean states.
import { ... } from "@/components/ui/switch"Label
Accessible label element that pairs with form inputs.
import { ... } from "@/components/ui/label"Radio Group
Group of radio buttons for single-select from multiple options.
import { ... } from "@/components/ui/radio-group"Form
React Hook Form integration with Zod validation and accessible error messages.
import { ... } from "@/components/ui/form"Data Display
Badge
Small status label with color variants: default, secondary, destructive, success, warning, outline.
import { ... } from "@/components/ui/badge"Table
HTML table primitives (Table, TableHeader, TableBody, TableRow, TableCell) with consistent styling.
import { ... } from "@/components/ui/table"Avatar
User avatar with image and fallback initials support.
import { ... } from "@/components/ui/avatar"Progress
Horizontal progress bar with animated fill.
import { ... } from "@/components/ui/progress"Skeleton
Loading placeholder with pulse animation for content that is still loading.
import { ... } from "@/components/ui/skeleton"Feedback
Dialog
Modal dialog with overlay, title, description, and action buttons.
import { ... } from "@/components/ui/dialog"Tooltip
Popup hint that appears on hover or focus. Positioned automatically.
import { ... } from "@/components/ui/tooltip"Sonner (Toast)
Toast notification system. Trigger with toast() from the sonner package.
import { ... } from "@/components/ui/sonner"Popover
Floating content panel triggered by a button click. Used for filters and mini-forms.
import { ... } from "@/components/ui/popover"Navigation
Breadcrumb
Trail of links showing the current page hierarchy.
import { ... } from "@/components/ui/breadcrumb"Dropdown Menu
Context menu with items, separators, and keyboard navigation.
import { ... } from "@/components/ui/dropdown-menu"Command
Command palette (Cmd+K) with searchable list of actions and pages.
import { ... } from "@/components/ui/command"Button
Primary action trigger with variants: default, destructive, outline, secondary, ghost, link. Multiple sizes available.
import { ... } from "@/components/ui/button"Common Usage Pattern
All components follow the same pattern: import the named export, pass props and children, and use the className prop to extend styles:
import { Button } from "@/components/ui/button";
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
export function Example() {
return (
<Card>
<CardHeader>
<CardTitle>
Orders <Badge variant="secondary">12</Badge>
</CardTitle>
</CardHeader>
<CardContent>
<Button variant="outline" size="sm">
View All
</Button>
</CardContent>
</Card>
);
}Next Steps
Learn about Theming to customize component colors, or see the Deployment guide when you are ready to ship.