The primitives everything else is built from.
Components
Buttons, inputs, overlays, feedback and data display. Every primitive is token-driven, keyboard operable and ships with real states rather than a single happy-path render.
Showing 45 of 45 components
Alert
A block-level message attached to a region, with tone-appropriate live-region politeness.
FeedbackstarterFeatured6 variantsButton
The complete action surface: nine variants, five sizes, and a loading state that preserves the control’s measured width.
ActionsstarterFeatured7 variantsCard
A discrete record in a collection, with five tones and a composable header, title, description and footer.
LayoutstarterFeatured6 variantsCombobox
A filterable single-select implementing the ARIA 1.2 combobox pattern, with active-descendant browsing that never moves focus out of the input.
FormsadvancedFeatured5 variantsCommand menu
A modal command palette: fuzzy-ranked results, grouped output, active-descendant browsing and a keyboard-first footer.
NavigationadvancedFeatured4 variantsDialog
A modal with focus trapping, scroll locking, Escape dismissal and focus return — in four sizes.
OverlayadvancedFeatured5 variantsDropdown menu
The ARIA menu-button pattern with grouped items, roving focus, shortcuts and destructive styling.
NavigationintermediateFeatured6 variantsField
The accessibility contract shared by every form control — label, help text, error, success and the ARIA wiring that connects them.
FormsintermediateFeatured7 variantsMetric
A KPI tile with trend direction, invertible "good" semantics and a decorative sparkline.
DatastarterFeatured4 variantsTable
A semantic table with two responsive strategies, a focusable scroll region and a built-in empty state.
DataintermediateFeatured5 variantsToast
Transient notifications in a single polite live region, with pinned errors and an optional undo action.
FeedbackintermediateFeatured6 variantsActivity item
A compact feed row: actor, action, target, time and optional metadata.
Datastarter3 variantsAvatar
Deterministic initials on a name-derived tint, in five sizes, with an optional indicator.
Datastarter4 variantsAvatar group
Overlapping avatars with an overflow count and a single accessible name for the whole set.
Datastarter3 variantsBadge
Compact labelling with seven tones, three appearances and an optional second, colour-independent signal.
Feedbackstarter6 variantsBreadcrumb
A hierarchy trail with a collapsing middle for deep paths and horizontal scroll on mobile.
Navigationstarter3 variantsCheckbox
Multi-select control with inline and card appearances, plus a genuine indeterminate state for bulk selection.
Formsstarter5 variantsConfirmation
A destructive-action guard with a static backdrop, a pending state and a confirm button that is never focused first.
Overlaystarter4 variantsContainer
Five measured widths with one consistent responsive gutter.
Layoutstarter6 variantsDate field
Native date, time, month and datetime entry on the shared control surface.
Formsstarter6 variantsDivider
Horizontal and vertical rules in three weights, with an optional interrupting label.
Layoutstarter5 variantsDrawer
An edge-anchored modal — left, right or bottom — sharing the dialog’s focus and scroll contract.
Overlayintermediate5 variantsEmpty state
The three-part empty state — what is missing, why, and the single most likely next action.
Feedbackstarter4 variantsFile upload
A drop zone that is fully operable from the keyboard, with local file listing, size validation and removal.
Formsintermediate5 variantsGrid
Responsive column grids plus an auto-fit mode that needs no breakpoint decisions.
Layoutstarter3 variantsInput
Single-line text entry with leading and trailing slots, three sizes and a shared control surface used by every other text control.
Formsstarter7 variantsOTP field
Segmented one-time-code entry that advances on type, steps back on backspace and fills every box from a single paste.
Formsadvanced4 variantsPagination
Real anchors, a fixed-width page window and correctly disabled ends.
Navigationstarter4 variantsPanel
A titled region with a header action row and an optional flush body for tables and lists.
Layoutstarter3 variantsPopover
A non-modal layer with six CSS placements — the page behind stays interactive.
Overlayintermediate3 variantsProgress
Determinate and indeterminate progress as a bar or a ring, with four tones.
Feedbackstarter5 variantsRadio group
Mutually exclusive choice, with a card appearance for decisions that need explanation.
Formsstarter4 variantsSearch field
A search input with a keyboard-reachable clear button and an optional shortcut hint.
Formsstarter4 variantsSelect
A styled native select with optional groups — the right choice whenever the option list is short and known.
Formsstarter6 variantsSkeleton
Placeholder geometry for resolving content, in line, block, circle and button shapes.
Feedbackstarter5 variantsSlider
A range input with a token-painted track, live value read-out and custom value formatting.
Formsstarter4 variantsSpinner
A pure-CSS indeterminate indicator that inherits currentColor and costs nothing to render.
Feedbackstarter3 variantsStack
Flex layout with a density-aware gap scale, alignment and wrapping.
Layoutstarter5 variantsStatus
System state as icon plus label plus colour — never colour alone.
Feedbackstarter4 variantsStepper
Multi-step progress in horizontal and vertical orientations, with state conveyed in words as well as ticks.
Navigationstarter3 variantsSwitch
An immediate on/off setting, with leading alignment for forms and trailing alignment for settings rows.
Formsstarter4 variantsTabs
ARIA tabs with manual activation and three appearances.
Navigationintermediate5 variantsTextarea
Multi-line entry on the shared control surface, with a resize affordance that respects the layout.
Formsstarter4 variantsTimeline
A chronology as an ordered list, with tone-coded markers and machine-readable timestamps.
Datastarter4 variantsTooltip
Supplementary text on hover and on keyboard focus, dismissible with Escape.
Overlaystarter3 variants