From d9a39c30ab1248a9fdacff068d401c3daff3f6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elisi=C3=A1rio=20Couto?= Date: Wed, 17 Sep 2025 22:23:34 +0100 Subject: [PATCH] feat(frontend): Update analytics cards to match home page design consistency. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../src/components/analytics/StatCard.tsx | 78 +++++++++++-------- frontend/src/routes/analytics.tsx | 13 ++-- 2 files changed, 53 insertions(+), 38 deletions(-) diff --git a/frontend/src/components/analytics/StatCard.tsx b/frontend/src/components/analytics/StatCard.tsx index cd9da41..693214e 100644 --- a/frontend/src/components/analytics/StatCard.tsx +++ b/frontend/src/components/analytics/StatCard.tsx @@ -12,6 +12,7 @@ interface StatCardProps { isPositive: boolean; }; className?: string; + iconColor?: "green" | "blue" | "red" | "purple" | "orange" | "default"; } export default function StatCard({ @@ -21,43 +22,58 @@ export default function StatCard({ icon: Icon, trend, className, + iconColor = "default", }: StatCardProps) { return ( -
-
- -
-
-
-
- {title} -
-
-
- {value} +
+
+

+ {title} +

+
+

+ {value} +

+ {trend && ( +
+ {trend.isPositive ? "+" : ""} + {trend.value}%
- {trend && ( -
- {trend.isPositive ? "+" : ""} - {trend.value}% -
- )} -
- {subtitle && ( -
- {subtitle} -
)} -
+
+ {subtitle && ( +

+ {subtitle} +

+ )} +
+
+
diff --git a/frontend/src/routes/analytics.tsx b/frontend/src/routes/analytics.tsx index b7216b9..ef26f3d 100644 --- a/frontend/src/routes/analytics.tsx +++ b/frontend/src/routes/analytics.tsx @@ -80,20 +80,21 @@ function AnalyticsDashboard() { value={stats?.total_transactions || 0} subtitle={`Last ${stats?.period_days || 0} days`} icon={Activity} + iconColor="blue" /> @@ -104,23 +105,21 @@ function AnalyticsDashboard() { value={`€${(stats?.net_change || 0).toLocaleString()}`} subtitle="Income minus expenses" icon={CreditCard} - className={ - (stats?.net_change || 0) >= 0 - ? "border-green-200" - : "border-red-200" - } + iconColor={(stats?.net_change || 0) >= 0 ? "green" : "red"} />