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)

Reserves space at a fixed ratio so media cannot cause layout shift.

Compound component: `BentoGrid` and `BentoGrid.Item`.

Box

server

The lowest-level layout primitive: a styled `div` you can retag.

Container

server

Centres content and caps its width, with a responsive gutter.

Divider

server

A separator.

Grid

server

Responsive 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.

An `IntersectionObserver` sentinel: the "reached the edge of the list" event, as a component.

Masonry

client

A masonry layout — Pinterest's grid: items of different heights packed into columns with no gaps under the short ones.

Resizable

client

Split 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.

A styled overflow container.

Section

server

Compound component: `Section` and `Section.Header`.

Stack

server

Flex container with a token-based gap. `Flex` is the horizontal alias.

Typography (5)

Code

server

Monospaced code. Inline by default; `block` wraps it in a scrollable `pre`.

Heading

server

A heading, `h1` through `h6`.

Kbd

server

A keyboard key, for documenting shortcuts.

Prose

server

Compound component: `Prose` and `Prose.Link`.

Text

server

Body text.

Actions (4)

Button

server

A button.

Groups related buttons. `attached` joins them into a single segmented control.

Copy to clipboard, with a transient confirmation.

A square button holding a single icon.

Forms (25)

Calendar

client

A month grid, keyboard-navigable per the WAI-ARIA Authoring Practices grid pattern.

Checkbox

server

A checkbox built on the native input.

Chip

client

A chip — a compact, labelled object: a filter, a tag, a recipient.

A 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

client

A filterable select, following the ARIA combobox pattern.

A text input with a `Calendar` in a popup.

A date-range field: one trigger showing "start – end", a popover hosting `Calendar` in range mode.

Field

client

Wires a label, hint and error message to a form control.

A dropzone over a real `<input type="file">`.

Form

client

Validation and submission orchestration over a native `<form>`.

Input

server

A text input. Native by design: no wrapper element, so `type`, `pattern`, `autoComplete`, form validation and the browser's own UI all keep working.

Label

server

A form label.

Listbox

client

A list of options that is always open — the control `<select multiple>` should have been.

A numeric field that behaves.

Otp input

client

A one-time-code field: one box per character, one string of state.

A password field with a reveal toggle and an optional strength meter.

A group of radios.

Rating

client

A star rating that is a real radio group.

Segmented

client

A segmented control: one visible choice from a few, always all on screen.

Select

server

A native `<select>`.

Slider

client

A slider built on `<input type="range">`.

Switch

server

An on/off toggle.

Tag input

client

A list of tags with a text field on the end.

Textarea

server

A multi-line text input.

A 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

client

Accordion — `Accordion`, `Accordion.Item`, `Accordion.Trigger`, `Accordion.Content`.

A right-click menu — `DropdownMenu`'s behaviour, anchored to a point instead of a button.

Drawer

client

A modal dialog attached to an edge of the viewport.

A button that opens a list of commands.

A rich preview that appears on hover and on focus — a user card on an

Lightbox

client

A full-screen image viewer — click a thumbnail, see the picture, move through the set.

Modal

client

A centred modal dialog.

Popover

client

A click-triggered non-modal dialog anchored to its trigger.

Portal

client

Renders 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

client

Tabs — `Tabs`, `Tabs.List`, `Tabs.Tab`, `Tabs.Panels`, `Tabs.Panel`.

Toast

server

One 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

client

A description that appears on hover and on focus.

Navigation (6)

A table of contents that knows where you are — the "On this page" column.

Compound component: `Breadcrumb`, `Breadcrumb.Item`, `Breadcrumb.Separator`.

The ⌘K palette: a search box over a flat list of commands.

Navbar

client

Compound component: `Navbar`, `Navbar.Brand`, `Navbar.Links`, `Navbar.Link`, `Navbar.Actions`, `Navbar.Toggle`.

Page-by-page navigation.

Sidebar

client

Compound component: `Sidebar`, `Sidebar.Section`, `Sidebar.Item`, `Sidebar.Toggle`.

Data display (13)

Avatar

server

Compound component: `Avatar` and `Avatar.Group`.

Badge

server

A small status or category label.

Card

server

Compound component: `Card`, `Card.Header`, `Card.Body`, `Card.Footer`.

A table with sorting, search, pagination and row selection built in.

A spreadsheet-style editable grid.

File tree

client

A file tree, implementing the WAI-ARIA treeview pattern.

A Kanban board that a keyboard can actually use.

Qr code

server

A QR code, rendered as crisp SVG from an in-house encoder — no dependency, no canvas.

Scheduler

client

A resource scheduler — people, rooms or machines down the side, time across the top.

Stepper

client

Where the user is in a multi-step flow.

Table

server

Compound component: `Table`, `Table.Head`, `Table.Body`, `Table.Foot`, `Table.Row`, `Table.Cell`, `Table.HeaderCell`, `Table.Caption`.

Timeline

server

Compound component: `Timeline` and `Timeline.Item`.

Windowed list: renders only the rows on screen.

AI chat (5)

A fenced code block with a copy button, built on `Code`.

The composer: an auto-growing textarea, an attachment slot, and a send button.

One turn in a conversation.

Compound component: `ChatThread`, `ChatThread.Message`, `ChatThread.Empty`.

Three animated dots meaning "a reply is coming".

Feedback (5)

Alert

server

A 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.

The "nothing here yet" block: a glyph, a line explaining what is missing, and the action that fixes it.

Progress

server

A determinate or indeterminate progress bar.

Skeleton

server

A loading placeholder. Hidden from assistive tech — the live region announces state.

Spinner

server

An indeterminate loading indicator. Inherits `currentColor`.

Sections (10)

Cta

server

The closing ask.

Faq

server

A frequently-asked-questions list built on native `<details>`/`<summary>`.

A responsive grid of icon + title + description cells.

Footer

server

The site footer.

Hero

server

The top-of-page pitch. Renders from props alone; pass `children` to take the inner layout over completely.

A row of customer or partner logos.

An email capture form.

Pricing

server

A plan comparison table built out of `Card`s.

Stats

server

A row of headline figures.

Customer quotes.

Media & time (10)

A number that counts up to its value the first time it is scrolled into view.

An audio player with its own controls — a podcast episode, a voice note, a sample.

Carousel

server

A carousel built on CSS scroll-snap.

Clock

client

The current time, ticking, via `Intl.DateTimeFormat` — no date library.

Countdown

client

A countdown to a fixed moment.

Image

client

An image with the box reserved, a loading state, and a failure state.

Map embed

client

An embedded map, without the privacy footgun.

Marquee

server

An infinite ticker: the content, then an `aria-hidden` copy of it, translated by exactly half the track so the seam is invisible.

"3 minutes ago", via `Intl.RelativeTimeFormat` — no date library.

A video player with its own controls — progressive files (MP4, WebM), no streaming.

Theming (2)

Owns the theme: resolves it, applies it to `<html>`, persists it, and follows the OS.

The theme switch every consumer asks for.