From 381a06008bdefd77de4452b959beb79e684e1fa4 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Wed, 11 Mar 2026 21:49:16 +0100 Subject: [PATCH] feat(02-01): brand auth pages with gradient bg, wordmark, and Alert errors - LoginPage: pastel gradient background (saving/bill/investment light shades) - LoginPage: gradient text wordmark with data-testid='wordmark' - LoginPage: shadcn Alert destructive with AlertCircle icon for error display - RegisterPage: mirrors LoginPage branding treatment exactly - Both pages: Card shadow-lg for visual lift against gradient - All 6 AUTH tests pass (AUTH-01 through AUTH-04) --- frontend/src/pages/LoginPage.tsx | 34 ++++++++++++++++++++++++----- frontend/src/pages/RegisterPage.tsx | 34 ++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 10 deletions(-) diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index 217c6b1..69ccc42 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -1,8 +1,11 @@ import { useState } from 'react' import { useTranslation } from 'react-i18next' +import { AlertCircle } from 'lucide-react' import { Button } from '@/components/ui/button' -import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card' +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@/components/ui/card' import { Input } from '@/components/ui/input' +import { Alert, AlertDescription } from '@/components/ui/alert' +import { palette } from '@/lib/palette' import type { AuthContext } from '@/hooks/useAuth' interface Props { @@ -31,15 +34,36 @@ export function LoginPage({ auth: { login }, onToggle }: Props) { } return ( -
- +
+ {t('auth.login')} - {t('app.title')} + + {t('app.title')} +
- {error &&

{error}

} + {error && ( + + + {error} + + )} - +
+ {t('auth.register')} - {t('app.title')} + + {t('app.title')} + - {error &&

{error}

} + {error && ( + + + {error} + + )}