Component specimen
Action button
Trigger one bounded user action
- visible label
- optional icon
- state affordance
- text
- border
- focus
- decision
- risk
Contracts
Framework-neutral component contracts for core controls, regions, and states.
Rendered from current contracts.
Required state names across components.
Token roles tied to component behavior.
Use component contracts to choose the smallest interface primitive that supports the work. These contracts describe behavior, state, and review evidence; they are not a renderer package.
Each specimen pairs a rendered preview with required state coverage, anatomy, token roles, and source evidence from the current contract.
Component specimen
Trigger one bounded user action
Component specimen
Group related actions with clear priority and boundaries
Component specimen
Collect one labeled value with help, error, and disabled affordances
Component specimen
Collect short text or numeric values
Component specimen
Collect longer written input
Component specimen
Choose one value from a bounded option set
Component specimen
Choose independent options from a set
Component specimen
Choose exactly one option from a set
Component specimen
Switch a binary setting on or off
Component specimen
Switch between peer sections without changing the task object
Component specimen
Reveal a compact set of contextual commands
Component specimen
Interrupt the current surface for a bounded decision or focused form
This records the refund decision and receipt.
This records the refund decision and receipt.
Resolve the missing reason before approval.
This records the refund decision and receipt.
Component specimen
Call attention to important status, risk, or required action
Case is ready for review.
Case is ready for review.
Component specimen
Compare structured rows and columns
| Case | Status |
|---|---|
| No cases | Ready |
| No work waiting. | |
| Case | Status |
|---|---|
| RF-1842 | Ready |
| 1 case shown. | |
| Case | Status |
|---|---|
| RF-1842 | Loading |
| 1 case shown. | |
| Case | Status |
|---|---|
| RF-1842 | Needs repair |
| 1 case shown. | |
| Case | Status |
|---|---|
| RF-1842 | Ready |
| 1 case shown. | |
Component specimen
Group related work, evidence, or controls in a bounded region
Receipt, policy, and customer note are grouped here.
Loading evidence.
Evidence conflict needs review.
Component specimen
Summarize one repeated item or choice
Policy exception with receipt evidence.
Updated 4 min agoPolicy exception with receipt evidence.
Updated 4 min agoPolicy exception with receipt evidence.
Updated 4 min agoComponent specimen
Report progress, result, validation, or completion
| Component | Purpose | States | Review |
|---|---|---|---|
action_buttonAction button | Trigger one bounded user action | ready, disabled, focus-visible, loading | action comes from the workflow; risky actions have approval-boundary evidence |
action_groupAction group | Group related actions with clear priority and boundaries | ready, disabled, focus-visible | primary action is singular; secondary actions remain adjacent to their object |
form_fieldForm field | Collect one labeled value with help, error, and disabled affordances | empty, ready, error, disabled, focus-visible | label uses domain vocabulary; disabled reason is readable |
text_fieldText field | Collect short text or numeric values | empty, ready, error, disabled, focus-visible | input type matches the value; validation is visible and textual |
text_areaText area | Collect longer written input | empty, ready, error, disabled, focus-visible | expected content is clear; long content does not collapse nearby controls |
select_fieldSelect field | Choose one value from a bounded option set | empty, ready, error, disabled, focus-visible | empty option is clear when optional; selected value is visible |
checkbox_groupCheckbox group | Choose independent options from a set | ready, error, disabled, focus-visible | long labels wrap cleanly; options remain independent |
radio_groupRadio group | Choose exactly one option from a set | empty, ready, error, disabled, focus-visible | option labels are comparable; default selection is intentional |
toggleToggle | Switch a binary setting on or off | ready, disabled, focus-visible | label names the setting; state change is reversible or bounded |
tabsTabs | Switch between peer sections without changing the task object | ready, disabled, focus-visible | tabs are peers; active state is visible |
menuMenu | Reveal a compact set of contextual commands | ready, disabled, focus-visible | commands are contextual; primary path remains visible |
dialogDialog | Interrupt the current surface for a bounded decision or focused form | ready, loading, error, focus-visible | primary action is visually final; cancel or dismiss precedes primary action |
alertAlert | Call attention to important status, risk, or required action | ready, focus-visible | severity matches the action needed; message explains next step |
tableTable | Compare structured rows and columns | empty, ready, loading, error, focus-visible | columns support decisions; empty and loading states are clear |
panelPanel | Group related work, evidence, or controls in a bounded region | ready, loading, error | panel groups one coherent concern; actions are adjacent to content |
cardCard | Summarize one repeated item or choice | ready, disabled, focus-visible | card represents one object; interactive area is clear |
status_messageStatus message | Report progress, result, validation, or completion | ready, loading, error | message names the user-relevant result; completion leaves a receipt |