Overview
Use ApprovalCard to give reviewers enough context to make and understand a governed decision.
Production access exception
Try approving, rejecting, returning, and resetting the request.
Production access exception
Allow temporary production access for the incident response window.
- Requested by
- Asha Mehta
- Current reviewer
- Priya Shah · Finance Lead
- Decision due
- Context
- High risk · 8 hours
Approval path
- RequestSubmitted 9:12 AM
- ManagerApproved by Noah
- FinancePriya Shah
- SecurityAfter Finance
Policy checks
- Manager approval
- Access windowExpires after 8 hours
- Incident evidenceOne attachment needs review
- Security review
Anatomy
Keep request context, ownership, readiness, decisions, and history in a stable reading order.
- 1Request context
Identifies the request and summarizes the proposed change.
- 2Decision status
Communicates the current lifecycle outcome in text and color.
- 3Stages and checks
Makes handoffs, readiness, warnings, and blockers visible before action.
- 4Decision actions
Presents only outcomes allowed for the current reviewer and state.
- 5Timeline
Holds immutable actors, timestamps, transitions, and rationale.
When to use
Use for decisions that require ownership, policy validation, or an audit trail.
Recommended
- Governed changes
Review access, budget, compliance, deployment, or policy changes.
- Multi-stage handoffs
Show the current reviewer and the next accountable team.
- Evidence-based decisions
Expose required checks and missing evidence before actions.
When not to use
Prefer simpler surfaces when a durable decision model adds no value.
Avoid
- Do not use for acknowledgements
Use Alert or NotificationCenter when no decision is required.
- Do not hide complex editing inside
Use a form, SidePanel, or dedicated task before returning to the decision.
- Do not bypass authorization
The application must validate every decision on the server.
Variants
Surface treatments change emphasis without changing the approval contract.
Outlined
Default card in a page, queue, or detail view.
Filled
Groups a decision inside a tonal workspace.
Raised
Elevates a focused request above supporting content.
Sizes
Small, medium, and large adjust type density while preserving targets.
States
Lifecycle and interaction states must stay distinct and understandable.
| State | Trigger | Visual response | Interaction |
|---|---|---|---|
| Draft | Request is editable | Neutral status | Owner can refine before routing |
| Pending | Waiting for a reviewer | Pending status and next owner | Decision controls follow permissions |
| In review | Reviewer started work | Active stage and policy checks | One decision branch at a time |
| Approved / rejected | Decision recorded | Durable outcome and timeline | Read-only unless policy permits reopening |
| Returned | More information required | Return status and rationale | Requester updates and resubmits |
| Loading | Transition is being recorded | Progress status | Duplicate decisions are prevented |
Behavior
ApprovalCard presents workflow state; applications own policy, persistence, notifications, and authorization.
Explicit handoff
Only one stage is current in a linear workflow.
Policy-aware actions
Blocked checks should prevent unsafe decisions upstream.
Immutable result
Final decisions preserve actor, time, rationale, and evidence.
Application notification
The application alerts the next actor after persistence succeeds.
Accessibility
Semantic regions, named status, native controls, and explicit ownership keep decisions understandable.
| Key | Action |
|---|---|
| Tab | Moves through application-supplied decision controls. |
| EnterSpace | Activates the focused native action. |
| ShiftTab | Moves backward without entering non-interactive stage content. |
| Esc | Handled by a containing dialog or SidePanel when present. |
- Use a specific request title as the card accessible name.
- Keep lifecycle labels visible; do not rely on color.
- Describe blockers and remediation in plain language.
- Provide a machine-readable dueDateTime when due dates are shown.
- Announce loading and status changes politely.
- Move focus to a durable result summary after a modal decision flow.
- Require confirmation for irreversible or regulated decisions.
Content guidelines
Decision language should state the object, consequence, owner, and required evidence.
Name the object
Use a specific request title rather than a generic task.
Production access exception
State action outcomes
Use verbs that describe the resulting lifecycle state.
Return for changes
Identify ownership
Show the accountable reviewer or group.
Current reviewer: Priya Shah
Explain blockers
Tell reviewers what is missing and how to resolve it.
Attach incident evidence before approval
Examples
Keep async persistence outside the card and lock decisions while a transition is running.
Finalized decision
Read-only outcome with a durable timeline entry.
Approved payment exception
- Current reviewer
- Finance operations
- Decision due
Approved by Priya Shah · Today, 11:42 AM · Policy checks passed
Props / API
ApprovalCard extends article attributes and keeps workflow data explicit through typed stages and checks.
Props