Phase 10 Implementation: Bulk color system compliance across frontend Applied DESIGN_COLOR_RULES.md to 40 component and page files: - Indigo (3) → primary/secondary (primary actions) - Green (12) → tertiary (#00e639) (success/healthy status) - Red/Rose (20) → error (#ffb4ab) (destructive actions) - Amber/Sky (9) → primary/secondary (warnings/info) - Blue/Slate (various) → primary/design system colors (focus states) - Black → bg-surface-container-lowest (proper design color) Files updated: 40 components + pages Color replacements: 44+ instances Build status: ✓ Zero errors, compiled in 6.3s Test status: Pending (npm run test) All colors now follow DESIGN.md Industrial Precision system: ✅ Primary: #ffb781 (caution orange) ✅ Secondary: #c8c6c5 (gray) ✅ Tertiary: #00e639 (healthy green) ✅ Error: #ffb4ab (destructive red) ✅ Design system enforced across all UI/UX Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
26 lines
826 B
TypeScript
26 lines
826 B
TypeScript
import React from 'react';
|
|
import { LucideIcon } from 'lucide-react';
|
|
|
|
interface StatCardProps {
|
|
label: string;
|
|
value: number;
|
|
icon?: LucideIcon;
|
|
}
|
|
|
|
export default function StatCard({ label, value, icon: Icon }: StatCardProps) {
|
|
return (
|
|
<div className="flex justify-between items-center gap-2 p-2 md:p-3 level-1 transition-all hover:bg-surface-container-lowest/40" role="status">
|
|
<div className="flex items-center gap-2.5 min-w-0">
|
|
{Icon && <Icon className="w-5 h-5 text-primary flex-shrink-0" aria-hidden="true" />}
|
|
<span className="text-base md:text-lg text-secondary font-normal truncate">
|
|
{label}
|
|
</span>
|
|
</div>
|
|
|
|
<span className="text-base md:text-lg font-normal text-primary whitespace-nowrap tabular-nums">
|
|
{value}
|
|
</span>
|
|
</div>
|
|
);
|
|
}
|