diff --git a/common/messages/de.json b/common/messages/de.json index b3691424..fdadaac2 100644 --- a/common/messages/de.json +++ b/common/messages/de.json @@ -1326,6 +1326,7 @@ "signin.seo.title": "Anmelden", "signin.submit": "Anmelden", "signin.title": "Anmelden", + "signin.subtitle": "Willkommen zurück — mach da weiter, wo du aufgehört hast.", "signup.creating_profile": "Profil wird erstellt...", "signup.email": "E-Mail", "signup.email_placeholder": "sie@beispiel.de", diff --git a/common/messages/fr.json b/common/messages/fr.json index f29eb190..d274cc8d 100644 --- a/common/messages/fr.json +++ b/common/messages/fr.json @@ -1325,6 +1325,7 @@ "signin.seo.title": "Se connecter", "signin.submit": "Se connecter", "signin.title": "Se connecter", + "signin.subtitle": "Bon retour — reprends là où tu t'étais arrêté.", "signup.creating_profile": "Création de votre profil...", "signup.email": "E-mail", "signup.email_placeholder": "vous@exemple.com", diff --git a/web/components/auth/auth-form.tsx b/web/components/auth/auth-form.tsx new file mode 100644 index 00000000..047116c3 --- /dev/null +++ b/web/components/auth/auth-form.tsx @@ -0,0 +1,146 @@ +import clsx from 'clsx' +import {InputHTMLAttributes, ReactNode} from 'react' + +// Shared building blocks for the /register and /signin pages so the two stay in +// visual lockstep. Mirrors the home page design language: warm tokens, a soft +// radial glow for depth, and staggered fade-up entrances. + +/** Page wrapper: centers the card and paints the hero-style radial glow behind it. */ +export function AuthShell({children}: {children: ReactNode}) { + return ( +
{subtitle}
} +{children}
+- {t('register.check_email.sent_prefix', 'We have sent a verification link to ')} - {registeredEmail} - {t('register.check_email.sent_suffix', '.')} -
-- {t( - 'register.check_email.help_prefix', - 'Did not receive the email? Check your spam folder or ', - )} - - {t('register.check_email.help_suffix', '.')} -
-- {t('register.already_account', 'Already have an account?')}{' '} - {t('register.link_signin', 'Sign in')} -
-+ {t('register.check_email.sent_prefix', 'We have sent a verification link to ')} + {registeredEmail} + {t('register.check_email.sent_suffix', '.')} +
++ {t( + 'register.check_email.help_prefix', + 'Did not receive the email? Check your spam folder or ', + )} + + {t('register.check_email.help_suffix', '.')} +
+
+ {t('register.agreement.prefix', 'By signing up, I agree to the ')}
+
- {t( - 'signin.prompt.sign_in_to_access', - 'Please sign in to access the {redirectPath} page', - {redirectPath: redirectPath.replace('/', '')}, - )} -
-+ {t( + 'signin.prompt.sign_in_to_access', + 'Please sign in to access the {redirectPath} page', + {redirectPath: redirectPath.replace('/', '')}, + )} +
- {t('signin.no_account', "Don't have an account?")}{' '} - {t('signin.link_sign_up', 'Register')} -
+