Skip to content

fix: resolve dark mode white flash on initial page load#7446

Open
AnkitRewar11 wants to merge 63 commits intolayer5io:masterfrom
AnkitRewar11:fix/dark-mode-flicker
Open

fix: resolve dark mode white flash on initial page load#7446
AnkitRewar11 wants to merge 63 commits intolayer5io:masterfrom
AnkitRewar11:fix/dark-mode-flicker

Conversation

@AnkitRewar11
Copy link

Description

This PR fixes #7443

Fixes the white background flash (FOUC) that appears
briefly before dark theme loads on initial page visit.

Changes Made

  • Added setHtmlAttributes to set dark background at HTML level during SSR before any JS runs
  • Added visibility hidden/visible to prevent white flash while theme variables are being applied
  • Fixed JSON parsing bug — removed single quote wrapping around JSON.stringify
  • Fixed theme keys to use ThemeSetting values instead of hardcoded "light"/"dark"
  • Added fallback background color in fonts.css

Notes for Reviewers

Tested on initial page load — white flash no longer appears before dark theme loads.

Signed commits

  • Yes, I signed my commits.

Refactor theme handling to use ThemeSetting values as keys and improve theme application logic.

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@YASHMAHAKAL
Copy link
Contributor

@AnkitRewar11 Build is failing :(

onRenderBody.js Outdated
export const onRenderBody = ( { setPreBodyComponents }) => {
export const onRenderBody = ({ setPreBodyComponents, setHtmlAttributes }) => {
// FIX 4: Set dark background at HTML level during SSR — before any JS runs
setHtmlAttributes({ style: "background-color: #000;" });
Copy link
Contributor

@YASHMAHAKAL YASHMAHAKAL Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AnkitRewar11 Change to setHtmlAttributes({ style: { backgroundColor: "#000" } });
This can be root cause of build failure : )

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@AnkitRewar11 AnkitRewar11 requested a review from YASHMAHAKAL March 2, 2026 22:01
@l5io
Copy link
Member

l5io commented Mar 2, 2026

🚀 Preview for commit 16be0d1 at: https://69a60abf69446feaf20b1156--layer5.netlify.app

…hite flash

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 3, 2026

🚀 Preview for commit 4c00b0f at: https://69a6f5b69b91ec0965af033c--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 3, 2026

🚀 Preview for commit e238605 at: https://69a6fc3180551b17ed94b78c--layer5.netlify.app

Copy link
Contributor

@Bhumikagarggg Bhumikagarggg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please look it carefully it is still not working

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 3, 2026

🚀 Preview for commit dc10791 at: https://69a707bdb720f07b5a3f10e3--layer5.netlify.app

@AnkitRewar11
Copy link
Author

@Bhumikagarggg Fixed FOUC properly by updating the onRenderBody.js script to set the background dynamically before hydration. Reverted isDark to false to avoid dark flashes for light mode users. Please review.

@YASHMAHAKAL
Copy link
Contributor

🚀 Preview for commit dc10791 at: https://69a707bdb720f07b5a3f10e3--layer5.netlify.app

@AnkitRewar11, are you aware that this specific link called netlify preview actually shows a site-preview for your changes ? after every commit you'll see this preview which carries chnages you made in your recent commits. so before requesting any review make sure everything is working in those specific netlify previews.. Thanks : )

@YASHMAHAKAL
Copy link
Contributor

@AnkitRewar11 and yes, i can still see white flash in latest preview :(

Refactor theme handling logic and improve background color application.

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 3, 2026

🚀 Preview for commit cdd8e7d at: https://69a716e51f79b722326cbaca--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 3, 2026

🚀 Preview for commit 8fd5caa at: https://69a71c097894c73d2fa21956--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Updated background colors for dark mode and light mode.

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 7, 2026

🚀 Preview for commit 9095d71 at: https://69abc061ed37728d8e011b33--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 14, 2026

🚀 Preview for commit 56c3d1c at: https://69b5d07c69a13fc64517eb0e--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 14, 2026

🚀 Preview for commit 1b78744 at: https://69b5db8055d43c116569b181--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 14, 2026

🚀 Preview for commit 165cfdd at: https://69b5e050f87b48807455efea--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 14, 2026

🚀 Preview for commit 2c527e1 at: https://69b5e55adce2ee59cbd4015b--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 14, 2026

🚀 Preview for commit 2cbe036 at: https://69b5eac7f0e23e5febdce9ef--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit c3b41ee at: https://69b64f254f766dd776edacdd--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit f9967fd at: https://69b6544df91a71c1fd51aa2b--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit f2e4925 at: https://69b65b0b7a8bf7d714812698--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit 3d55b3d at: https://69b6614fc7ca6ee8f24cf3d4--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit abbe4ec at: https://69b667289a840fd9813db775--layer5.netlify.app

Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
Signed-off-by: Ankit Rewar <171806101+AnkitRewar11@users.noreply.github.com>
@l5io
Copy link
Member

l5io commented Mar 15, 2026

🚀 Preview for commit ad4ffff at: https://69b66c5e5d704befd6c55714--layer5.netlify.app

@Bhumikagarggg
Copy link
Contributor

@AnkitRewar11 Thank you for your contribution! Let's discuss this during the website call today at 5:30 PM IST | 6 AM CST Add it as an agenda item to the meeting minutes, if you would 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dark mode flicker — white background appears briefly before theme loads

6 participants