diff --git a/apps/desktop/src/components/LanguageSwitcher.tsx b/apps/desktop/src/components/LanguageSwitcher.tsx index cfa8529..5a8d864 100644 --- a/apps/desktop/src/components/LanguageSwitcher.tsx +++ b/apps/desktop/src/components/LanguageSwitcher.tsx @@ -15,8 +15,8 @@ export function LanguageSwitcher({ compact = false }: { compact?: boolean }) { role="group" aria-label="Language" className={ - 'inline-flex items-center rounded-full border border-white/10 bg-white/5 p-0.5 text-[11px] font-medium ' + - (compact ? '' : 'backdrop-blur') + 'inline-flex items-center rounded-full border border-line bg-surface-2 p-0.5 text-[11px] font-medium ' + + (compact ? '' : '') } > {SUPPORTED_LOCALES.map((locale) => { @@ -30,10 +30,10 @@ export function LanguageSwitcher({ compact = false }: { compact?: boolean }) { if (!active) void changeLocale(locale); }} className={ - 'cursor-pointer rounded-full px-2.5 py-1 transition focus:outline-none focus:ring-2 focus:ring-brand-400/40 ' + + 'cursor-pointer rounded-full px-2.5 py-1 transition focus:outline-none focus-visible:ring-2 focus-visible:ring-accent/40 ' + (active - ? 'bg-brand-500/25 text-white ring-1 ring-brand-400/40' - : 'text-neutral-400 hover:text-neutral-200') + ? 'bg-accent/15 text-accent ring-1 ring-accent/30' + : 'text-fg-muted hover:text-fg') } > {LABELS[locale]} diff --git a/apps/desktop/src/pages/AuthCallbackPage.tsx b/apps/desktop/src/pages/AuthCallbackPage.tsx index a67f672..124552d 100644 --- a/apps/desktop/src/pages/AuthCallbackPage.tsx +++ b/apps/desktop/src/pages/AuthCallbackPage.tsx @@ -29,15 +29,15 @@ export function AuthCallbackPage() { if (state.kind === 'done') return ; return ( -
+
{state.kind === 'pending' ? ( -
- +
+ {t('common:finalising_session')}
) : ( -
- +
+

{state.message}

)} diff --git a/apps/desktop/src/pages/AuthPage.tsx b/apps/desktop/src/pages/AuthPage.tsx index fc62a93..fd0890c 100644 --- a/apps/desktop/src/pages/AuthPage.tsx +++ b/apps/desktop/src/pages/AuthPage.tsx @@ -84,112 +84,109 @@ export function AuthPage() { [mode, email, username, inviteCode, i18n, t], ); - // Already signed in? Bounce to chats. Guards take it from here. if (session) return ; return ( - - - - - ); -} - -// --------------------------------------------------------------------------- -// Layout -// --------------------------------------------------------------------------- - -function Shell({ children }: { children: React.ReactNode }) { - return ( -
- -
- {children} +
+ +
+ +
); } -function BackgroundStage() { +// --------------------------------------------------------------------------- +// Shell background — ambient blobs spread across the full viewport. Anchored +// to percentages so they stay in the same relative position regardless of +// monitor width (works as well on 1440 as on 3440 ultrawide). +// --------------------------------------------------------------------------- + +function ShellBackground() { return ( -