diff --git a/apps/ai-dial-admin/src/app/layout.tsx b/apps/ai-dial-admin/src/app/layout.tsx index 7d13b52bf2..14c3c3aaf0 100644 --- a/apps/ai-dial-admin/src/app/layout.tsx +++ b/apps/ai-dial-admin/src/app/layout.tsx @@ -43,9 +43,27 @@ export default async function RootLayout({ children }: { children: ReactNode }) ? getIconPath(themesConfig?.images['admin-favicon'] || themesConfig?.images.favicon) : undefined; + // Runs synchronously in before first paint to apply saved CSS variables, + // preventing a flash of the default dark theme on page refresh. + const themeInitScript = ` + (function () { + try { + var colors = localStorage.getItem('theme-colors'); + if (colors) { + var parsed = JSON.parse(colors); + var root = document.documentElement; + Object.keys(parsed).forEach(function (key) { + root.style.setProperty('--' + key, parsed[key]); + }); + } + } catch (e) {} + })(); + `; + return ( - + +