Task: Stat / MetricCard Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
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 primary text color |
| 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 at bottom of card without gap |
Acceptance Criteria
Notes
- Used in both desktop
MetricsRow and mobile MetricsGrid — must work inside both grid-cols-4 and grid-cols-2 without style overrides
Task: Stat / MetricCard Component
Type: Component
Milestone: M0.5 — Shared Component Library
Estimate: S
Component Type
Props Interface
Variants / States
--text-danger— Escalated count--text-warning— Pending count--text-success— Auto-resolved countAcceptance Criteria
22px, label10pxuppercase, sub-label10pxsecondary — matches dashboard design exactlyvalueColormaps to correct CSS variable — no inline hexNotes
MetricsRowand mobileMetricsGrid— must work inside bothgrid-cols-4andgrid-cols-2without style overrides