From 1d69d75633741ce4ac2b0178acfeb06f8755a242 Mon Sep 17 00:00:00 2001 From: Harry Randall Date: Wed, 23 Sep 2026 10:58:26 +1000 Subject: [PATCH 1/3] fix: follow the system theme outside the account Signed-out visitors now follow the operating system instead of a forced light theme, and never inherit the last account's saved choice. Signed-in people keep their choice on every route, onboarding included. Only the landing page stays light until it has a dark design. The auth pages use theme tokens instead of hard-coded greys, the landing mesh gains a dark variant, and the global error page follows the saved theme. Sign-up stops shouting, sign-in and sign-up keep focus on the submitted field and link errors to it, and the loading skeleton matches the stacked social buttons. Co-Authored-By: Claude Opus 5.5 --- apps/web/app/auth/auth-loading.tsx | 26 ++--- apps/web/app/auth/auth-shell.tsx | 32 +++---- apps/web/app/auth/sign-in/sign-in-form.tsx | 35 ++++--- apps/web/app/auth/sign-up/sign-up-form.tsx | 57 +++++++---- apps/web/app/auth/social-sign-in.tsx | 11 +-- apps/web/app/global-error.tsx | 11 ++- apps/web/app/globals.css | 20 ++++ apps/web/app/login/page.tsx | 14 +-- apps/web/app/signup/page.tsx | 16 ++-- apps/web/lib/theme.ts | 35 ++++--- apps/web/tests/theme-first-paint.test.mjs | 3 +- apps/web/tests/theme.test.ts | 105 +++++++++++++++------ apps/web/ui/shell/app-theme-provider.tsx | 8 +- 13 files changed, 244 insertions(+), 129 deletions(-) diff --git a/apps/web/app/auth/auth-loading.tsx b/apps/web/app/auth/auth-loading.tsx index 2414e334..406bbe76 100644 --- a/apps/web/app/auth/auth-loading.tsx +++ b/apps/web/app/auth/auth-loading.tsx @@ -16,28 +16,28 @@ export function AuthLoading({
{label} - - - -
- - + + + +
+ +
- - - + + +
{Array.from({ length: fields }, (_, index) => (
- - + +
))} - +
- +
); diff --git a/apps/web/app/auth/auth-shell.tsx b/apps/web/app/auth/auth-shell.tsx index 2ea71f4b..9b17bec0 100644 --- a/apps/web/app/auth/auth-shell.tsx +++ b/apps/web/app/auth/auth-shell.tsx @@ -16,12 +16,12 @@ const highlights = [ */ export function AuthShell({ children }: { children: ReactNode }) { return ( -
+
coursemap @@ -31,7 +31,7 @@ export function AuthShell({ children }: { children: ReactNode }) {
{children}
-

+

Coursemap is an independent planning tool. It is not an official ANU system and does not replace Programs and Courses or academic advice.

@@ -39,23 +39,23 @@ export function AuthShell({ children }: { children: ReactNode }) {