diff --git a/src/app/_components/ThemeScript.tsx b/src/app/_components/ThemeScript.tsx new file mode 100644 index 0000000..8530c45 --- /dev/null +++ b/src/app/_components/ThemeScript.tsx @@ -0,0 +1,23 @@ +export const ThemeScript = () => { + const codeToRunOnClient = `(() => { + try { + const storedTheme = localStorage.getItem('theme'); + const theme = storedTheme === 'light' || storedTheme === 'dark' ? storedTheme : 'system'; + + const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; + const resolvedTheme = theme === 'system' ? (systemPrefersDark ? 'dark' : 'light') : theme; + + if (resolvedTheme === 'dark') { + document.documentElement.classList.add('dark'); + } else { + document.documentElement.classList.remove('dark'); + } + } catch (e) { + console.error(e) + } + })();`; + + return