From 38a738162542250e5816ada6ae33ac3b3a567796 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 07:47:09 +0000 Subject: [PATCH 1/6] Initial plan From 0423ae3f4d5e04138a2d6afabafd635a87054332 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 07:57:13 +0000 Subject: [PATCH 2/6] Complete UI consistency improvements - remove gradients, standardize colors and fonts Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> --- apps/dashboard/src/App.css | 147 ++++++++++++++++------------------- apps/dashboard/src/index.css | 5 +- 2 files changed, 71 insertions(+), 81 deletions(-) diff --git a/apps/dashboard/src/App.css b/apps/dashboard/src/App.css index 3666519..1c4c602 100644 --- a/apps/dashboard/src/App.css +++ b/apps/dashboard/src/App.css @@ -6,11 +6,11 @@ } .dashboard-header { - background: #000000; - border-bottom: 1px solid #e5e5e5; + background: #1e293b; + border-bottom: 1px solid #e2e8f0; color: white; - padding: 1rem 2rem; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + padding: 1.5rem 2rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } @@ -31,7 +31,7 @@ .logo h1 { margin: 0; - font-size: 1.5rem; + font-size: 1.75rem; font-weight: 700; color: white; letter-spacing: -0.025em; @@ -39,11 +39,11 @@ .header-subtitle { margin: 0; - opacity: 0.85; - font-size: 0.875rem; - font-weight: 500; - color: #cccccc; - display: none; + opacity: 0.9; + font-size: 1rem; + font-weight: 400; + color: #cbd5e1; + display: block; letter-spacing: 0.025em; } @@ -80,21 +80,22 @@ display: flex; align-items: center; gap: 0.625rem; - padding: 1rem 1.5rem; - border: 2px solid transparent; - background: transparent; + padding: 0.875rem 1.5rem; + border: 2px solid #e2e8f0; + background: #ffffff; border-radius: 0.75rem; cursor: pointer; font-weight: 600; - font-size: 0.95rem; - transition: all 0.3s ease; - color: #64748b; + font-size: 1rem; + transition: all 0.2s ease; + color: #475569; text-transform: capitalize; letter-spacing: -0.025em; position: relative; overflow: hidden; min-width: 160px; justify-content: center; + text-decoration: none; } .page-button::before { @@ -104,19 +105,16 @@ left: -100%; width: 100%; height: 100%; - background: linear-gradient(90deg, - transparent, - rgba(16, 185, 129, 0.3), - transparent); - transition: left 0.5s ease; + background: rgba(59, 130, 246, 0.1); + transition: left 0.3s ease; } .page-button:hover { - background: transparent; - border-color: #10b981; - color: #059669; - transform: translateY(-2px); - box-shadow: 0 8px 16px rgba(16, 185, 129, 0.2); + background: rgba(59, 130, 246, 0.05); + border-color: #3b82f6; + color: #1d4ed8; + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2); } .page-button:hover::before { @@ -124,23 +122,21 @@ } .page-button.active { - background: transparent; - border-color: #10b981; - color: #059669; - box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3); + background: #3b82f6; + border-color: #3b82f6; + color: #ffffff; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); } .page-button.active::before { - background: linear-gradient(90deg, - transparent, - rgba(16, 185, 129, 0.2), - transparent); + background: rgba(255, 255, 255, 0.1); } .page-button.active:hover { - transform: translateY(-3px); - box-shadow: 0 12px 24px rgba(16, 185, 129, 0.4); + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4); } /* Metric Navigation */ @@ -161,15 +157,15 @@ display: flex; align-items: center; gap: 0.625rem; - padding: 1rem 2rem; - border: 2px solid transparent; - background: transparent; + padding: 0.875rem 1.5rem; + border: 2px solid #e2e8f0; + background: #ffffff; border-radius: 0.75rem; cursor: pointer; font-weight: 600; - font-size: 0.95rem; - transition: all 0.3s ease; - color: #64748b; + font-size: 1rem; + transition: all 0.2s ease; + color: #475569; text-transform: capitalize; letter-spacing: -0.025em; position: relative; @@ -185,19 +181,16 @@ left: -100%; width: 100%; height: 100%; - background: linear-gradient(90deg, - transparent, - rgba(255, 255, 255, 0.6), - transparent); - transition: left 0.5s ease; + background: rgba(59, 130, 246, 0.1); + transition: left 0.3s ease; } .nav-button:hover { - background: transparent; - border-color: #94a3b8; - color: #475569; - transform: translateY(-2px); - box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); + background: rgba(59, 130, 246, 0.05); + border-color: #3b82f6; + color: #1d4ed8; + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15); } .nav-button:hover::before { @@ -205,23 +198,21 @@ } .nav-button.active { - background: transparent; - border-color: #000000; - color: #000000; - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); + background: #3b82f6; + border-color: #3b82f6; + color: #ffffff; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); transform: translateY(-1px); } .nav-button.active::before { - background: linear-gradient(90deg, - transparent, - rgba(255, 255, 255, 0.2), - transparent); + background: rgba(255, 255, 255, 0.1); } .nav-button.active:hover { - transform: translateY(-3px); - box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4); + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4); } /* Main Content */ @@ -237,19 +228,19 @@ /* Chart Container */ .chart-container { background: white; - border: 1px solid #e5e5e5; + border: 1px solid #e2e8f0; padding: 2rem; - border-radius: 0.5rem; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + border-radius: 0.75rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .chart-container h2 { margin: 0 0 1.5rem 0; - color: #111827; - font-size: 1.5rem; - font-weight: 600; + color: #1e293b; + font-size: 1.75rem; + font-weight: 700; letter-spacing: -0.025em; } @@ -262,11 +253,11 @@ .stat-card { background: white; - border: 1px solid #e5e5e5; + border: 1px solid #e2e8f0; padding: 1.75rem; - border-radius: 0.5rem; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - border-left: 4px solid #000000; + border-radius: 0.75rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + border-left: 4px solid #3b82f6; transition: all 0.2s ease; } @@ -279,7 +270,7 @@ .stat-card h3 { margin: 0 0 0.75rem 0; - color: #6b7280; + color: #64748b; font-size: 0.875rem; font-weight: 600; text-transform: uppercase; @@ -290,7 +281,7 @@ margin: 0 0 0.75rem 0; font-size: 2.25rem; font-weight: 700; - color: #111827; + color: #1e293b; letter-spacing: -0.025em; line-height: 1.1; } @@ -366,13 +357,13 @@ .library-title { margin: 0 0 1rem 0; - font-size: 1.125rem; - font-weight: 600; - color: #111827; + font-size: 1.25rem; + font-weight: 700; + color: #1e293b; text-transform: capitalize; text-align: center; padding-bottom: 0.5rem; - border-bottom: 2px solid #e5e7eb; + border-bottom: 2px solid #e2e8f0; } /* Responsive Design */ diff --git a/apps/dashboard/src/index.css b/apps/dashboard/src/index.css index 134805d..8fcad59 100644 --- a/apps/dashboard/src/index.css +++ b/apps/dashboard/src/index.css @@ -4,7 +4,7 @@ font-weight: 400; color: #1e293b; - background: linear-gradient(135deg, #0c1618 0%, #134e4a 50%, #1f2937 100%); + background: #f8fafc; font-synthesis: none; text-rendering: optimizeLegibility; @@ -20,8 +20,7 @@ body { margin: 0; min-width: 320px; min-height: 100vh; - background: linear-gradient(135deg, #0c1618 0%, #134e4a 50%, #1f2937 100%); - background-attachment: fixed; + background: #f8fafc; } h1, h2, h3, h4, h5, h6 { From 4b3b7d3a4f343eaee51f316a1a6fa3d498b59455 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 13:49:29 +0000 Subject: [PATCH 3/6] Add small and clean rolldown-vite dashboard banner at top of page Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> --- apps/dashboard/src/App.css | 21 +++++++++++++++++++++ apps/dashboard/src/components/Layout.tsx | 10 +++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/apps/dashboard/src/App.css b/apps/dashboard/src/App.css index 1c4c602..c395ae8 100644 --- a/apps/dashboard/src/App.css +++ b/apps/dashboard/src/App.css @@ -5,6 +5,27 @@ color: #000000; } +/* Dashboard Banner - Small and Clean */ +.dashboard-banner { + background: #f8fafc; + border-bottom: 1px solid #e2e8f0; + padding: 0.5rem 2rem; + position: sticky; + top: 0; + z-index: 50; +} + +.banner-content { + max-width: 1200px; + margin: 0 auto; + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.875rem; + font-weight: 600; + color: #64748b; +} + .dashboard-header { background: #1e293b; border-bottom: 1px solid #e2e8f0; diff --git a/apps/dashboard/src/components/Layout.tsx b/apps/dashboard/src/components/Layout.tsx index 2977166..0f2edd9 100644 --- a/apps/dashboard/src/components/Layout.tsx +++ b/apps/dashboard/src/components/Layout.tsx @@ -1,4 +1,4 @@ -import { Package, Zap } from 'lucide-react'; +import { BarChart3, Package, Zap } from 'lucide-react'; import { Link, Outlet, useLocation } from 'react-router-dom'; function Layout() { @@ -6,6 +6,14 @@ function Layout() { return ( <> + {/* Rolldown-Vite Dashboard Banner */} +