3.3 KiB
3.3 KiB
Phase 5: Design System Token Rework - Context
Gathered: 2026-04-20 Status: Ready for planning
## Phase BoundaryUsers see a sharp, minimal, clearly pastel UI across every page — the visual foundation that all subsequent phases build on. This phase modifies design tokens (CSS variables), adjusts spacing utilities across all 9 pages, and overrides third-party component styles. No new features, no new components — purely visual token and spacing changes.
## Implementation DecisionsCorner Radius Strategy
- All elements get 0px border radius — truly sharp corners everywhere
- Implementation via single
--radius: 0token change insrc/index.css(cascades to all shadcn components) - No exceptions for avatars, badges, or any element
- Third-party components (Recharts bars, Sonner toasts) overridden via CSS selectors to force 0 radius
Pastel Color Refinement
- Increase chroma on category fill colors to 0.22+ for visible colorful pop against white backgrounds
- Keep the two-tier color system: text colors at ~0.55L for WCAG 4.5:1 contrast, fill colors lighter/more saturated
- Slightly warm the base UI colors: background chroma from 0.005→0.01 for subtle warmth
- Align chart colors with category fill tokens directly — remove separate
--color-chart-*variables and use--color-*-filltokens in charts
Spacing & Layout Strategy
- Increase section gaps: gap-4→gap-6, gap-6→gap-8 across all pages
- Increase card internal padding: p-4→p-6 for breathing room
- Keep existing max-w-7xl container constraint
- Standardize all page headers to mb-6 + section gaps to gap-8 for consistent rhythm
Claude's Discretion
- Exact OKLCH chroma/lightness values for category fills (as long as they're 0.22+ chroma and pass WCAG)
- Order of page updates during implementation
- Whether to create a spacing utility class or apply changes inline
<code_context>
Existing Code Insights
Reusable Assets
src/index.css— single file with all design tokens (@theme inlineblock),--radius: 0.625remis the token to changesrc/lib/palette.ts— category color references using CSS variables (no changes needed, references tokens)- shadcn/ui components in
src/components/ui/— all userounded-*classes that derive from--radius
Established Patterns
- OKLCH color system already in place with hue-based category differentiation
- Two-tier category colors: text (L=0.55, C=0.16-0.18) and fill (L=0.65-0.70, C=0.18-0.20)
- Tailwind CSS 4 with
@theme inlinefor CSS variable definitions - 71 occurrences of
rounded/radiusacross 27 source files
Integration Points
src/index.css--radiustoken controls all shadcn component rounding- Chart components (
SpendBarChart,IncomeBarChart,ExpenseDonutChart) reference--color-chart-*variables - 9 pages to audit: Dashboard, BudgetList, BudgetDetail, Template, Categories, QuickAdd, Settings, Login, Register
</code_context>
## Specific Ideas- Success criteria explicitly requires visual pass of all 9 pages confirming no regressions
- Category color swatches must be "visibly colorful against white backgrounds" — not washed-out
- "No pill buttons, no rounded cards, no rounded inputs visible anywhere"
None — discussion stayed within phase scope