const STORAGE_KEY = 'ccui-theme'
function applyDark(isDark: boolean) {
document.documentElement.classList.toggle('dark', isDark)
}
// Initialize: use saved preference or system default
const media = window.matchMedia('(prefers-color-scheme: dark)')
const saved = localStorage.getItem(STORAGE_KEY) // 'dark' | 'light' | null
applyDark(saved ? saved === 'dark' : media.matches)
// Manual toggle
function setTheme(isDark: boolean) {
localStorage.setItem(STORAGE_KEY, isDark ? 'dark' : 'light')
applyDark(isDark)
}
// Listen for system changes if no manual preference is set
media.addEventListener('change', (e) => {
if (!localStorage.getItem(STORAGE_KEY)) applyDark(e.matches)
})