Component reference
A component system for native-feeling product software.
94 source-first components, cataloged for humans and LLMs. Pick a playbook, jump with ⌘K, or filter by category below.
Operations workbench
Start with AppShell, Sidebar, Table, Inspector, StatusRow, and chart pages for dense product views.
AppShellTableInspectorPlaybook Keyboard-first tool UI
Use Command, Kbd, Badge, Timeline, ProgressRing, and ScrollArea for dense power-user tools.
CommandTimelineKbdPlaybook Local-first library app
Use SourceList, TitleBar, TrafficLights, Toolbar, SplitView, and Typography for local collections.
SourceListTitleBarSplitViewPlaybook LLM-safe composition
Prefer layout primitives, semantic tokens, and named variants so generated screens stay consistent.
StackSectionTypographybutton Primary action with primary, ghost, outline, and destructive tones.SegmentedControl segmented-control Connected radio buttons in one rounded chassis.Switch switch Sliding on/off control, macOS-Settings shape.Sparkline sparkline Inline mini line chart with optional area fill.ProgressRing progress-ring Determinate circular progress with optional label.Lamp lamp Colored status dot with halo for idle, running, warn, fail.Foundation
14Button
Primary action element with primary / ghost / outline variants.
buttonInput
Base text input primitive with leading / trailing slots.
inputSearchInput
Pill search field with magnifier + ⌘K hint + clear button.
search-inputTextarea
Multi-line text input with optional auto-resize.
textareaLabel
Caption / eyebrow for form fields.
labelKbd
Keyboard shortcut hint, styled like a key cap.
kbdSpinner
Indeterminate progress ring (sm / md / lg).
spinnerCard
Generic surface (flat / tinted variants).
cardSeparator
Horizontal or vertical rule, solid or dashed.
separatorSkeleton
Pulsing placeholder block for loading states.
skeletonAvatar
Circular user image with initials fallback.
avatarTypography
Preset typographic styles with tone overrides.
typographyField
Labeled form-field wrapper with auto-id and ARIA wiring.
fieldEmpty
Empty-state placeholder with icon, title, and action.
emptyLayout
11Container
Max-width content well with auto margins.
containerStack
Vertical flex column with token-driven gap.
stackVStack
Naming-symmetric twin of HStack — vertical flex.
vstackHStack
Horizontal flex row with optional wrap.
hstackFlex
Generic flex container with all axes exposed.
flexSpacer
Flex helper that fills remaining space.
spacerCenter
Flex container that centers children on both axes.
centerBox
Generic div with token-driven padding and radius shortcuts.
boxSection
Semantic <section> with display-font title and subtitle.
sectionAspectRatio
Locks a child block to a fixed width:height ratio.
aspect-ratioScrollArea
Overflow container with native-feel styled scrollbars.
scroll-areaShell
11AppShell
Full-window header / sidebar / main / footer scaffold.
app-shellSidebar
Collapsible side panel with header / body / footer slots.
sidebarToolbar
Horizontal action strip with macOS-flavored chrome.
toolbarPageHeader
Page-level header with title / eyebrow / actions.
page-headerPageBody
Page-level main content region.
page-bodyPageFooter
Page-level footer with bordered top.
page-footerResizable
Two-pane container with a drag handle between them.
resizableSplitView
Multi-pane container with hairline dividers (macOS).
split-viewCollapsible
Toggle-visibility container built on bits-ui.
collapsibleAccordion
Vertical stack of collapsible items.
accordionDragHandle
Grip-dot indicator for resize / reorder targets.
drag-handleDisplay
9Badge
Pill-shaped status / count label.
badgeChip
Toggleable filter pill with optional count.
chipLamp
Colored status dot with halo (idle / running / warn / fail).
lampProgressBar
Determinate or indeterminate progress bar.
progress-barStat
Single label + display-font value pair.
statStatusRow
Compact summary card for an in-progress operation.
status-rowProgressRing
Circular determinate progress with optional centered label.
progress-ringMeter
Discrete level indicator (battery / signal / score).
meterSparkline
Inline mini line chart with optional area fill.
sparklineForm
13Toggle
Pressable button with persistent on/off state.
toggleToggleGroup
Set of related Toggles bound to one value.
toggle-groupSwitch
Sliding on/off control (macOS-Settings shape).
switchCheckbox
Boolean form control with optional label.
checkboxRadioGroup
Single-select group of radio options.
radio-groupSlider
Single-thumb range input with token-driven chrome.
sliderNumberInput
Numeric text field with ▲▼ Stepper.
number-inputPinInput
Fixed-length OTP / verification code field.
pin-inputPasswordInput
Input with show / hide eye toggle.
password-inputSelect
Dropdown picker built on bits-ui.
selectNativeSelect
System <select> with our chrome.
native-selectCombobox
Typeahead select with filter-as-you-type.
comboboxCalendar
Month-grid date picker built on bits-ui + @internationalized/date.
calendarOverlay
9Dialog
Modal overlay built on bits-ui.
dialogAlertDialog
Confirmation modal for destructive actions.
alert-dialogPopover
Anchored floating panel.
popoverTooltip
Hover-triggered short label.
tooltipSheet
Slide-in panel from a screen edge.
sheetDrawer
Bottom-anchored slide-up sheet.
drawerDropdownMenu
Pop-up menu of actions (items-based API).
dropdown-menuContextMenu
Right-click pop-up menu.
context-menuCommand
Searchable ⌘K palette with keyboard nav.
commandFeedback
1Navigation
4Data
5Table
Data-driven HTML table with sortable columns.
tableList
Vertical row list with label / description.
listVirtualList
Windowed list for large datasets (fixed height).
virtual-listInfiniteScroll
IntersectionObserver load-more sentinel.
infinite-scrollTimeline
Vertical chronological event list with markers.
timelinemacOS
7Notch
Frosted-material section header with leading / trailing slots.
notchStepper
▲▼ connected button pair for increment / decrement.
stepperTrafficLights
Window controls (close / min / zoom).
traffic-lightsTitleBar
Drag region with centered title for app windows.
title-barInspector
Right-side property panel with sectioned rows.
inspectorSourceList
Finder-style sidebar list with icons + counts.
source-listOutlineView
Disclosure tree with chevron toggles.
outline-viewAI
10AgentTimeline
Vertical trace of a multi-step agent run — status markers per step with inline tool calls.
agent-timelineAIBadge
"AI" label for generated content, with an opt-in shimmer while streaming.
ai-badgeChatMessage
Role-tinted chat message row (assistant / user / tool / system) with avatar slot and metadata.
chat-messageChatStream
Streaming chat log container — role=log, bottom-anchored auto-follow, typing dots while busy.
chat-streamCitationLink
Inline source reference with a hover preview, as a superscript number or a titled chip.
citation-linkDiffView
Inline or side-by-side diff for AI edits, with derived line numbers and +/- stats.
diff-viewPromptInput
Chat composer — auto-growing textarea, action slots, and a send button that flips to stop while busy.
prompt-inputToolCallCard
Display block for LLM tool invocations — status rows, diff stats, collapsible group, expandable results.
tool-call-cardToolResultCard
Result block beneath a tool invocation — headed, scrollable, optionally collapsible, with an error tone.
tool-result-cardTypingDots
Three-dot typing pulser with a grammar-aware or custom label.
typing-dots