--- phase: 04-full-app-design-consistency plan: 01 type: execute wave: 1 depends_on: [] files_modified: - src/pages/LoginPage.tsx - src/pages/RegisterPage.tsx - src/i18n/en.json - src/i18n/de.json autonomous: true requirements: [UI-AUTH-01, UI-DESIGN-01] must_haves: truths: - "Login page shows muted background with the card floating on top, app logo above title" - "Register page matches Login page design — same background, logo, card accent treatment" - "OAuth buttons (Google, GitHub) display provider SVG icons next to text labels" - "Auth subtitle text appears below the app title inside the card" - "Switching to German locale shows fully translated auth page text" artifacts: - path: "src/pages/LoginPage.tsx" provides: "Redesigned login page with muted bg, logo, card accent, OAuth icons" contains: "bg-muted" - path: "src/pages/RegisterPage.tsx" provides: "Redesigned register page matching login design" contains: "bg-muted" - path: "src/i18n/en.json" provides: "Auth subtitle i18n keys" contains: "auth.loginSubtitle" - path: "src/i18n/de.json" provides: "German auth subtitle translations" contains: "auth.loginSubtitle" key_links: - from: "src/pages/LoginPage.tsx" to: "/favicon.svg" via: "img src for app logo" pattern: 'src="/favicon.svg"' - from: "src/pages/RegisterPage.tsx" to: "/favicon.svg" via: "img src for app logo" pattern: 'src="/favicon.svg"' --- Redesign the Login and Register pages with brand presence and visual polish matching the established design system. Purpose: Auth pages are the first impression of the app. Currently they use a plain `bg-background` with a bare card. This plan upgrades them to use a muted background, app logo, card accent styling, and provider SVG icons on OAuth buttons -- establishing visual consistency from the very first screen. Output: Redesigned LoginPage.tsx, RegisterPage.tsx, and new i18n keys for auth subtitles. @/home/jlmak/.claude/get-shit-done/workflows/execute-plan.md @/home/jlmak/.claude/get-shit-done/templates/summary.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/04-full-app-design-consistency/04-CONTEXT.md @.planning/phases/04-full-app-design-consistency/04-RESEARCH.md From src/pages/LoginPage.tsx (current structure to modify): - Root: `
` - Card: `` - Has OAuth buttons for Google and GitHub (text-only, no icons) - Has Separator with "Or continue with" text From src/pages/RegisterPage.tsx (current structure to modify): - Same root div pattern as LoginPage - No OAuth buttons (only email/password form) - No Separator From src/i18n/en.json (existing auth keys): ```json "auth": { "login": "Login", "register": "Register", "email": "Email", "password": "Password", "displayName": "Display Name", "noAccount": "Don't have an account?", "hasAccount": "Already have an account?", "orContinueWith": "Or continue with" } ``` Logo asset: `/public/favicon.svg` -- stylized lightning-bolt SVG in purple (#863bff). Use via ``. Task 1: Redesign LoginPage with brand presence and OAuth icons src/pages/LoginPage.tsx, src/i18n/en.json, src/i18n/de.json Modify LoginPage.tsx: 1. **Background:** Change root div className from `bg-background` to `bg-muted/60`. 2. **Card accent:** Add `border-t-4 border-t-primary shadow-lg` to the Card className. 3. **App logo:** Inside CardHeader, above the CardTitle, add: ```tsx ``` 4. **Subtitle:** Below the CardTitle, add: ```tsx

{t("auth.loginSubtitle")}

``` 5. **OAuth provider SVG icons:** Replace the plain text-only Google and GitHub buttons with inline SVG icons. Add a small (size-4) SVG before the text label in each button: For Google button, add before "Google" text: ```tsx ``` For GitHub button, add before "GitHub" text: ```tsx ``` Add `gap-2` to each Button's className to space the icon and text. The buttons already have `className="flex-1"` -- add `gap-2` via the className string. 6. **i18n keys:** Add to en.json inside the "auth" object: - `"loginSubtitle": "Sign in to your account"` - `"registerSubtitle": "Create a new account"` Add to de.json inside the "auth" object: - `"loginSubtitle": "Melde dich bei deinem Konto an"` - `"registerSubtitle": "Erstelle ein neues Konto"` IMPORTANT: Update both en.json and de.json atomically in this task. Do not leave any raw i18n key strings.
cd /home/jlmak/Projects/jlmak/SimpleFinanceDash && bun run build LoginPage shows muted/60 background, primary-colored top border on card, favicon.svg logo above title, "Sign in to your account" subtitle, Google SVG icon + GitHub SVG icon on OAuth buttons. Both en.json and de.json have the new auth subtitle keys.
Task 2: Redesign RegisterPage to match LoginPage treatment src/pages/RegisterPage.tsx Modify RegisterPage.tsx to match the LoginPage design established in Task 1: 1. **Background:** Change root div className from `bg-background` to `bg-muted/60`. 2. **Card accent:** Add `border-t-4 border-t-primary shadow-lg` to the Card className. 3. **App logo:** Inside CardHeader, above the CardTitle, add: ```tsx ``` 4. **Subtitle:** Below the CardTitle, add: ```tsx

{t("auth.registerSubtitle")}

``` The i18n key `auth.registerSubtitle` was already added in Task 1. 5. **CardHeader padding:** Add `pb-4` to CardHeader className to match LoginPage spacing: `className="text-center pb-4"`. Also apply `pb-4` to LoginPage's CardHeader if not already done in Task 1 (add `className="text-center pb-4"`). Do NOT add OAuth buttons to RegisterPage -- it only has email/password registration. The existing "Already have an account?" link stays as-is.
cd /home/jlmak/Projects/jlmak/SimpleFinanceDash && bun run build RegisterPage shows same muted/60 background, same card accent (border-t-4 primary, shadow-lg), same favicon logo, and register-specific subtitle. Visual parity with LoginPage minus OAuth buttons.
- `bun run build` compiles without TypeScript errors - `grep -c "bg-background" src/pages/LoginPage.tsx src/pages/RegisterPage.tsx` returns 0 for both files (old pattern fully replaced) - `grep -c "bg-muted" src/pages/LoginPage.tsx src/pages/RegisterPage.tsx` returns 1 for each (new pattern applied) - `grep "loginSubtitle" src/i18n/en.json src/i18n/de.json` returns matches in both files - `grep "registerSubtitle" src/i18n/en.json src/i18n/de.json` returns matches in both files - Both auth pages use `bg-muted/60` background instead of `bg-background` - Both auth pages show the app logo (`favicon.svg`) above the title - Both auth pages have a card with `border-t-4 border-t-primary shadow-lg` - LoginPage OAuth buttons show Google and GitHub SVG icons - Both en.json and de.json have `auth.loginSubtitle` and `auth.registerSubtitle` keys - `bun run build` passes After completion, create `.planning/phases/04-full-app-design-consistency/04-01-SUMMARY.md`