Registry
Installable shadcn-compatible registry items.
Accordion
A vertically stacked set of interactive headings that each reveal a section of content.
Alert
Displays a callout for user attention with optional title, description, and action.
Alert Dialog
A modal dialog that interrupts the user with important content and expects a response.
Announcement Bar
A full-width site banner with light, dark, and gray theme variants, plus an Embla carousel slider.
Aspect Ratio
Displays content within a desired aspect ratio.
Attachment
Displays a file or image attachment with media, metadata, upload state, and actions.
Avatar
An image element with a fallback for representing the user.
Badge
Displays a badge or a component that looks like a badge.
Breadcrumb
Displays the path to the current resource using a hierarchy of links.
Bubble
Colored message surfaces for chat and conversation UIs, with optional reactions.
Button
A polymorphic button with variants, sizes, icons, and a CTA group helper.
Button Group
A container that groups related buttons with shared borders and orientation.
Calendar
A date field component that allows users to enter and edit dates.
Card
Displays a card with header, content, and footer.
Carousel
A carousel with motion and swipe built using Embla.
Chart
Beautiful charts built using Recharts with a themed chart container, tooltip, and legend.
Checkbox
A control that allows the user to toggle between checked and not checked.
Collapsible
An interactive component which expands/collapses a panel.
Combobox
Autocomplete input with a list of suggestions.
Command
Command menu for search and quick actions.
Container
A centered content wrapper with max-width size variants.
Context Menu
Displays a menu of actions triggered by a right click.
Data Table
Powerful table and datagrids built using TanStack Table.
Date Picker
A date picker component with range and presets.
Dialog
A window overlaid on either the primary window or another dialog window.
Direction
A provider component that sets the text direction for your application.
Drawer
A drawer component for menus and content that slides from an edge of the screen.
Dropdown Menu
Displays a menu of actions or options triggered by a button.
Empty
Use the Empty component to display an empty state.
Field
Combine labels, controls, descriptions, and errors into accessible form fields.
Heading
A semantic heading with independent size, weight, and tone controls.
Hero
A full-bleed marketing hero with announcement badge, dual CTAs, and product screenshot.
Hover Card
For sighted users to preview content available behind a link.
Icons
A typed icon component with size variants and a custom icon set.
Input
Displays a form input field or a component that looks like an input field.
Input Group
Display additional information or actions to an input or textarea.
Input OTP
Accessible one-time password component with copy-paste support.
Item
A versatile component for displaying content in lists, cards, or menus.
Kbd
Used to display textual user input from keyboard.
Label
Renders an accessible label associated with controls.
Link Spread
An absolute positioned anchor that makes an entire container clickable.
Link Text
A polymorphic text link with tone, underline, size, and external-link controls.
Logos
A typed logo component with size variants and a brand logo set.
Marker
A marker for labeling sections with optional icons, borders, and separators.
Menubar
A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands.
Message
Layout primitives for chat rows with avatars, headers, and footers.
Message Scroller
Auto-scrolling container for chat message lists with jump-to controls.
Mode Toggle
Cycles light, dark, and system theme modes and persists the choice.
Native Select
A styled native HTML select element with options and option groups.
Navigation Menu
A collection of links for navigating websites.
Pagination
Pagination with page navigation, next and previous links.
Popover
Displays rich content in a portal, triggered by a button.
Progress
Displays an indicator showing the completion progress of a task.
Questionnaire
A multi-step questionnaire with single-choice, multiple-choice, freeform, and skippable questions.
Radio Group
A set of checkable buttons where only one can be checked at a time.
Resizable
Accessible resizable panel groups and layouts with keyboard support.
Scroll Area
Augments native scroll functionality for custom, cross-browser styling.
scroll-fade
Utilities for adding a fade effect to the edges of a scroll container.
Section
A semantic section wrapper with responsive vertical padding variants.
Select
Displays a list of options for the user to pick from—triggered by a button.
Separator
Visually or semantically separates content.
Sheet
Extends the Dialog component to display content that complements the main content of the screen.
shimmer
Utilities for adding a shimmer effect to text elements.
Sidebar
A composable, themeable, and customizable sidebar component.
Skeleton
Use to show a placeholder while content is loading.
Slider
An input where the user selects a value from within a given range.
Spinner
An accessible loading spinner built on Lucide's Loader2 icon.
Styles
Design system globals and theme CSS for consumer apps.
Switch
A control that allows the user to toggle between checked and not checked.
Table
A responsive table component.
Tabs
A set of layered sections of content—known as tab panels—that are displayed one at a time.
Text
A polymorphic body text component with size, weight, tone, and alignment controls.
Textarea
Displays a multi-line text input field.
Theme Toggle
Switches between branded data-theme palettes and persists the choice.
Toast
A succinct message that is displayed temporarily.
Toggle
A two-state button that can be either on or off.
Toggle Group
A set of two-state buttons that can be toggled on or off.
Tooltip
A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
useBodyOverflow
Locks page scroll by toggling overflow-hidden on document.body.
useCloseMobileMenuOnResize
Closes a mobile menu or overlay when the viewport is resized.
useCopyToClipboard
A small hook that copies text and tracks the latest copy result.
useIsMobile
Detects whether the viewport matches a mobile max-width media query.