From 62dd9acb1584eb296bba087628a1d372e3d387a9 Mon Sep 17 00:00:00 2001 From: waterWang Date: Tue, 28 Jul 2026 12:41:59 +0800 Subject: [PATCH] feat: eliminate theme flash on initial paint (FOUC) via inline script [FaaFyfxR9WAQrL7FcAgEHJvztd8cVMxvjHRS55rw1nwH] --- apps/frontend/app/layout.tsx | 5 +++++ apps/frontend/components/ThemeProvider.tsx | 24 +++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/apps/frontend/app/layout.tsx b/apps/frontend/app/layout.tsx index 1dfcf6e9..62db6874 100644 --- a/apps/frontend/app/layout.tsx +++ b/apps/frontend/app/layout.tsx @@ -6,6 +6,8 @@ import Navbar from "./components/Navbar"; import { absoluteUrl, defaultDescription, siteName, siteUrl } from "./seo"; import "./globals.css"; +const THEME_INLINE_SCRIPT = `(function(){try{var e=window.localStorage.getItem("stellar-bounty-theme");if(e==="light"||e==="dark"){document.documentElement.classList.toggle("dark",e==="dark");document.documentElement.style.colorScheme=e;return}}catch(e){}var n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";document.documentElement.classList.toggle("dark",n==="dark");document.documentElement.style.colorScheme=n})();`; + export const metadata: Metadata = { metadataBase: siteUrl, title: { @@ -33,6 +35,9 @@ export const metadata: Metadata = { export default function RootLayout({ children }: { children: React.ReactNode }) { return ( + +