Task: Stat / MetricCard Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
Change Log
Updated: Now explicitly composes base Card component. Card (base) ticket must be completed before this one starts.
Component Type
Props Interface
interface MetricCardProps {
label: string;
value: string | number;
subLabel?: string;
valueColor?: 'default' | 'danger' | 'warning' | 'success';
className?: string;
}
Variants / States
| State |
Description |
| Default |
Value in --text-primary |
| Danger |
Value in --text-danger — Escalated count |
| Warning |
Value in --text-warning — Pending count |
| Success |
Value in --text-success — Auto-resolved count |
| With sub-label |
Small secondary text below value |
| Without sub-label |
Value sits flush at bottom, no gap |
Acceptance Criteria
Task: Stat / MetricCard Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
Change Log
Component Type
Props Interface
Variants / States
--text-primary--text-danger— Escalated count--text-warning— Pending count--text-success— Auto-resolved countAcceptance Criteria
Cardwithpadding="md"— no duplicated border/bg/radius styling22px, label10pxuppercase tracking-wider, sub-label10pxsecondaryvalueColormaps to correct CSS variable — no inline hexgrid-cols-4(desktop) andgrid-cols-2(mobile) without overrides