From 6b02cfa1f8bb54e8ed373d679b441c5ab716284d Mon Sep 17 00:00:00 2001 From: Kyle Pope Date: Thu, 12 Mar 2026 00:54:00 +0800 Subject: [PATCH] Add ambient dashboard background: drifting orbs, noise texture, vignette, card breathe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three layered effects to make the dashboard feel alive: 1. DashboardAmbient: two accent-colored drifting orbs at very low opacity (0.04/0.025) with 120px blur — subtle depth and movement 2. Noise texture + radial vignette via CSS pseudo-elements — breaks the flat digital surface and draws focus to center content 3. Card breathe animation: data-driven 4s pulsing glow on CalendarWidget (when event in progress) and TodoWidget (when overdue todos exist) All effects respect prefers-reduced-motion, use accent CSS vars (works with any user-chosen accent color), and are GPU-composited (transform + opacity only) for negligible performance cost. Co-Authored-By: Claude Opus 4.6 --- .../components/dashboard/CalendarWidget.tsx | 4 ++- .../components/dashboard/DashboardAmbient.tsx | 30 ++++++++++++++++ .../components/dashboard/DashboardPage.tsx | 4 ++- .../src/components/dashboard/TodoWidget.tsx | 4 ++- frontend/src/index.css | 35 +++++++++++++++++++ 5 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/dashboard/DashboardAmbient.tsx diff --git a/frontend/src/components/dashboard/CalendarWidget.tsx b/frontend/src/components/dashboard/CalendarWidget.tsx index 05732b6..fc40716 100644 --- a/frontend/src/components/dashboard/CalendarWidget.tsx +++ b/frontend/src/components/dashboard/CalendarWidget.tsx @@ -50,8 +50,10 @@ export default function CalendarWidget({ events }: CalendarWidgetProps) { return () => clearInterval(interval); }, []); + const hasCurrentEvent = events.some((e) => getEventTimeState(e, clientNow) === 'current'); + return ( - +
diff --git a/frontend/src/components/dashboard/DashboardAmbient.tsx b/frontend/src/components/dashboard/DashboardAmbient.tsx new file mode 100644 index 0000000..e348d56 --- /dev/null +++ b/frontend/src/components/dashboard/DashboardAmbient.tsx @@ -0,0 +1,30 @@ +/** + * Muted ambient background for the dashboard. + * Two accent-colored drifting orbs at very low opacity — adds depth + * and movement without distracting from content. Reuses the same + * drift keyframes as the login AmbientBackground but at ~25% opacity. + */ +export default function DashboardAmbient() { + return ( +