Components
Opinionated, Photon-branded components composed from Base UI primitives. Each is accessible, themeable, and importable on its own.
Components
Finetuned and ready to import from @photon-ai/pho-ui/components/*.
Accordion
Questions that each reveal an answer — the site's FAQ.
Autocomplete
Free-text input with matching suggestions as you type.
Avatar
User or entity image with initials / icon fallback.
Badge
Small non-interactive status label — plan tier, state, count.
Bubble
One message's surface — outlined or inverse, aligned to its author.
Button
Filled / outlined / ghost / effect × default / destructive, sizes, slots, shapes, and loading.
Calendar
A month of days to read or choose from, on React DayPicker.
Card
Bordered content panel with header, body, and optional footer.
Charts
Bars and lines over time: one data contract, one tooltip, ordered series colours.
Chat
An inbox in one card — conversations, the open thread, a composer; wide or compact.
Checkbox
Select one or more options confirmed on submit.
Code Block
Read-only code panel, colored by Shiki, with wrap, copy, and a scrolling fold.
Command
Keyboard-first command menu built on cmdk.
Copy Button
Quiet icon button that copies a value and says so.
Data Table
Records in columns — sortable headers, aligned figures, rows that open a page.
Date Picker
A field that shows the chosen date and opens a calendar to change it.
Description List
Dense label / value facts about one record, mono and copyable.
Dialog
Modal panels with actions footer, focus trap, and enter/exit animation.
Drawer
Panel that slides in from the edge with swipe-to-dismiss.
Error
Server errors (4xx / 5xx) rendered from the Photon problem contract.
Field
Accessible scaffolding around a control — label, hint, error.
Filter Bar
Search field and filter chips that pin above a log list, fully controlled.
Input
Accessible fields with icons, validation, and password reveal.
Input Group
One field surface shared by a text control and its addons.
Kbd
Keyboard keycap for documenting a shortcut.
Log List
One-line rows for requests, deliveries, and messages, with infinite loading.
Menu
Dropdown list of actions opened from a trigger.
Message
One turn in a thread: avatar beside header, bubble, and footer.
OTP Field
One-time-code input with paste and arrow-key navigation.
Phone Input
Searchable country picker + national number field that commits E.164.
Popover
Click-triggered floating panel for rich, interactive content.
Radio Group
Choose exactly one option from a small, visible set.
Scope
Searchable, grouped checklist for what something covers — events, permissions.
Scroll Area
Capped scroll region with overlay scrollbars and progressive edge fade.
Select
Pick one option from a list that opens below the trigger.
Skeleton
Pulsing placeholder bone for loading surfaces.
Spinner
Indeterminate loading ring for in-flight work.
Stat
A figure with its name, how it moved, and a row of them as one card.
Status View
Empty or error region — icon, title, supporting copy, action.
Switch
On/off control for a setting that takes effect immediately.
Theme Toggle
Three-way appearance control — Device, Light, and Dark.
Toast
Transient, non-blocking notification for background actions.
Toggle
Two-state button that stays pressed — Bold / Italic toolbar.
Toggle Group
Related Toggle buttons with shared roving focus.
Trace
A request's spans as a waterfall, with its log lines.
In progress
Not yet finetuned — still settling.
Collapsible
Show or hide a single region with a height animation.
Combobox
Text input that filters a list and commits a value from it.
Context Menu
Actions for a specific element, opened by right-click.
Fieldset
Groups related fields under a shared legend.
Form
Coordinates Fields under one form with constraint validation.
Menubar
Horizontal strip of top-level menus — File / Edit / View.
Meter
Scalar measurement within a known range — quota, disk usage.
Navigation Menu
Primary site navigation with dropdown panels of links.
Notification
Standalone status card with tinted glyph and supporting line.
Number Field
Numeric input with steppers, keyboard step, and scrubbing.
Preview Card
Hover-triggered card that previews what's behind a link.
Progress
How far along a task is — upload, install, multi-step flow.
Separator
Thin rule that divides related groups of content.
Slider
Pick a number — or a range — along a track by dragging.
Tabs
Switch between peer views in the same context.
Toolbar
Row of related controls that acts as a single tab stop.
Tooltip
Brief label on hover or focus — most often naming an icon.