This is the Components part of the Atomus documentation: every component page: Figma properties, usage rules and React API. --- # Components > Every Atomus component: live React demos, the Figma properties and variants, and usage guidance on one page. URL: https://docs.atomus.io/components/ Each page shows the component live, then its Figma properties and variants, then how to use it in code, with the full React API at the end. 31 components ship in React; the rest are Figma-only for now. Not sure which one you need? See [Choosing a component](https://docs.atomus.io/components/choosing/). ## Actions [Button Triggers an action. Five hierarchies, five sizes from 24 to 56px. React + Figma](https://docs.atomus.io/components/button/) [Button group Connected buttons for switching views or filters. Figma only](https://docs.atomus.io/components/button-group/) ## Forms & inputs [Input Single-line text field with label, hint and error. Heights match Button. React + Figma](https://docs.atomus.io/components/input/) [Select Pick one value from a list. Keyboard and screen-reader ready. React + Figma](https://docs.atomus.io/components/select/) [Checkbox, Radio & Toggle Selection controls in two sizes. React + Figma](https://docs.atomus.io/components/checkbox-radio-toggle/) [Date picker A date field with a calendar; single dates or ranges. React + Figma](https://docs.atomus.io/components/date-picker/) [Slider Slider for a single value or a range. Figma only](https://docs.atomus.io/components/slider/) [File upload A drop zone and upload rows with progress, success and error states. Figma only](https://docs.atomus.io/components/file-upload/) [Color picker Saturation area, hue slider, eyedropper, hex field and presets. Figma only](https://docs.atomus.io/components/color-picker/) [Text editor Rich text editor shell. Figma only](https://docs.atomus.io/components/text-editor/) ## Feedback [Alert Inline messages about a page, section or form. React + Figma](https://docs.atomus.io/components/alert/) [Toast Short floating confirmations with auto-dismiss. React + Figma](https://docs.atomus.io/components/toast/) [Banner Full-width announcement bar. Figma only](https://docs.atomus.io/components/banner/) [Notifications Dropdown panel for the bell icon: header, tabs, rows, footer link. Figma only](https://docs.atomus.io/components/notifications/) [Progress bar Progress of a known task or quota. React + Figma](https://docs.atomus.io/components/progress-bar/) [Loading & skeleton Spinners for short waits and skeletons that hold the layout while content loads. Figma only](https://docs.atomus.io/components/loading-skeleton/) [Empty state Fills empty pages and tables, and says what to do next. React + Figma](https://docs.atomus.io/components/empty-state/) ## Navigation [Navigation App header, sidebar and nav items. React + Figma](https://docs.atomus.io/components/navigation/) [Tabs Switch between views. Underline, pill or segmented. React + Figma](https://docs.atomus.io/components/tabs/) [Breadcrumb Breadcrumb trail; last segment is Current. Figma only](https://docs.atomus.io/components/breadcrumb/) [Pagination & carousel Pagination for tables and lists, and carousel controls for marketing galleries. Figma only](https://docs.atomus.io/components/pagination/) [Progress steps Multi-step flow indicator for onboarding, checkout and setup wizards. Figma only](https://docs.atomus.io/components/progress-steps/) ## Data display [Table Rows of records with sorting and selection. React + Figma](https://docs.atomus.io/components/table/) [Badge & Tag Status labels and removable chips. React + Figma](https://docs.atomus.io/components/badge-tag/) [Avatar People and workspaces, 24 to 64px, with initials fallback and status. React + Figma](https://docs.atomus.io/components/avatar/) [Metric card A single KPI for dashboards. React + Figma](https://docs.atomus.io/components/metric-card/) [Activity item A feed or notification row: who did what, and when. Figma only](https://docs.atomus.io/components/activity-item/) [Code snippet Copyable code, Roboto Mono. Figma only](https://docs.atomus.io/components/code-snippet/) [Tree view Nested, expandable lists for files, folders and navigation hierarchies. Figma only](https://docs.atomus.io/components/tree-view/) [Messaging Chat panel: header, Messages slot, composer. Figma only](https://docs.atomus.io/components/messaging/) ## Overlays [Modal A dialog that blocks the page until the person decides. React + Figma](https://docs.atomus.io/components/modal/) [Dropdown menu A list of actions that opens from a button. React + Figma](https://docs.atomus.io/components/dropdown-menu/) [Tooltip & popover Dark tooltip; arrow None, Top, Bottom, Left, Right. Figma only](https://docs.atomus.io/components/tooltip-popover/) [Drawer & slideout Panel from right, left or bottom (mobile sheet); content is a slot. Figma only](https://docs.atomus.io/components/drawer/) [Command menu ⌘K command palette; results are a slot. Figma only](https://docs.atomus.io/components/command-menu/) ## Layout & content [Card Groups related content and actions. Outlined, elevated or filled. React + Figma](https://docs.atomus.io/components/card/) [Headers & dividers Top of an app page: breadcrumb, title, description, actions, divider or tabs. Figma only](https://docs.atomus.io/components/headers-dividers/) ## Media & assets [Atomus icons Icon sets beyond the UI icons: featured icons, brand and payment marks, flags, file types, folders, integrations and star ratings. Figma only](https://docs.atomus.io/components/atomus-icons/) [Shared assets Mockups and annotation kit used across product and marketing files: credit card, video player, email template, status tags and spec annotations. Figma only](https://docs.atomus.io/components/shared-assets/) ## Charts [Charts Line, bar, pie, radar and gauge charts for dashboards and reports, with a shared legend item. Figma only](https://docs.atomus.io/components/charts/) ## AI [Conversation A full AI conversation built from the Agent kit: welcome state, reasoning, a tool call, an approval and a cited answer. React + Figma](https://docs.atomus.io/components/ai-conversation/) [Prompt input The composer of an AI chat: auto-growing text, attachments, a toolbar slot, send and stop, and / or @ menus. React + Figma](https://docs.atomus.io/components/ai-prompt-input/) [Message One turn in a conversation, with the speaker, status, actions and branches. React + Figma](https://docs.atomus.io/components/ai-message/) [Streaming text & shimmer Text that renders as it streams, with a caret and calm screen-reader announcements, and a shimmer for status lines. React + Figma](https://docs.atomus.io/components/ai-streaming-text/) [Reasoning A collapsible “Thought for 12s” disclosure with the agent’s steps. React + Figma](https://docs.atomus.io/components/ai-reasoning/) [Tool call One function call by the agent: name, status, duration, input and output. React + Figma](https://docs.atomus.io/components/ai-tool-call/) [Approval Human-in-the-loop confirmation before an agent acts: approve, deny, or edit then approve. React + Figma](https://docs.atomus.io/components/ai-approval/) [Sources & citations Numbered inline citations with preview cards, and the list of sources behind an answer. React + Figma](https://docs.atomus.io/components/ai-sources/) [Suggestions Follow-up prompts as chips and prompt starters as cards, to send or insert. React + Figma](https://docs.atomus.io/components/ai-suggestions/) [Model selector A Select for AI models with provider icons, descriptions and capability badges. React + Figma](https://docs.atomus.io/components/ai-model-selector/) [Feedback Thumbs up and down on an AI reply, with an optional reason form. React + Figma](https://docs.atomus.io/components/ai-feedback/) [AI label Marks AI-generated content and opens an explainability popover, with Revert to AI after edits. React + Figma](https://docs.atomus.io/components/ai-label/) [Context meter How much of the model’s context window a conversation uses, and what it cost. React + Figma](https://docs.atomus.io/components/ai-context-meter/) --- # Choosing a component > Every Atomus component with its purpose and React export, other names, and decision trees. URL: https://docs.atomus.io/components/choosing/ Generated from [`guidelines/overview-components.md`](https://github.com/StanVisionAgency/atomus/blob/main/guidelines/overview-components.md). Agents read the same file before they pick a component. Use this file to pick the right component before you write code or design. For props and rules, open the component’s file in `components/`. Its **React API** section lists every prop, value and default. **React** names the export from `@stanvision/atomus-react`. “—” means the component is **Figma only**. Don’t import it in code. Compose it from tokens and the React components named in its guideline file. ## Catalogue ### Actions | Component | Use it for | React | Guideline | | ------------ | --------------------------------------------------------------------------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------- | | Button | Triggering an action. Hierarchies primary · secondary · outline · tertiary · link; sizes xs–xl (24–56px). | `Button` | [`components/button.md`](https://docs.atomus.io/components/button/) | | Button icon | Icon-only action in toolbars and rows. Always has an `aria-label`. | `Button iconOnly` | [`components/button.md`](https://docs.atomus.io/components/button/) | | Button group | 2–5 joined, mutually exclusive options (view or filter switch). | — (use `Tabs variant="segmented"`) | [`components/button-group.md`](https://docs.atomus.io/components/button-group/) | ### Forms and inputs | Component | Use it for | React | Guideline | | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------- | | Input | Single-line text, email, number, search. Sizes sm · md · lg (32 · 40 · 48). | `Input` | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Textarea | Multi-line text. | — | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Number input, Phone input, Payment input, Verification code input, Tags input | Formatted text entry. | — | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Select | One value from a list (6+ options, or when space is tight). | `Select` | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Multi-select | Several values from a list, shown as tags. | — | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Slider | A value or range on a continuous scale. | — | [`components/input-select.md`](https://docs.atomus.io/components/input/) | | Checkbox | Independent yes/no choices; several can be on. | `Checkbox` | [`components/checkbox-radio.md`](https://docs.atomus.io/components/checkbox-radio-toggle/) | | Radio | One choice from 2–5 visible options. | `Radio` | [`components/checkbox-radio.md`](https://docs.atomus.io/components/checkbox-radio-toggle/) | | Toggle | A setting that applies immediately. | `Toggle` | [`components/toggle.md`](https://docs.atomus.io/components/checkbox-radio-toggle/) | | Date input, Date picker, Calendar day | Picking a date or a range. | `DatePicker`, `Calendar` | [`components/date-time-pickers.md`](https://docs.atomus.io/components/date-picker/) | | File upload, File upload item | Drop zone and per-file progress. | — | [`components/empty-state-file-upload.md`](https://docs.atomus.io/components/file-upload/) | | Color picker, Color swatch | Picking a colour. | — | [`components/tree-editor-color-picker.md`](https://docs.atomus.io/components/color-picker/) | | Text editor, Editor toolbar button | Rich-text editing. | — | [`components/tree-editor-color-picker.md`](https://docs.atomus.io/components/color-picker/) | ### Feedback | Component | Use it for | React | Guideline | | -------------------------------------- | --------------------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------- | | Alert | A persistent message about a page, section or form. | `Alert` | [`components/message-alert.md`](https://docs.atomus.io/components/alert/) | | Toast | A short, temporary confirmation of something the user just did. | `Toast`, `ToastProvider`, `useToast` | [`components/message-alert.md`](https://docs.atomus.io/components/alert/) | | Banner | One product- or account-wide announcement across the top of the page. | — | [`components/metrics-feeds.md`](https://docs.atomus.io/components/banner/) | | Notifications panel, Notification item | The bell-icon inbox. | — | [`components/message-alert.md`](https://docs.atomus.io/components/alert/) | | Progress bar, Progress circle | Progress of a task with a known percentage. | `ProgressBar` (bar only) | [`components/progress-loading.md`](https://docs.atomus.io/components/progress-bar/) | | Loading indicator | A spinner for short waits of unknown length. | — (`Button loading` for buttons) | [`components/progress-loading.md`](https://docs.atomus.io/components/progress-bar/) | | Skeleton | A placeholder that holds the layout while content loads. | — | [`components/progress-loading.md`](https://docs.atomus.io/components/progress-bar/) | | Empty state | An empty page, table or panel, with an icon, explanation and action. | `EmptyState` | [`components/empty-state-file-upload.md`](https://docs.atomus.io/components/file-upload/) | ### Navigation | Component | Use it for | React | Guideline | | ---------------------------- | --------------------------------------------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------- | | Sidebar navigation, Nav item | The main app navigation (280px, or a 72px rail). | `SidebarNavigation`, `NavItem` | [`components/navigation.md`](https://docs.atomus.io/components/navigation/) | | App header | Top bar of an app: brand, links, search, notifications, account. | `AppHeader` | [`components/navigation.md`](https://docs.atomus.io/components/navigation/) | | Tabs, Tab | Switching between views of the same content (underline · pill · segmented). | `Tabs` | [`components/tabs.md`](https://docs.atomus.io/components/tabs/) | | Vertical tabs | Settings sub-navigation. | — (list of `NavItem`) | [`components/tabs.md`](https://docs.atomus.io/components/tabs/) | | Breadcrumb | The path to the current page in deep hierarchies. | — | [`components/breadcrumb.md`](https://docs.atomus.io/components/breadcrumb/) | | Pagination, Carousel | Paging tables and lists; stepping through galleries. | — | [`components/pagination.md`](https://docs.atomus.io/components/pagination/) | | Progress steps, Step | A multi-step flow (onboarding, checkout, setup). | — | [`components/progress-loading.md`](https://docs.atomus.io/components/progress-bar/) | | Header navigation, Footer | Website header and footer. | — | [`website-sections.md`](https://docs.atomus.io/website-sections/) | ### Data display | Component | Use it for | React | Guideline | | ---------------------------------------- | --------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | | Table (header cell, cell) | Rows of records you compare, sort and select. | `Table` | [`components/table.md`](https://docs.atomus.io/components/table/) | | Filter bar | Search, filters and actions above a table. | — | [`components/table.md`](https://docs.atomus.io/components/table/) | | Badge | A short status or count label. | `Badge` | [`components/badge.md`](https://docs.atomus.io/components/badge-tag/) | | Tag | A removable value: filter, skill, recipient. | `Tag` | [`components/badge.md`](https://docs.atomus.io/components/badge-tag/) | | Avatar, Avatar group, Avatar label group | A person or workspace. | `Avatar` | [`components/avatar.md`](https://docs.atomus.io/components/avatar/) | | Metric card | A KPI: number, change and period. | `MetricCard` | [`components/metrics-feeds.md`](https://docs.atomus.io/components/banner/) | | Activity item | A feed row: who did what, when. | — | [`components/metrics-feeds.md`](https://docs.atomus.io/components/banner/) | | Code snippet | Copyable code. | — | [`components/metrics-feeds.md`](https://docs.atomus.io/components/banner/) | | Tree view, Tree item | Nested, expandable hierarchies (files, categories). | — | [`components/tree-editor-color-picker.md`](https://docs.atomus.io/components/color-picker/) | | Chat, Message bubble, Message input | Messaging. | — | [`components/messaging.md`](https://docs.atomus.io/components/messaging/) | | Charts | Line, bar, pie, radar, activity gauge, legend item. | — | [`components/charts.md`](https://docs.atomus.io/components/charts/) | ### Overlays | Component | Use it for | React | Guideline | | ------------------------ | ------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------- | | Modal | A focused task or decision that blocks the page. Sizes 400 · 544 · 720px. | `Modal` | [`components/modal.md`](https://docs.atomus.io/components/modal/) | | Dropdown menu, Menu item | A short list of actions from a trigger. | `DropdownMenu`, `MenuItem` | [`components/menu.md`](https://docs.atomus.io/components/dropdown-menu/) | | Context menu | Right-click actions. | `DropdownMenu` | [`components/menu.md`](https://docs.atomus.io/components/dropdown-menu/) | | Tooltip | A one-sentence hint on hover or focus. | — | [`components/tooltip-popover.md`](https://docs.atomus.io/components/tooltip-popover/) | | Drawer, Slideout menu | A side panel for details or secondary forms. | — | [`components/slideout-command-menu.md`](https://docs.atomus.io/components/drawer/) | | Command menu | ⌘K search and actions. | — | [`components/slideout-command-menu.md`](https://docs.atomus.io/components/drawer/) | ### Layout and content | Component | Use it for | React | Guideline | | ---------------------------------- | ------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------- | | Card (Card header, Section footer) | A bounded group of related content with optional header and footer. | `Card` | [`components/card.md`](https://docs.atomus.io/components/card/) | | Inline CTA | A call to action inside app pages or articles. | — | [`components/card.md`](https://docs.atomus.io/components/card/) | | Page header | Top of an app page: breadcrumb, title, description, actions, tabs. | — | [`components/headers-dividers.md`](https://docs.atomus.io/components/headers-dividers/) | | Section header | A heading for a section inside a page. | — | [`components/headers-dividers.md`](https://docs.atomus.io/components/headers-dividers/) | | Divider | A rule between groups, optionally with a label. | — | [`components/headers-dividers.md`](https://docs.atomus.io/components/headers-dividers/) | | Website sections | Hero, features, pricing, FAQ, CTA … 30 responsive sections. | — | [`website-sections.md`](https://docs.atomus.io/website-sections/) | ### Media and assets | Component | Use it for | React | Guideline | | ------------- | -------------------------------------------------------------------------------- | ----- | --------------------------------------------------------------------------------- | | Featured icon | An icon in a tinted circle or square for empty states, modals and feature lists. | — | [`components/atomus-icons.md`](https://docs.atomus.io/components/atomus-icons/) | | Icon sets | Brand, payment, flag, file-type, folder and integration icons; star rating. | — | [`components/atomus-icons.md`](https://docs.atomus.io/components/atomus-icons/) | | Shared assets | Mockups and annotation kit (design files only). | — | [`components/shared-assets.md`](https://docs.atomus.io/components/shared-assets/) | ### AI (Agent kit) Components for AI products: chat, copilots and agents. They mark AI content with the AI layer (`--color-bg-ai-subtle`, `--color-border-ai`, `--color-text-ai`, `--gradient-ai`) and take plain props, so they work with any AI SDK. | Component | Use it for | React | Guideline | | ------------------------ | ----------------------------------------------------------------------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------- | | Conversation | The pattern: header, `role="log"` thread of Messages, welcome state with starters, docked Prompt input. | — (compose the parts) | [`components/ai-message.md`](https://docs.atomus.io/components/ai-conversation/) | | Prompt input | The chat composer: auto-growing text, attachments, toolbar slot, Send ↔ Stop, `/` and `@` menus. | `PromptInput` | [`components/ai-prompt-input.md`](https://docs.atomus.io/components/ai-prompt-input/) | | Message | One turn: user, assistant, system or tool; streaming, error and stopped states; copy, regenerate, edit, branches. | `Message` | [`components/ai-message.md`](https://docs.atomus.io/components/ai-conversation/) | | Streaming text, Shimmer | A reply that renders as it streams, with a caret and batched announcements; a shimmer for status lines. | `StreamingText`, `Shimmer` | [`components/ai-streaming-text.md`](https://docs.atomus.io/components/ai-streaming-text/) | | Reasoning | A collapsible “Thought for 12s” disclosure with the agent’s steps. | `Reasoning` | [`components/ai-reasoning.md`](https://docs.atomus.io/components/ai-reasoning/) | | Tool call | One function call: name, status, duration, input and output. | `ToolCall` | [`components/ai-tool-call.md`](https://docs.atomus.io/components/ai-tool-call/) | | Approval | Human-in-the-loop confirmation before an agent acts; risk level, edit then approve, always allow. | `Approval` | [`components/ai-approval.md`](https://docs.atomus.io/components/ai-approval/) | | Sources, Inline citation | Numbered citations with preview cards and the list of sources behind an answer. | `Sources`, `InlineCitation` | [`components/ai-sources.md`](https://docs.atomus.io/components/ai-sources/) | | Suggestions | Follow-up chips and prompt-starter cards that send or insert a prompt. | `Suggestions` | [`components/ai-suggestions.md`](https://docs.atomus.io/components/ai-suggestions/) | | Model selector | Choosing the AI model, with provider icons and capability badges. | `ModelSelector` | [`components/ai-model-selector.md`](https://docs.atomus.io/components/ai-model-selector/) | | Feedback | Thumbs up / down on a reply, with a reason form. | `Feedback` | [`components/ai-feedback.md`](https://docs.atomus.io/components/ai-feedback/) | | AI label | Marks AI-generated content; explainability popover; “Revert to AI” after edits. | `AILabel` | [`components/ai-label.md`](https://docs.atomus.io/components/ai-label/) | | Context meter | Context-window usage and cost of a conversation. | `ContextMeter` | [`components/ai-context-meter.md`](https://docs.atomus.io/components/ai-context-meter/) | ## Also called If a request uses one of these names, use the Atomus component on the right. | You may hear | Atomus component | | ----------------------------------------------------------------- | --------------------------------------------------------------------------------- | | dialog, popup, lightbox, confirm dialog | Modal | | sheet, side sheet, side panel, off-canvas, flyout | Drawer | | snackbar, notification (temporary), flash message | Toast | | callout, inline message, notice | Alert | | announcement bar, top bar message | Banner | | chip, pill, token (removable) | Tag | | pill, label, status, lozenge (read-only) | Badge | | switch | Toggle | | dropdown (picks a value), picker | Select | | dropdown (runs actions), kebab menu, overflow menu, action menu | Dropdown menu | | right-click menu | Context menu | | combobox, autocomplete, typeahead | Select. A searchable combobox is not in Atomus yet (see the decision tree below). | | segmented control, toggle group | Tabs `variant="segmented"` (code) / Button group (Figma) | | stepper, wizard | Progress steps | | spinner, loader | Loading indicator (`Button loading` inside buttons) | | placeholder, shimmer | Skeleton | | zero state, blank slate, no results | Empty state | | dropzone, uploader | File upload | | data grid, data table, list view | Table | | KPI, stat, scorecard | Metric card | | navbar, top nav (app) | App header | | navbar, site header (website) | Header navigation | | side nav, rail | Sidebar navigation | | panel, tile, box, container | Card | | separator, hr, rule | Divider | | page title, page heading | Page header | | command palette, ⌘K, spotlight | Command menu | | hint, info bubble | Tooltip | | accordion | FAQ item (website) | | range slider | Slider | | image slider, gallery | Carousel | | user picture, profile image | Avatar | | rating | Star rating | | rich text editor, WYSIWYG | Text editor | | chatbot, assistant panel, copilot, chat UI, AI chat | Conversation (Message + Prompt input) | | composer, chat input, prompt box, prompt bar | Prompt input | | chat bubble, AI response, turn | Message | | typing indicator, thinking indicator, “Thinking…” | Shimmer (or Reasoning with `status="thinking"`) | | chain of thought, thoughts, plan | Reasoning | | function call, tool use, tool invocation, MCP tool | Tool call | | confirmation (agent), human-in-the-loop, permission prompt | Approval | | citations, references, footnotes (AI) | Sources, Inline citation | | quick replies, follow-ups, prompt starters, conversation starters | Suggestions | | model picker, model switcher, LLM dropdown | Model selector | | thumbs up / down, rate response | Feedback | | AI badge, sparkle badge, “AI generated” tag | AI label | | token counter, usage meter, context window | Context meter | ## Decision trees ### Which button hierarchy? 1. Is it **the** main action of this view (screen, modal, card, form)? → `primary`. There is only one per view. 2. Is it an alternative to the main action (“Cancel”, “Save draft”, “Export”)? → `outline` on white surfaces, `secondary` on grey or in dense groups. 3. Is it in a toolbar, table row, card header or another dense spot? → `tertiary` (often `iconOnly` with an `aria-label`). 4. Does it sit inside a sentence or look like a link (“Learn more”, “Edit”)? → `link`. 5. Is it destructive? → In a confirmation Modal (`type="destructive"`) the confirm button is the `primary`. Elsewhere use `outline` and confirm first. Never use `link` for destructive actions. 6. Does it go to another page? → Use a link (``, or `NavItem` in navigation), not a Button. Sizes: `md` in product UI, `sm`/`xs` in tables and toolbars, `lg`/`xl` on marketing pages. Match the inputs on the same row. ### Input, Textarea, Select, Multi-select, Combobox, Radio, Checkbox or Toggle? 1. Is the answer free text? - One line → **Input** (`type="email"`, `"number"`, `"search"` …). - Several lines → **Textarea** (Figma only; in code a native `