Skip to content
38
Components

The full registry.

101 components shadcn/ui leaves out: multi-select, combobox, date and time pickers, tag and currency inputs, file dropzones, data views and more. Each one runs live below, so you can test it before the shadcn CLI copies its source into your repo.

Chip-based multi-select with command-palette dropdown, search, select-all and a loading state. Compound and single-prop APIs.

View

Two-thumb slider paired with synced number inputs. Min/max/step, currency or unit formatting, keyboard-first.

View

Tag Input

Inputs

Chip input with paste-to-split, dedupe, validation hook and max tags.

View

Segmented duration field over days, hours, minutes and seconds. Digits auto-advance, arrows step, and the value stays a plain number of seconds.

View

Number input with step buttons, arrow-key and hold-to-repeat stepping, min and max, and Intl formatting for currency, percent or units. Submits the raw number.

View

Single-choice control with a sliding thumb. Keyboard works like a radio group and mirrors in RTL. Two sizes, icons, disabled options and a full-width mode.

View

A free-text input with suggestions from a local list or an async search, with optional inline completion, groups and recent entries. The value is whatever you type.

View

A group of checkboxes with a select-all parent, nested groups, min and max limits, and an optional search that narrows the list.

View

Autocomplete single-select that defers loading until open and pages through results on scroll. Debounced server-side search with a pluggable lazy paginator hook.

View

Password field with a show/hide toggle and an optional pluggable strength meter.

View

Locale-aware grouping with currency-symbol prefix and configurable decimal precision.

View

Phone number field with a country dial-code picker and E.164 output from libphonenumber-js.

View

Rating

Inputs

Star rating with hover preview, half-star precision, read-only mode and sm / md / lg sizes.

View

@-mention textarea with caret-anchored autocomplete, highlighted mention chips, async search and multiple trigger characters.

View

Tiptap editor with a formatting toolbar (headings, lists, links, highlight, alignment) and a hover bubble to edit or unlink links inline. Outputs HTML, controlled or uncontrolled, with composable parts.

View

Click-to-edit text with preview, validation, async submit and confirm/cancel controls. Input and textarea modes.

View

Signature capture on signature_pad: smooth ink, per-stroke undo, ink that follows the theme, and PNG/JPEG export via ref.

View

Editable code field with dependency-free YAML syntax highlighting, a line-number gutter and tab-to-indent. Controlled or uncontrolled.

View

Visual cron builder kept in sync with the raw expression. Presets, per-field modes, validation, a plain-English preview, and the next run times.

View

Searchable country picker with flag emoji, pinned countries, optional dial codes, and single or multiple selection. Search by name or ISO code.

View

Postal address field group that follows the selected country: which fields appear, the order they sit in, and what they are called.

View

Card number, expiry, and CVC in one row with brand detection, per-brand grouping, Luhn and expiry validation, and auto-advance between fields.

View

A shadcn Input that formats as you type, for IBANs, postcodes, dates, licence plates or your own pattern. Reports the masked text, the bare characters and whether the mask is complete. Ships presets for common formats.

View

A Linear-style filter bar for lists and tables: pick a field, then an option, and get a chip with an operator menu and a value editor. Handles options, multi-select, text, number ranges and date ranges, keeps every filter in one array you can save to the URL, and ships applyFilters for client-side lists.

View

Decade-grid year picker with keyboard nav, min/max bounds, single or range mode.

View

4×3 month grid with year stepper, keyboard nav, min/max bounds, single or range mode.

View

Hour, minute and optional second scroll columns with 12/24h modes, step intervals and keyboard nav.

View

Color picker on react-colorful with HEX / RGB / HSL inputs (colord), an eyedropper where supported, and recent swatches.

View

Single-date picker: a trigger that formats the date, opening shadcn Calendar in a popover. Takes react-day-picker matchers for bounds and disabled days.

View

Range picker on shadcn Calendar: preset column, one or two months, and react-day-picker matchers for bounds and disabled days.

View

Emoji picker on frimousse: the full emoji set by category, search, skin tones, keyboard navigation and a hover preview.

View

One field for a day and a time: a calendar beside hour and minute columns, with an AM/PM column on a 12-hour clock. Picking a day keeps the time, minutes snap to a step, and the value is a single Date.

View

Pick a meeting time: a calendar where days without free slots are disabled, beside the times for the chosen day. Booked slots show crossed out, and arrow keys skip over them.

View

Drag-and-drop or click upload zone on react-dropzone, with a file list, type and size validation, and readable rejection messages.

View

Pan-and-zoom image cropper on react-easy-crop: rect or round mask, fixed aspect, zoom slider and canvas export via ref.

View

Local media file picker that previews via an object URL; empty-state prompt, replace and clear, size validation. Nothing leaves the browser.

View

Click or drop an image, crop it to a circle or square with zoom, and preview the result. Initials fallback, size and type limits, remove control.

View

Shows a PDF in your page on react-pdf: page arrows and a page number field, zoom steps, fit to width and a download button. Text can be selected and links work, and the arrow keys turn pages.

View

A file as a row for lists or a tile for grids: an icon picked from the type, or an image preview, with the name, size and your own actions. FileIcon and fileKindOf are exported for your own layouts.

View

Uploads files a few at a time with progress for each and overall, plus cancel, retry and clear finished. useUploadQueue takes your upload function, so it works with S3, a signed URL or your own API, and pairs with File Dropzone.

View

Timeline

Data display

Vertical event timeline with default or icon dots, tone variants and labelled time / title / description parts.

View

Avatar Stack

Data display

Overlapping avatar group with size (sm/md/lg) and spacing (tight/normal/loose) variants, image or fallback support, numeric overflow chip, and asChild on items/overflow so each avatar can render as a link or button.

View

Tree View

Data display

Collapsible nested tree for file explorers and hierarchical data, with auto folder/file icons, depth indentation, selection and keyboard focus.

View

Animated Number

Data display

Count-up number that tweens to its target with easing, Intl formatting (currency, compact, percent), prefix/suffix and reduced-motion support.

View

Sortable

Data display

Drag-to-reorder list on dnd-kit: pointer and keyboard sorting, handle or whole-item dragging, and controls inside items that stay clickable.

View

Countdown Timer

Data display

Count-down-to-date timer with boxed / inline / minimal variants, a useCountdown hook, digit animation and completion content.

View

Relative Time

Data display

Live "3 minutes ago" label on a semantic <time>, formatted with Intl for any locale. Every instance shares one timer per refresh rate, and old dates refresh hourly.

View

Calendar Heatmap

Data display

GitHub-style contribution heatmap with month and weekday labels, tooltips, configurable intensity scale and a legend.

View

Data Table

Data display

TanStack-powered data table: faceted, text, range and date filters, sortable columns, column visibility, row selection and pagination, with page, sort and filters kept in the URL. One useDataTable hook drives it: pass pageCount to query server-side, or omit it to sort, filter and page a local array in memory. Ships as a folder of composable parts.

View

Metric Card

Data display

Compact metric card with a value and unit, a tone-aware sparkline and an up / down trend line. Compound API.

View

Kanban

Data display

Board of columns and cards on dnd-kit: pointer and keyboard drag-and-drop across columns, a drag overlay, an empty-column hint, and one commit per move.

View

Sparkline

Data display

Tiny inline chart on recharts in line, area or bar form with optional curve, last-point dot, reference line and hover tooltip. Tints with currentColor.

View

Gauge

Data display

Radial SVG gauge for a single reading on a scale, with threshold bands that recolour the arc, an animated sweep and a centred value and caption. Any start and end angle, from a half circle to a full ring.

View

Meter

Data display

Linear meter for how much of a limit is used, like storage or an API quota, with stacked segments, a legend and thresholds that change the colour. Unlike Progress, which tracks a task, it shows an amount against a limit.

View

Description List

Data display

Label and value pairs for detail pages, like an invoice, a user or a server. Terms sit beside their values when there is room and stack on narrow screens, with optional columns, dividers and icons.

View

Comment Thread

Data display

A discussion thread for documents, designs or issues: comments with avatars, emoji reactions you can toggle, indented replies, a composer that sends with Ctrl or ⌘ + Enter, and a resolve button that folds the thread away.

View

Virtual List

Data display

A list that renders only the rows in view, so thousands of items scroll smoothly. Rows can be any height and are measured as they render, and it asks for the next page as the reader nears the end, with a loading row and an empty state.

View

Kbd Button

Display

A pressable 3D keycap with hover lift and a pressed state, for shortcut legends and keyboard-driven UIs. Pairs with shadcn's Kbd and KbdGroup for inline shortcuts and chords.

View

Callout

Display

MDX-style admonition with neutral / info / success / warning / destructive variants, CalloutTitle and CalloutDescription parts, and an optional icon override. Ships --info / --success / --warning theme tokens.

View

Fixed reading progress bar. Tracks document scroll by default or a scoped container ref.

View

Top-of-page banner with default / primary / muted tones, optional dismiss button and localStorage persistence.

View

Click-to-copy button with copied feedback, icon-only or labelled, ghost / outline variants and a non-secure-context clipboard fallback.

View

Icon Stack

Display

Isometric stack of plates with an icon skewed onto the front face, for feature headers and empty states. Layer count is a prop, and the plates take their color from the surrounding text.

View

Marquee

Display

Infinite scrolling row or column for logos and testimonials, with pause-on-hover, reverse and vertical modes. Keyframes ship inline, zero config.

View

Before/after comparison slider with a draggable, keyboard-accessible divider, horizontal or vertical orientation and hover-follow mode.

View

Lightbox

Display

Fullscreen image lightbox on Radix Dialog with gallery navigation, zoom and pan, swipe gestures, captions and a thumbnail strip.

View

QR Code

Display

QR code on uqr, rendered as crisp SVG, with L/M/Q/H error correction, quiet-zone control and custom colors.

View

Code Block

Display

Code display with built-in dependency-free syntax highlighting via theme tokens, line numbers, line highlights, diff gutters, copy button and collapsible max-height.

View

Masonry

Display

True masonry layout that balances children into the shortest column by measured height, order-preserving, responsive, dependency-free.

View

Composable audio player with play/pause, scrub-safe seek with buffered tint, skip, time readouts, volume and playback rate.

View

Composable video player with click or Space to play, scrub-safe seek with buffered tint, time readouts, volume, full screen, and controls that fade out while it plays.

View

Confirm

Display

Imperative confirmation dialog: a root provider plus a useConfirm hook that resolves a promise on confirm or cancel. Default or destructive tone, an optional icon, and an async confirm action with a pending spinner.

View

Unsaved-changes guard: a root provider plus a useUnsavedGuard hook. Warns before reload, tab close and in-app link navigation, and returns a guard(proceed) to wrap programmatic navigation in a confirm dialog.

View

Collapsible JSON tree with typed value colors, item counts on closed nodes, long-string truncation, expand or collapse all, copy, and arrow-key navigation.

View

Blur Reveal

Animation

Reveals content with a blur, fade and lift as it scrolls into view. Configurable delay, duration and threshold; respects reduced-motion.

View

Text Reveal

Animation

Staggered text entrance that masks and slides each word, character or line into place on scroll. Respects reduced-motion.

View

Text Shimmer

Animation

Text with a moving highlight for loading labels like "Thinking...". CSS only, follows the text colour, runs the other way in RTL and stays still when reduced motion is on.

View

Scroll Reveal

Animation

Fades and slides content in from any direction as it enters the viewport. Configurable distance, delay and replay; respects reduced-motion.

View

Card surface with a crisp spotlight that tracks the cursor and fades in on hover. Built on Cursor Glow and design tokens.

View

Button that pulls toward the cursor and springs back on leave. Adjustable strength, asChild to wrap a link, respects reduced-motion.

View

Cursor Glow

Animation

Ambient glow layer that follows the pointer across its container and fades when it leaves. Drop it behind heroes, grids or feature panels.

View

Sparkles

Animation

Canvas particle field that drifts and twinkles behind any container. Density scales with size, colors resolve from tokens, and it pauses offscreen and under reduced-motion. No dependencies.

View

Tilt Card

Animation

3D pointer tilt with optional cursor-following glare and configurable max angle, scale and perspective. Respects reduced-motion.

View

A trigger card that morphs into a centered dialog via shared-layout animation, with focus trapping, scroll lock, Esc to close and reduced-motion support.

View

A collapsible panel for a model's thinking. It opens while the reasoning streams in with a shimmering label, times itself, then folds away into "Thought for 6s" once the answer starts, unless the reader opened it.

View

Shows a tool the model called: its name, a status from pending to done, the input and output as formatted JSON, and errors. Calls that need a human get Allow and Deny buttons and stay open until answered.

View

Citations for AI answers: numbered inline chips that preview their page on hover or focus, and a "Used 4 sources" line that opens into a list of links with their sites.

View

A searchable model picker grouped by provider, showing each model's context size, a short description and what it can do: read images, use tools, reason or read files. Fits in a prompt toolbar.

View

Composition (the shadcn way)

Every compound component ships as flat top-level exports, no namespacing, no convenience wrappers. The bare name is the root primitive and holds state; every rendered piece carries adata-slotattribute for downstream styling.

import {
  MultiSelect,
  MultiSelectContent,
  MultiSelectTrigger,
} from "@/components/multi-select"

<MultiSelect value={value} onValueChange={setValue} options={options}>
  <MultiSelectTrigger placeholder="Pick…" />
  <MultiSelectContent searchPlaceholder="Filter…" />
</MultiSelect>
184 section blocks36 categories, preview and install
13 full-page templateslanding pages, preview and install