Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Components

46 components in @roger-emerson/ploxum-primitives (not yet on npm; vendor it per Getting started). Live, interactive versions of every component live on Storybook. 19 composites + templates ship via the registry CLI (npx ploxum add <name>).

Primitives (25)

ComponentWhat it doesStorybook
PloxumProviderDensity + theme + mode context, MotionConfig bridge, localStorage persistenceOpen ↗
Button4 variants (primary, secondary, ghost, destructive), 2 sizesOpen ↗
InputDensity-aware, leading/trailing slots, aria-invalidOpen ↗
SelectNative <select> styled to the palette, ChevronDown trailingOpen ↗
CheckboxTri-state (checked / indeterminate / unchecked)Open ↗
SwitchDensity-aware, focus ring matches token specOpen ↗
SliderSingle + range, tabular numerals on value labelsOpen ↗
Badge6 tones (neutral, amber, info, success, warning, critical)Open ↗
StatusPipShape + color (circle/square/triangle/X) — never color aloneOpen ↗
ProgressRingPercentage ring with role="meter", ARIA-labelledOpen ↗
SpinnerIndeterminate, opacity-only pulse — no transformOpen ↗
KbdKeyboard shortcut chip, monospaceOpen ↗
IconSelf-hosted Material Outlined glyph set (@roger-emerson/ploxum-icons, no lucide runtime dep) + size-variant wrapper; strokeWidth is a no-opOpen ↗
SeparatorHorizontal + vertical, subtle border toneOpen ↗
Tooltip (+ TooltipProvider)Radix-backed, 280ms reveal, follow-cursor optionOpen ↗
Gauge240° arc gauge — tone derived from warning/critical thresholdsOpen ↗
TrendDeltaSigned delta with directional glyph; invertPolarity for down-is-good metricsOpen ↗
MeterLinear utilization bar with threshold ticks + optional segmentsOpen ↗
SkeletonLoading placeholder — opacity-only pulse, static under reduced motionOpen ↗
Avatar (+ AvatarStack)Operator avatar with initials fallback + StatusPip; overlapping stack with +N overflow; colorFromName name-hash tintOpen ↗
HoverCardRadix-backed pointer-only hover preview — rich card on dwell, focus-safe, not a menuOpen ↗
DisclosureHeadless collapsible — controlled/uncontrolled, trigger + trailing slots, chevron rotationOpen ↗
AnimatedNumberCount-up tween for live values — reduced-motion snaps to final, tabular-numsOpen ↗
MarqueeSeamless infinite scroller (h/v) — pause-on-hover, edge fade, manual-scroll under reduced motionOpen ↗
ScrollAreaOverlay scrollbars on Radix — thin token thumb, hover-reveal, no reserved widthOpen ↗

Patterns (21)

ComponentWhat it doesStorybook
KpiTileHeadline number, label, delta, sparkline · tabular numerals · animate counts the value up · hoverContent adds a HoverCard breakdownOpen ↗
CardTitle / subtitle / toolbar slots, optional amber accentOpen ↗
AlertCardSeverity + status + entity + timestampOpen ↗
BannerFull-width P1 ribbon — motionless per heuristic 3Open ↗
EmptyStateIcon + title + description + action slotOpen ↗
TabBararia-selected, indicator bar, keyboard navOpen ↗
DialogRadix-backed, focus trap, Esc-to-closeOpen ↗
PopoverRadix-backed, does NOT trap focus (per heuristic 9)Open ↗
Toast (+ ToastProvider)Bottom-left stack ≤3, auto-dismiss for infoOpen ↗
SidebarNavSlot composables: Root + Group + Item + Footer + BrandOpen ↗
TopBarSlot composables: Root + Section + LivePill + ReplayPill + BreadcrumbsOpen ↗
CommandPalettecmdk wrapper · Root + Input + List + Group + ItemOpen ↗
SegmentedControlExclusive-choice radiogroup, arrow-key nav, sm/mdOpen ↗
DropdownMenuRadix-backed compound menu · Trigger + Content + Item + Separator + Label, Kbd shortcut slotOpen ↗
ContextMenuRadix-backed right-click menu · items, shortcuts, checkbox/radio, sub-menus · shares the DropdownMenu overlayOpen ↗
SheetEdge-anchored slide-out panel (Radix Dialog) · side/size, scrim, reduced-motion-gated slideOpen ↗
BottomSheetSnap-point bottom sheet (peek/half/full) · velocity-aware drag, progressive scrim, keyboard controlOpen ↗
ComboboxSearchable single/multi-select on cmdk-in-Popover · keyboard nav, disabled optionsOpen ↗
StepperHorizontal/vertical phase tracker · complete/active/upcoming, animated connectorsOpen ↗
SlideToConfirmDrag-to-confirm track for destructive actions · spring thumb, keyboard fallbackOpen ↗
CountdownButtonTimer/cooldown confirm button · autostart, cooldown, composes ButtonOpen ↗

Plus the theme picker trio shipped from the same package — see Themes:

ComponentWhat it doesStorybook
ThemeSwitcherDropdown listing registered themes with swatch rowsOpen ↗
ModeToggleSun/Moon cycle button; renders null on single-mode themesOpen ↗
ThemePaletteInline rail of theme cards for catalog UIsOpen ↗

Composites + templates (registry, 19 items)

These ship via the ploxum CLI rather than npm so consumers own the source.

npx ploxum init
npx ploxum add kpi-strip alert-center data-table ai-assistant-panel
npx ploxum add event-stream status-board timeline chart-frame pie-chart time-range-picker
npx ploxum add property-tree notification-menu resizable map-viewport sheet sidebar
npx ploxum add command-shell focal-canvas-page detail-drawer
ItemTierWhat it doesStorybook
kpi-stripcompositeHorizontally-scrolling KpiTile row with consistent densityOpen ↗
alert-centercompositeFilterable AlertCard list — filters by severity, status, entityOpen ↗
data-tablecompositeTanStack Virtual table; virtualized from day one (24-row threshold)Open ↗
ai-assistant-panelcompositeStreaming markdown chat panel with DOMPurify sanitizationOpen ↗
event-streamcompositeLive activity feed with follow mode — newest events pin to the bottomOpen ↗
status-boardcompositeDensity-aware system-health grid — pips, deltas, sparklinesOpen ↗
timelinecompositeShow timeline — phase bands, scrubbable playhead, cue markers, GO LIVE returnOpen ↗
chart-framecompositeCard-framed recharts wrapper + token-reading chartThemeOpen ↗
time-range-pickercompositePopover time-window scoper — presets + range calendarOpen ↗
property-treecompositeRecursive nested tree on Disclosure — branch nodes disclose, leaf nodes select, pips + trailing KPIsOpen ↗
notification-menucompositeBell-anchored dropdown — rows with inline acknowledge / archive / deleteOpen ↗
resizablecompositeDraggable split panels (react-resizable-panels v4) — token rail, grip chip, persisted layoutOpen ↗
map-viewportcompositeZoom/pan chrome around a map SVG — wheel-zoom, clamped pan, imperative apiRefOpen ↗
sheetcompositeshadcn-aligned Sheet — flat SheetContent/Header/Footer/Title/Description over the Sheet primitive, data-slotsOpen ↗
sidebarcompositeCollapse-to-icon rail — SidebarProvider context, Cmd/Ctrl+B + localStorage, tooltip labels when collapsedOpen ↗
command-shelltemplate4-zone layout (sidebar + topbar + focal canvas + collapsible right rail)Open ↗
focal-canvas-pagetemplateSingle-focus page with optional right railOpen ↗
detail-drawertemplateRight-rail drawer that pushes (never overlays) the focal canvasOpen ↗

Catalog endpoint: registry.ploxum.com/r/index.json.

See it composed

The live demo wires every shipping component into a working operational dashboard across its WorkCentres (Overview, Venue, Security, Production, Workforce, Finance, and more) plus the themes catalog.