Reference
Components
The whole @xoji/astro contract, rendered from the live
xoji-default theme. Nothing on this page is a mockup.
The manifest is the source of truth: every card, every reference page,
every swatch below is generated from it. The coverage badge isn't a
promise, it's a measurement: a per-component check that the algorithm
produces every token the component asks for.
50
components
8
categories
3
libraries
276
tokens
Shell
The app frame: the chrome this very site is rendered in.
AppShell
The three-row application scaffold: toolbar over a left/main/right body over a status bar.
Toolbar
The header bar: a title plus structured start, center, and end regions for actions and navigation.
Dock
The side rail: a vertical panel pinned to the left or right edge of the shell.
Statusbar
The footer status strip: a compact, monospace row of status items separated by flexible spacers.
Layout
The primitives that arrange everything else: stacks, clusters, grids.
Card
A surface container that groups related content, with optional header and footer regions.
Panel
A titled content region: a header with a configurable heading and actions, a body, an optional footer, and an optional collapsible or scrollable form.
Separator
A hairline divider: horizontal or vertical, optionally with a centered label, in two weights.
Stack
A vertical flex column with a token-driven gap, the primitive for stacking content.
Cluster
A horizontal flex row that wraps, for toolbars, tag lists, and inline action groups.
Grid
A two-dimensional CSS grid: fixed columns or responsive auto-fit, with a token-driven gap.
Section
A page band or a framed stage: the full-width strips and demo grounds a page is built from.
Eyebrow
The small uppercase kicker that sits above a heading.
Card Link
A whole card that is a single link: the click target is the card, not a button inside it.
Splitter
A draggable divider that resizes an adjacent pane, with configurable bounds and steps.
Controls
The things people click, toggle, and drag: buttons, switches, checkboxes, radios, sliders.
Button
A clickable action: five variants across six semantic tones.
Switch
An on/off toggle that applies immediately, with an accessible name and optional state labels.
Checkbox
A styled native checkbox: checked, indeterminate, and disabled states.
Radio
A single-choice input: a styled native radio plus a group that manages roving focus and arrow-key navigation.
Slider
A draggable range control for choosing a single value between a min and max, with full keyboard support.
Segmented Control
A single-select toggle bar: pick one of a few options from a connected button group.
Accordion
A stack of collapsible sections, one or many open at a time, driven by pointer or keyboard.
Swatch
A color chip pairing a colored dot with an optional label and value.
Form
The fields people fill in and the structure that binds them.
Field
A labelled text input with helper text, validation, adornments, and built-in clear and reveal actions.
Select
A styled native dropdown: .xoji-control chrome, a custom chevron, and a label, with valid and invalid states across three sizes.
Textarea
A multi-line text input: styled, labelled, and resizable, in three sizes with an invalid state.
FormGroup
A label / description / error scaffold that wraps any slotted control and wires the accessibility plumbing.
Color Picker
An inline HSV color picker: a saturation/brightness field, a hue track with an opt-in alpha track, optional per-channel sliders for any model, and a switchable multi-format value field.
Number Input
A numeric field with stepper buttons, bounds, and step snapping, driven by pointer or keyboard.
Feedback
The signals that say what's happening: alerts, progress, spinners, toasts.
Alert
An inline message banner with an optional severity glyph, a title, actions, and a dismissible form — color and meaning on independent axes.
Spinner
An indeterminate loading indicator: a spinning ring in any of the six semantic tones, in three sizes.
Skeleton
A shimmering loading placeholder in four shapes: text, line, block, and circle.
Toast
A transient notification that announces itself and slips away — color and meaning on independent axes, in a live-region stack.
Progress
A determinate progress meter: a linear bar or a circular ring, across six semantic tones.
Overlay
The layers above the page: dialogs, tooltips, toasts.
Tooltip
A hover/focus hint that floats a short description beside its trigger, on any of four sides.
Dialog
A centered modal built on the native <dialog> element: scrim, focus trap, and Esc-to-close come for free.
Menu
A menu button: a trigger that opens an anchored popup list of actions.
Display
The shapes that surface structured content: tables, avatars, badges.
Badge
A compact status or label chip: three fills across six semantic tones and twelve named hues.
Heading
A semantic section heading whose visual size is decoupled from its document level.
Text
A body-text primitive: paragraph or inline span across four sizes, four weights, three leadings, and four tones.
Avatar
An identity chip: a photo when one loads, a tinted initials-or-icon fallback when it doesn't.
Table
A styled data table around native <table>: zebra, bordered, hover, sticky header, and a sortable-header affordance.
Stat
A single metric: a prominent value with its label, optional trend delta, and caption.
Kbd
A keycap for the keys in a shortcut.
Code
A read-only, syntax-highlighted code block themed entirely from the code-token family.