The reusable pieces each Page is assembled from. Buttons, multi-choice, lists, cards, status pills, modals, inline elements. Each block lists when to reach for it.
Reusable response components — buttons, choices, lists, links, cards, status
Primary for the one main action. Secondary for alternatives. Ghost for low-emphasis. Destructive for irreversible actions.
For pointers off-platform. Monospace + arrow makes the destination scannable. Internal subdomains (*.stlabs.com) navigate directly; off-domain links trigger the confirmation modal below.
Off-domain links (anything outside *.stlabs.com) prompt before navigation. Mirrors Claude's pattern — keeps users from being yanked off-platform unexpectedly and surfaces the destination URL for verification.
Pick one. Selection state is shown via background fill alone — no dot or checkmark icon (matches Claude's pattern). Always include Decide for me as an opt-out, and pair an Other pill with an inline text input as an escape for unlisted options.
Pick one or more. Same minimal selection state as radio — fill alone, no checkmark. Use the helper "select all that apply" so users know it's not exclusive. Decide for me is omitted (multi-select already supports skipping by selecting nothing).
Sequential steps. Circle badges keep the column structure tidy when steps wrap.
vpn.stlabs.com and click Connect.Bulleted for non-sequential facts. Checklist for "things to confirm" or progress — read-only display, not interactive (use radio/checkbox above for input).
Two-up grid under any answer that cited evidence. Click to open the source.
stlabs differentiator — surface a runbook the responder (or user) can run, not just docs to read.
stlabs differentiator — what the user already tried before opening the ticket. Goes in the responder view.
Compact indicator for retrieval / tool use. Click to expand sources.
For ticket state across list, header, and inline mentions.
When the same answer has platform / role variants. Keep ≤4 tabs.
Code, links, and mentions inside running text.
Quiet, persistent reminder under composer or end of message.