# Visual QA & Design System Migration — Implementation Plan > **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. **Goal:** Fix the collapsed sidebar scaling issue and migrate all pages from old monochrome design patterns to the new purple gradient accent design system. **Architecture:** Systematic find-and-replace across 15 frontend files, replacing old monochrome CSS utilities (`glass-card`, `text-white/N`, `border-white/N`, `bg-white text-black` buttons) with new design tokens (`bg-card border-border`, `text-foreground`, `border-border`, `bg-gradient-brand`). Sidebar collapsed state gets a layout fix. **Tech Stack:** React, Tailwind CSS v3, Lucide React --- ## Pattern Replacement Reference Every task below uses this table. Keep it open. | OLD Pattern | NEW Pattern | Context | |---|---|---| | `glass-card rounded-2xl` | `bg-card border border-border rounded-xl` | Card containers | | `glass-card rounded-xl` | `bg-card border border-border rounded-xl` | Card containers | | `bg-black` or `bg-black/50` | `bg-card` | Input/section backgrounds | | `text-white` (on headings) | `text-foreground` + add `font-heading` | Primary heading text | | `text-white` (on body text) | `text-foreground` | Primary body text | | `text-white/70` | `text-muted-foreground` | Secondary text | | `text-white/40` | `text-muted-foreground` | Muted text | | `text-white/60` | `text-muted-foreground` | Button secondary text | | `border-white/10` | `border-border` | Standard borders | | `border-white/[0.06]` | `border-border` | Subtle borders | | `border-white/20` | `border-border` | Toggle/active borders | | `bg-white/10` | `bg-accent` | Hover/active backgrounds | | `hover:bg-white/10` | `hover:bg-accent` | Hover states | | `hover:text-white` | `hover:text-foreground` | Hover text | | `bg-white text-black hover:bg-white/90` | `bg-gradient-brand text-white shadow-lg shadow-primary/20 hover:opacity-90` | Primary buttons | | `bg-white px-N py-N text-black` ... `hover:bg-white/90` | `bg-gradient-brand text-white shadow-lg shadow-primary/20 hover:opacity-90` | Primary buttons (multi-class) | | `border-white/10 ... text-white/60 ... hover:bg-white/10` | `border-border text-muted-foreground hover:bg-accent hover:text-foreground` | Secondary buttons | | `focus:border-white/30 focus:ring-white/20` | `focus:border-primary focus:ring-1 focus:ring-primary/20` | Input focus | | `placeholder:text-white/40` | `placeholder:text-muted-foreground` | Input placeholders | | `bg-white/10 px-2.5 py-0.5` (badges) | `bg-accent rounded-full px-2 text-[0.6875rem] font-label` | Badge/chip styling | --- ## Task 1: Fix Collapsed Sidebar Layout **Files:** - Modify: `frontend/src/components/layout/Sidebar.tsx` - Modify: `frontend/src/index.css` **Problem:** When the sidebar is collapsed, the navigation divider doesn't span the full height (top to bottom), and the expand icon is extremely small — suggests the entire collapsed column isn't sizing correctly. **Step 1: Fix collapsed sidebar to be a proper full-height flex column** In `Sidebar.tsx`, the collapsed state renders a `
` with nav icons but doesn't fill the column. The `