Go to page
Search modules and pages, then press Enter to navigate.
Stratex design system
Wrapper components built on shadcn primitives, styled with the Stratex token system. Press D outside any input to toggle light / dark mode. Use the sidebar to jump to a category; sub-section anchors are listed inside each section.
Badges
Pills, score circles, and segment badges.
Badge
The one status/tag pill. Ten semantic pastel tones × four variants (soft is the default), three sizes, three shapes, optional dot/icon and removable ×. Lime is the BRAND tone — success is green, active is teal.
Status → tone registry
Statuses never hardcode a tone — components ask the single map file (components/badges/status-tone-map).
ScoreCircle · rings · ScoreChip
Numeric score chips on the badge palette. Tone auto-derives from the value (90+ good · 75 ok · 50 watch · 25 risk · <25 critical); `ring` renders conic progress; ScoreChip pairs a circle with a label.
Segment & sequence badges
Connected shapes make multipart records feel related — broken shifts, workflow sequences. ShiftSegmentBadge renders nothing when `segment` is null.
Counts & notification dots
CountDot caps at `max` (99+), hides at zero, and overlays icon buttons (see the header Bell via HeaderTool.count).
Trend badges
Direction is visual; sentiment comes from `tone` — up isn't always good.
Avatar chips
Identity chip — avatar + name + optional trailing badge slot.
Chart legends & stacked bars
Category colours come from the badge palette borders; legends render as dots or ghost pills.
- In progress14
- Completed13
- Open partial8
- Open shift6
- Cancelled4
- In progress · 31%
- Completed · 28%
- Open partial · 17%
Filter & choice chips
SELECTION grammar — selected uses the dark ink fill, never a semantic tone, so a selected 'Critical' filter can't read as positive.
Cross-cutting patterns
Verification, AI recommendation, and the worst-tier rule (SEVERE / CRITICAL / Overdue / Urgent go solid + icon via worstTierBadgeProps).
In context — roster rows
The pieces together: status badges, segment badges, score circles, counts, and a distribution bar on real-shaped rows.
Morning support · Addie Cassin
08:00–12:00 · Community access
Personal care · Mia Tran
13:30–15:30 · Worker not assigned
Evening support · Noah Reed
18:00–22:00 · Possible overlap
Removable tags
Tags are Badges: outline variant with an optional trailing × (onRemove) and leading icon.
Buttons
General-purpose pill button plus the icon-only round tap-target.
Avatar
Identity-encoded initials avatars.
InitialsAvatar
Five sizes; deterministic color hashed from name; optional tint.
Charts
Bespoke Stratex visualisations.
ScoreSliceBar
Flat horizontal meter built from N slices.
RiskMatrix
5×5 likelihood × consequence; numbered dots per plotted risk.
Cards
Surface tiles — generic Card, plus opinionated SectionCard / StatTile / EntityListCard.
Card
Eight variants × interactive / selected / asButton states. Generic surface; SectionCard is the opinionated header-composition sibling.
solid
Card surface, base elevation.
solid-elevated
solid-selected
glass-soft
glass-softer
glass-elevated
glass-whisper
dashed-block
Default
Same data, unselected.
selected={true}
Promotes to solid-selected regardless of variant.
SectionCard
Glassmorphic surface with optional eyebrow + title + description + actions header.
Wellbeing summary
Most recent assessment from 12 Apr 2026.
Aroha is in good health overall. Sleep and mood ratings are strong; a small dip in energy on weekends.
Plain variant renders without padding, intended for full-bleed children like timelines.
StatTile
Two emphases; default neutral glass, strong lime fill.
EntityListCard
Title + subtitle + optional pill + 2-column field grid.
Paracetamol 500 mg
2 tablets every 6 hours, max 8 / day
- Prescriber
- Dr Lin
- Started
- 12 Mar 2026
- Notes
- Use for headaches and fever only.
Peanut allergy
Severe — anaphylaxis risk
- Identified
- 2 Aug 2024
- Treatment
- EpiPen on person
Inputs
Form controls — TextInput / Textarea / Select, plus FormField for label + error / hint.
TextInput
Five variants × three sizes; error + disabled states; optional leading and trailing icons.
FormField
Label + control + error/hint. Stacked or inline layout. Re-exported as StxField for back-compat. Wraps any input — TextInput, Textarea, Select shown below.
Required.
Timeline
Vertical-timeline rows.
TimelineRow
One vertical-timeline entry; pass `isLast` to hide the connector.
- 14 Apr 2026· Kenny SmithCare plan review completed
Next review scheduled for 14 May. No changes to medication.
- 12 Apr 2026· Mei LinWellbeing assessment uploaded
Score 88 / 100. Sleep improvement noted.
- 2 Apr 2026· Priya PatelNew goal added
Panels
Definition-list and metric tile grids.
InfoPanel
Definition-list grid; items can span 2 columns. Each item can opt into an inline `action` (typically a small <IconCircleButton>) shown to the right of the value.
Personal details
- Date of birth
- 12 Mar 1989
- NDIS number
- 430 521 998
- Pronouns
- she/her
- Preferred contact
- Mobile
- Mobile phone
- 0400 555 168
- ada@example.com
- Location
- 12 Oak Lane, Christchurch 8013 Primary residence
MetricPanel
Compact tile row for prominent values; 2 / 3 / 4 columns.
Navigation
On-page anchor scroll-spy nav.
Links
Anchor wrappers — inline, breadcrumb, arrow-suffix, back-pill, mailto-pill.
TextLink
Five variants × two sizes. Optional `external` adds target=_blank + a trailing arrow icon.
Calendars
Read-only schedule visualisations.
WeeklyScheduleCalendar
Read-only 7-day calendar; 6am–8pm time axis.
Lists
Domain-specific row components.
Billing line-item rows
Two sibling exports: Selected (left panel) and Available (right panel).
- 01_011_0107_1_1Selected
Assistance with self-care — weekday daytime
$65.09 / hour
Qty 2
$130.18
- 01_002_0107_1_1Selected
Assistance with self-care — weekday evening
$71.61 / hour
Qty 1
$71.61
Selected (editable)
Available
Placeholders
Coming-soon gradient panels.
ModulePlaceholder
Empty-state for modules that aren't built yet — icon, eyebrow, title, description, coming-soon pill.
Form templates and submissions
Build approval workflows and capture incident reports inside Stratex. Available in the next release.
Coming soonEditing
Inline-edit, dialog, and popover-form patterns.
InlineField
Click-to-edit text field with three sizes.
Hover to reveal the pencil icon. Enter / Tab to commit, Esc to cancel.
Alerts
Status banners — info / success / warn / danger × compact / comfortable.
Alert
Four tones × two sizes. Default icons per tone; pass `icon` to override or `icon={null}` to suppress; `action` slot for a trailing button.
Heads up
Saved
Verify before continuing
Action failed
Heads up
Saved
Verify
Action failed
Plan renewal due in 5 days
Custom icon
Icon suppressed
Progress
Capability and goal progress rows.
ProgressRow
Label + ScoreSliceBar + value display; ratio or percent format.
Process
Linear stage trackers.
ProcessBar
Linear stage progress with current / complete / locked states.
Pickers
Searchable inline pickers.
ShiftBillingPicker
Searchable inline picker; greys out items already on the shift.
Heroes
Profile detail hero cards.
ProfileHero
Glassmorphic hero card; breadcrumb + identity + quick-stat tiles.
Aroha Williams(she/her)
StxDialog (family)
Compound shadcn-Dialog wrapper. Header + body + footer + StxField + Cmd+Enter to save.
StxPopoverForm
Anchored mini-form for 1–5 tightly related fields.
StxConfirmDialog
Destructive or warning tone; optional type-to-confirm gate.
Dialogs
Domain-specific dialogs.
ShiftQuickViewDialog
Composes the StxDialog family + Badge. Decoupled from next/navigation via callbacks.
Notifications
Transient surfaces — toasts today; banners and in-app alerts when those land.
Toasts
Sonner-driven toasts. Fired imperatively via toast.success / toast.error / toast.info / toast(). Mounted once at root layout.
Header / Sidebar / Shell
Application-shell wrappers.
Header
Top bar with brand + module tabs (lg+) + utility cluster. Pass-through default tools or replace.
Module tabs are hidden below lg — resize the window to see them.
AppShell
Glues Header + Sidebar + Sheet-based mobile drawer. Designed to wrap a full page; the preview here is a fixed-height frame.
AppShell normally consumes 100svh. The frame below is sized down to fit the showcase; full-page behavior (collapse, mobile drawer) still works inside it. Open this section below lg to try the hamburger.
Go to page
Search modules and pages, then press Enter to navigate.
Page body slot. Pass any content as children.
Mobile drawer
The Sheet drawer AppShell renders at viewport widths below lg, opened from the Header hamburger. Click the trigger below to see the same composition at any viewport.
AuthShell
Auth-route shell — Stratex painterly gradient with a brand wordmark above a centered single-column panel. Used for sign-in and other authentication surfaces.
See AuthShell rendered live on /login. Typical composition: <AuthShell><Card variant="glass-elevated"><LoginForm /></Card></AuthShell>.
Package summary
The full Stratex wrapper surface, for skim-able reference.
badges/— Badge (+ status-tone-map registry), ScoreCircle, ShiftSegmentBadgebuttons/— IconCircleButtonavatar/— InitialsAvatarcharts/— ScoreSliceBar, RiskMatrixcards/— SectionCard, StatTile, EntityListCardtimeline/— TimelineRowpanels/— InfoPanel, MetricPanelnavigation/— ProfileSectionNavcalendars/— WeeklyScheduleCalendarlists/— SelectedLineItemRow, AvailableLineItemRowplaceholders/— ModulePlaceholderediting/— InlineField, StxDialog (family), StxPopoverForm, StxConfirmDialogprogress/— ProgressRowprocess/— ProcessBarpickers/— ShiftBillingPickerheroes/— ProfileHerodialogs/— ShiftQuickViewDialogheader/,sidebar/,app-shell/— Header, Sidebar (+ ProfileMenu), AppShell