Dark Mode Hover Fix Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.
Goal: Fix all dark mode hover states globally so every interactive element shows a clearly visible, primary-tinted highlight on hover.
Architecture: Add a single --hover-overlay CSS variable to .dark set to 10% of the primary purple. Use a @layer utilities block in index.css to remap all hover:bg-muted/*, hover:bg-accent, and hover:bg-secondary variants to this variable — higher specificity wins cleanly within the same layer, no !important needed. Also fix the existing .dark table tr:hover rule which uses a near-black accent value.
Tech Stack: Tailwind CSS v4, CSS custom properties, @layer utilities
Task 1: Add --hover-overlay variable and fix index.css
Files:
- Modify:
ui/src/index.css
.dark block starts at line 119. The .dark table tr:hover rule is at lines 183–185. We add three things: the new variable, the updated table rule, and the @layer utilities override block.
- Step 1: Add
--hover-overlayto the.darkblock
ui/src/index.css, inside the .dark { ... } block (after --sidebar-ring: hsl(250 85% 65%); near line 157), add:
- Step 2: Update the
.dark table tr:hoverrule
- Step 3: Add the
@layer utilitiesoverride block
.dark .glass-card:hover block (around line 173) and before the /* Sidebar Hover Polish */ comment, add:
- Step 4: Verify the dev server builds without errors
- Step 5: Visual spot-check
- A table row (Staff, Patients, Appointments)
- A notification toggle (Settings → Notifications)
- A sidebar item
- A patient details info card
- Step 6: Commit

