diff --git a/docs/superpowers/plans/2026-08-10-welcome-screen-polish.md b/docs/superpowers/plans/2026-08-10-welcome-screen-polish.md new file mode 100644 index 0000000..30f1286 --- /dev/null +++ b/docs/superpowers/plans/2026-08-10-welcome-screen-polish.md @@ -0,0 +1,192 @@ +# Welcome Screen Polish 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:** Add a gradient brand mark + larger title and pastel-tinted stat cards to the chat welcome screen, per the approved spec. + +**Architecture:** Two-file, class-string-only change: the welcome block in `ChatInterface.tsx` and the stats grid in `ResearchDashboard.tsx`. No logic changes. + +**Tech Stack:** Tailwind CSS 3 (`darkMode: "class"`), lucide-react icons, Vitest. + +**Spec:** `docs/superpowers/specs/2026-08-10-welcome-screen-polish-design.md` + +## Global Constraints + +- Purely visual: `npx tsc --noEmit`, `npx eslint` on the two files, `npm test` must stay green. +- `src/app/components/ChatInterface.tsx` contains unrelated uncommitted user changes — the implementer edits but does NOT stage or commit it; the controller stages only the task's hunk via filtered `git apply --cached`. `src/app/components/ResearchDashboard.tsx` is clean. +- NEVER use `git add -A` / `git add .`. Do not touch `src/app/components/ContextUsageIndicator.tsx` (untracked user WIP). +- Known pre-existing lint noise: `src/app/components/MarkdownContent.tsx` has an eslint error from user WIP — ignore it. +- All tinted classes are full static strings per stat — no dynamic Tailwind class construction (JIT must see them). +- Commit style: `style(webui): …`. + +--- + +### Task 1: Gradient brand mark + pastel stat cards + +**Files:** +- Modify: `src/app/components/ChatInterface.tsx` (~line 1744 welcome block; NOT committed by implementer) +- Modify: `src/app/components/ResearchDashboard.tsx` (stats grid; clean, committed normally) + +**Interfaces:** +- Consumes: existing tokens (`--ring` for focus rings). Produces nothing — leaf change. + +- [ ] **Step 1: Brand tile + larger title in the welcome block** + +In `src/app/components/ChatInterface.tsx`, add `Sparkles` to the existing `lucide-react` import (alphabetical position among the existing named imports; there is a multi-import from `lucide-react` near the top of the file). + +Find (lines 1744-1747): + +```tsx +