Components
53 components53 with usage guidance
Showing all 53 components.
Foundations
2
Icon
StableDraws a Lucide icon at a token size with the system stroke width, in the color of the text around it. Decorative by default: pass a label only when the icon carries meaning on its own.
- Props
- 3
- Tokens
- 5
- Stories
- 4
VisuallyHidden
StableText for assistive technology only: screen readers read it, the screen does not show it. Use it to give a control or a symbol the words sighted users get from the layout.
- Props
- 0
- Tokens
- 1
- Stories
- 2
Actions
4
Button
StableTriggers an action on the current screen: save, publish, approve, open a dialog. If it takes the user somewhere else, it is a Link, not a Button.
- Props
- 8
- Tokens
- 52
- Stories
- 12
ButtonGroup
StableLays out related buttons as one unit, either spaced (an action bar or dialog footer) or attached (a segmented control), and gives the group one accessible name.
- Props
- 3
- Tokens
- 2
- Stories
- 3
IconButton
StableA square button with only an icon, for frequent, recognizable actions in toolbars, table rows and headers. Its label is still required: it becomes the accessible name.
- Props
- 6
- Tokens
- 53
- Stories
- 4
Link
StableTakes the user to another page, section or site. Underlined in running text so it is never identified by color alone.
- Props
- 3
- Tokens
- 13
- Stories
- 4
Forms
14
Checkbox
StableA single on or off choice with its label next to the box, submitted with a form. Supports a mixed state for a parent that controls a partly checked group.
- Props
- 15
- Tokens
- 32
- Stories
- 6
CheckboxGroup
StableSeveral independent choices under one question, in a fieldset with a legend. An optional parent checkbox selects or clears the whole group and shows a mixed state.
- Props
- 13
- Tokens
- 19
- Stories
- 4
ChoiceCard
StableOne choice among two to four options that each need a title and a short description, shown as cards: Keep mine or Use the library's, a starting brand, a corner style. The whole card is the click target.
- Props
- 5
- Tokens
- 53
- Stories
- 7
Combobox
StableA text input that filters a list of options as the user types, then selects one or several of them. Built for long lists and async search (people, repositories, tokens).
- Props
- 22
- Tokens
- 51
- Stories
- 9
Field
StableWires a visible label, an optional description and an error message to one form control. Ids, aria-describedby, aria-invalid and validation timing are handled by Base UI Field.
- Props
- 10
- Tokens
- 16
- Stories
- 5
Form
StableA form with one validation pattern for the whole system: client checks on submit, server errors passed by field name, each shown under its Field and listed in a summary that takes focus.
- Props
- 6
- Tokens
- 23
- Stories
- 3
Input
StableSingle-line text field with optional prefix and suffix. Give it a label prop for a complete field, or place it inside a Field.
- Props
- 8
- Tokens
- 26
- Stories
- 6
NumberField
StableNumeric input with decrease and increase buttons, arrow-key stepping, min and max, and locale-aware formatting.
- Props
- 22
- Tokens
- 26
- Stories
- 4
RadioGroup
StableOne choice among a few visible, mutually exclusive options. Arrow keys move the selection; the group has a legend and optional per-option descriptions.
- Props
- 14
- Tokens
- 39
- Stories
- 4
SegmentedControl
StablePicks one of a few views or modes, shown side by side as attached buttons: the brand of a preview, the density, light or dark. The choice applies at once, on the current screen.
- Props
- 10
- Tokens
- 30
- Stories
- 10
Select
StablePicks one value from a short, known list in a popup. The trigger looks like an Input so forms read as one family; the list supports groups, descriptions, badges and disabled options.
- Props
- 17
- Tokens
- 43
- Stories
- 7
Slider
StablePicks a value or a range by position on a continuous scale, with the formatted value shown at the end of the track.
- Props
- 18
- Tokens
- 22
- Stories
- 4
Switch
StableTurns a setting on or off with immediate effect, like a light switch. No save button needed.
- Props
- 14
- Tokens
- 31
- Stories
- 5
Textarea
StableMulti-line text that grows with its content up to a maximum, with an optional character count. Give it a label prop or place it inside a Field.
- Props
- 10
- Tokens
- 29
- Stories
- 7
Feedback
7
Alert
StableAn inline message about the state of a page or a section: a failed publish, a pending review, a sync in progress. It stays until the situation changes or the user dismisses it.
- Props
- 8
- Tokens
- 27
- Stories
- 7
Banner
StableA page-level mode banner: the page shows something other than usual, such as a past change of the library or an edit mode, and the way back sits on the same line. One per page, at the top of the content.
- Props
- 6
- Tokens
- 21
- Stories
- 7
EmptyState
StableExplains why a view has no content yet and invites the action that fills it. An empty screen is a starting point, not a dead end.
- Props
- 7
- Tokens
- 30
- Stories
- 3
Progress
StableShows how far a task has gone: a linear bar in layouts, a circular ring in compact spots. Indeterminate when the duration is unknown.
- Props
- 10
- Tokens
- 24
- Stories
- 4
Skeleton
StableA placeholder in the shape of content that is loading, so the layout does not jump when the data arrives.
- Props
- 5
- Tokens
- 9
- Stories
- 4
Spinner
StableAn indeterminate activity indicator for short waits and busy controls. For content that is loading into a layout, use Skeleton; for long tasks, use Progress.
- Props
- 3
- Tokens
- 6
- Stories
- 2
Toast
StableA short, temporary notification that confirms what just happened (Tokens published, Link copied) without interrupting. Shown with useToast() under a ToastProvider.
- Props
- 8
- Tokens
- 31
- Stories
- 3
Overlays
6
AlertDialog
StableStops the user to confirm an action with consequences, usually destructive: delete tokens, revoke access, force publish. It asks one question and offers two answers.
- Props
- 4
- Tokens
- 34
- Stories
- 4
Dialog
StableA modal window for a short, focused task that must be finished or cancelled before the user goes back to the page: rename a token, invite a reviewer, review a release.
- Props
- 5
- Tokens
- 34
- Stories
- 4
Drawer
StableA sheet that slides in from an edge and keeps the page in view behind it: token details, filters, a review checklist. On touch it can be swiped away.
- Props
- 6
- Tokens
- 39
- Stories
- 5
Menu
StableA list of actions or options that opens from a button: row overflow actions, view options, sort order. Supports icons, shortcuts, groups, checkable items and submenus.
- Props
- 5
- Tokens
- 34
- Stories
- 5
Popover
StableA small non-modal panel anchored to a trigger, for extra detail or a quick choice that does not deserve a dialog: who must review, what a check does, branch info.
- Props
- 5
- Tokens
- 21
- Stories
- 3
Tooltip
StableA short label that appears on hover and keyboard focus. It names icon buttons and reveals truncated text for sighted users; the accessible name always lives on the trigger.
- Props
- 10
- Tokens
- 17
- Stories
- 3
Data display
11
Accordion
StableStacked sections that expand in place. Lets users scan headings and open only what they need.
- Props
- 9
- Tokens
- 26
- Stories
- 4
Avatar
StableA person, a team or Claude, shown as a photo with an initials or illustrated fallback. AvatarGroup stacks several and collapses the rest into a +N counter.
- Props
- 10
- Tokens
- 24
- Stories
- 7
Badge
StableA short, non-interactive status label like Draft, Published or Failed. The words carry the meaning; the tone reinforces it.
- Props
- 5
- Tokens
- 42
- Stories
- 4
Card
StableA flat plate with a hairline edge that groups related content: a release, a component summary, a settings section. It does not cast a shadow unless the whole card is one link.
- Props
- 2
- Tokens
- 26
- Stories
- 3
Checklist
StableThe steps or conditions something needs, one row each: a status icon, a title, one line of detail and, when there is one, the action on the same row. Like the merge box of a pull request.
- Props
- 3
- Tokens
- 27
- Stories
- 5
CodeBlock
StableA command or a short piece of code in IBM Plex Mono, with a copy button on the same line. The button says Copied for two seconds, so the reader knows the paste will work.
- Props
- 8
- Tokens
- 23
- Stories
- 10
Divider
StableA hairline that separates groups of content, horizontally or vertically, with an optional short label.
- Props
- 3
- Tokens
- 11
- Stories
- 3
Kbd
StableShows a keyboard key or a key combination, as nested kbd elements in the mono face.
- Props
- 2
- Tokens
- 16
- Stories
- 3
Table
StableA semantic data table for comparing records: sortable columns, selectable rows, density-aware rows, and a focusable scroll region on narrow screens.
- Props
- 6
- Tokens
- 36
- Stories
- 6
Tag
StableA compact label for a value. Static to describe, toggleable as a filter chip, or removable to show selected values.
- Props
- 10
- Tokens
- 28
- Stories
- 5
TokenValue
StableA token name and its value in IBM Plex Mono, with a color swatch when the value is a color. For token tables, before and after values, and the values behind a conflict choice.
- Props
- 6
- Tokens
- 18
- Stories
- 9
Layout
5
Container
StableCenters page content at a max width from the size scale with token side padding. Phones always get a 16px gutter.
- Props
- 3
- Tokens
- 7
- Stories
- 2
Grid
StableTwo-dimensional layout with token gaps: a fixed number of equal columns, or as many columns as fit for card and tile grids.
- Props
- 4
- Tokens
- 1
- Stories
- 2
Inline
StableLays out children in a row with a token gap and wraps them when space runs out: badges, button rows, metadata.
- Props
- 5
- Tokens
- 1
- Stories
- 2
PageHeader
StableThe top of a page: the page title, a one-line lead that says what the page is for, an optional meta line (freshness, counts) and up to three page actions.
- Props
- 6
- Tokens
- 29
- Stories
- 4
Stack
StableStacks children in a column with a gap from the space scale. The default gap follows density (16px comfortable, 12px compact).
- Props
- 4
- Tokens
- 1
- Stories
- 2