Skip to content

fix(mail): resolve theme before first paint on pre-login screens - #387

Open
krantheman wants to merge 1 commit into
frappe:developfrom
krantheman:fix/mail-login-theme-flash
Open

fix(mail): resolve theme before first paint on pre-login screens#387
krantheman wants to merge 1 commit into
frappe:developfrom
krantheman:fix/mail-login-theme-flash

Conversation

@krantheman

Copy link
Copy Markdown
Member

<html data-theme> is rendered from User.desk_theme, which the server only knows for an authenticated session — Guests always get light, so the login/signup/reset screens flashed white on a dark machine.

A blocking script in <head> now resolves the theme from the last mode applied on this device (localStorage), falling back to prefers-color-scheme for guests; the fetched color_scheme takes over once boot data lands. Other apps keep the server-rendered desk theme untouched.

Closes #1

The server renders <html data-theme> from User.desk_theme, which is only
known for an authenticated session — Guests always get 'light', so the
login/signup/reset screens flashed white on a dark machine before mail's
own preference (User Settings.color_scheme) arrived with its boot data.

Resolve the theme in a blocking script in <head>, from the last mode
applied on this device (localStorage) falling back to prefers-color-scheme
for guests, and let the fetched color scheme take over once it lands.
Other apps keep the server-rendered desk theme untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@krantheman
krantheman requested a review from s-aga-r as a code owner July 29, 2026 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: flashbang while login

1 participant