One import, data in: the everyday controls without assembling primitives.
21 components
- Accordion Questions and answers from an array: plain text or a snippet per item.
- Avatar group Overlapping avatars with initials, a +N count and names in tooltips.
- Bar list A ranked list with proportional bars, links and a show-more toggle.
- Breadcrumbs A trail of pages from an array, collapsing the middle into a menu on phones.
- Checkbox One checkbox with its label and description, the whole row tappable.
- Checkbox list Options in, a labelled group of checkboxes out, posting every checked value.
- Confirm dialog Ask before acting: waits on an async confirm, a drawer on phones.
- Data table Columns and rows in, a sortable table out: cards on phones, links per row.
- Date field A date with its label: calendar in a popover, a drawer on phones, ISO value.
- File dropzone Drop or pick files, folders too: type and size limits, a list to review, posted with the form.
- Form Fields from an array, laid out and posted to a form action, with errors under each field.
- Input A text field with its label, description and error in one: passwords get a reveal button.
- Menu Actions from an array: a dropdown on desktop, a drawer of big rows on phones.
- Pagination Page numbers from a total and a page size, prev and next on phones.
- Radio list Pick one option from a list or from cards, with a legend and errors.
- Segmented control A single choice as equal segments that fold to icons when space runs out.
- Select Options in, a labelled select out: searchable, and a drawer on phones.
- Status badge A status pill with a tone, a dot and an optional pulse for live states.
- Switch A labelled switch row that posts true when on.
- Tabs Tabs from an array, scrolling sideways when they run out of room.
- Textarea A multi-line field with its label, error and an optional character counter.