import { useEffect, useState } from 'react'; function readDark(): boolean { if (typeof document === 'undefined') return false; return document.documentElement.classList.contains('dark'); } /** Tracks `dark` class on `` (theme toggle). */ export function useDarkMode(): boolean { const [isDark, setIsDark] = useState(readDark); useEffect(() => { const root = document.documentElement; const observer = new MutationObserver(() => setIsDark(readDark())); observer.observe(root, { attributes: true, attributeFilter: ['class'] }); return () => observer.disconnect(); }, []); return isDark; }