All components
109 components. 50 render in a Server Component with no client JavaScript; the other 59 declare 'use client' because they genuinely need state, effects or event handlers.
Layout (12)
Aspect ratio
serverReserves space at a fixed ratio so media cannot cause layout shift.
Bento grid
serverCompound component: `BentoGrid` and `BentoGrid.Item`.
Box
serverThe lowest-level layout primitive: a styled `div` you can retag.
Container
serverCentres content and caps its width, with a responsive gutter.
Divider
serverA separator.
Grid
serverResponsive grid at zero runtime cost. Responsive `cols` become inline custom properties that the static stylesheet reads inside fixed media queries — no style computation, no CSS generation, SSR-identical.
Infinite scroll
clientAn `IntersectionObserver` sentinel: the "reached the edge of the list" event, as a component.
Masonry
clientA masonry layout — Pinterest's grid: items of different heights packed into columns with no gaps under the short ones.
Resizable
clientSplit panes — panels side by side (or stacked) with draggable, keyboard-operable boundaries between them. The editor/preview layout, the sidebar you can widen, the inspector you can shrink.
Scroll area
serverA styled overflow container.
Section
serverCompound component: `Section` and `Section.Header`.
Stack
serverFlex container with a token-based gap. `Flex` is the horizontal alias.
Typography (5)
Actions (4)
Button
serverA button.
Button group
serverGroups related buttons. `attached` joins them into a single segmented control.
Copy button
clientCopy to clipboard, with a transient confirmation.
Icon button
serverA square button holding a single icon.
Forms (25)
Calendar
clientA month grid, keyboard-navigable per the WAI-ARIA Authoring Practices grid pattern.
Checkbox
serverA checkbox built on the native input.
Chip
clientA chip — a compact, labelled object: a filter, a tag, a recipient.
Color picker
clientA colour picker with real controls: hue, saturation, brightness (and alpha) are `<input type="range">`s with names and spoken values; the hex field is a text input that commits on Enter or blur and reverts what it cannot parse; presets are toggle buttons. The two-dimensional area is a pointer convenience over the same state, hidden from assistive tech because the sliders already say everything it shows.
Combobox
clientA filterable select, following the ARIA combobox pattern.
Date picker
clientA text input with a `Calendar` in a popup.
Date range picker
clientA date-range field: one trigger showing "start – end", a popover hosting `Calendar` in range mode.
Field
clientWires a label, hint and error message to a form control.
File upload
clientA dropzone over a real `<input type="file">`.
Form
clientValidation and submission orchestration over a native `<form>`.
Input
serverA text input. Native by design: no wrapper element, so `type`, `pattern`, `autoComplete`, form validation and the browser's own UI all keep working.
Label
serverA form label.
Listbox
clientA list of options that is always open — the control `<select multiple>` should have been.
Number input
clientA numeric field that behaves.
Otp input
clientA one-time-code field: one box per character, one string of state.
Password input
clientA password field with a reveal toggle and an optional strength meter.
Radio group
serverA group of radios.
Rating
clientA star rating that is a real radio group.
Segmented
clientA segmented control: one visible choice from a few, always all on screen.
Select
serverA native `<select>`.
Slider
clientA slider built on `<input type="range">`.
Switch
serverAn on/off toggle.
Tag input
clientA list of tags with a text field on the end.
Textarea
serverA multi-line text input.
Time picker
clientA time field made of spinbutton segments — hours, minutes, optional seconds, optional AM/PM — rather than a free-text box or a scrolling list of every quarter hour.
Overlays (12)
Accordion
clientAccordion — `Accordion`, `Accordion.Item`, `Accordion.Trigger`, `Accordion.Content`.
Context menu
clientA right-click menu — `DropdownMenu`'s behaviour, anchored to a point instead of a button.
Drawer
clientA modal dialog attached to an edge of the viewport.
Dropdown menu
clientA button that opens a list of commands.
Hover card
clientA rich preview that appears on hover and on focus — a user card on an
Lightbox
clientA full-screen image viewer — click a thumbnail, see the picture, move through the set.
Modal
clientA centred modal dialog.
Popover
clientA click-triggered non-modal dialog anchored to its trigger.
Portal
clientRenders its children somewhere else in the DOM — the escape hatch every overlay needs to get out from under `overflow: hidden` and a parent's stacking context.
Tabs
clientTabs — `Tabs`, `Tabs.List`, `Tabs.Tab`, `Tabs.Panels`, `Tabs.Panel`.
Toast
serverOne notification. `ToastProvider` renders these for you, but it is exported so a static toast can be dropped into a docs page or a form's inline slot.
Tooltip
clientA description that appears on hover and on focus.
Navigation (6)
Anchor nav
clientA table of contents that knows where you are — the "On this page" column.
Breadcrumb
serverCompound component: `Breadcrumb`, `Breadcrumb.Item`, `Breadcrumb.Separator`.
Command palette
clientThe ⌘K palette: a search box over a flat list of commands.
Navbar
clientCompound component: `Navbar`, `Navbar.Brand`, `Navbar.Links`, `Navbar.Link`, `Navbar.Actions`, `Navbar.Toggle`.
Pagination
clientPage-by-page navigation.
Sidebar
clientCompound component: `Sidebar`, `Sidebar.Section`, `Sidebar.Item`, `Sidebar.Toggle`.
Data display (13)
Avatar
serverCompound component: `Avatar` and `Avatar.Group`.
Badge
serverA small status or category label.
Card
serverCompound component: `Card`, `Card.Header`, `Card.Body`, `Card.Footer`.
Data table
clientA table with sorting, search, pagination and row selection built in.
Editable grid
clientA spreadsheet-style editable grid.
File tree
clientA file tree, implementing the WAI-ARIA treeview pattern.
Kanban board
clientA Kanban board that a keyboard can actually use.
Qr code
serverA QR code, rendered as crisp SVG from an in-house encoder — no dependency, no canvas.
Scheduler
clientA resource scheduler — people, rooms or machines down the side, time across the top.
Stepper
clientWhere the user is in a multi-step flow.
Table
serverCompound component: `Table`, `Table.Head`, `Table.Body`, `Table.Foot`, `Table.Row`, `Table.Cell`, `Table.HeaderCell`, `Table.Caption`.
Timeline
serverCompound component: `Timeline` and `Timeline.Item`.
Virtual list
clientWindowed list: renders only the rows on screen.
AI chat (5)
Chat code block
clientA fenced code block with a copy button, built on `Code`.
Chat input
clientThe composer: an auto-growing textarea, an attachment slot, and a send button.
Chat message
serverOne turn in a conversation.
Chat thread
clientCompound component: `ChatThread`, `ChatThread.Message`, `ChatThread.Empty`.
Typing indicator
serverThree animated dots meaning "a reply is coming".
Feedback (5)
Alert
serverA static, inline message. `danger` and `warning` get `role="alert"` so screen readers interrupt for them; `info` and `success` use `role="status"`, which waits for a pause instead of talking over the user.
Empty state
serverThe "nothing here yet" block: a glyph, a line explaining what is missing, and the action that fixes it.
Progress
serverA determinate or indeterminate progress bar.
Skeleton
serverA loading placeholder. Hidden from assistive tech — the live region announces state.
Spinner
serverAn indeterminate loading indicator. Inherits `currentColor`.
Sections (10)
Cta
serverThe closing ask.
Faq
serverA frequently-asked-questions list built on native `<details>`/`<summary>`.
Feature grid
serverA responsive grid of icon + title + description cells.
Footer
serverThe site footer.
Hero
serverThe top-of-page pitch. Renders from props alone; pass `children` to take the inner layout over completely.
Logo cloud
serverA row of customer or partner logos.
Newsletter
clientAn email capture form.
Pricing
serverA plan comparison table built out of `Card`s.
Stats
serverA row of headline figures.
Testimonials
serverCustomer quotes.
Media & time (10)
Animated counter
clientA number that counts up to its value the first time it is scrolled into view.
Audio player
clientAn audio player with its own controls — a podcast episode, a voice note, a sample.
Carousel
serverA carousel built on CSS scroll-snap.
Clock
clientThe current time, ticking, via `Intl.DateTimeFormat` — no date library.
Countdown
clientA countdown to a fixed moment.
Image
clientAn image with the box reserved, a loading state, and a failure state.
Map embed
clientAn embedded map, without the privacy footgun.
Marquee
serverAn infinite ticker: the content, then an `aria-hidden` copy of it, translated by exactly half the track so the seam is invisible.
Relative time
client"3 minutes ago", via `Intl.RelativeTimeFormat` — no date library.
Video player
clientA video player with its own controls — progressive files (MP4, WebM), no streaming.
Theming (2)
Theme provider
clientOwns the theme: resolves it, applies it to `<html>`, persists it, and follows the OS.
Theme toggle
clientThe theme switch every consumer asks for.