blog/src/lib/theme.ts
2023-04-28 15:24:55 +02:00

24 lines
571 B
TypeScript

import { writable } from 'svelte/store'
import { browser } from '$app/environment'
type Theme = 'light' | 'dark'
const userTheme = browser && localStorage.getItem('color-scheme')
export const theme = writable(userTheme ?? 'dark')
export function toggleTheme() {
theme.update((currentTheme) => {
const newTheme = currentTheme === 'dark' ? 'light' : 'dark'
document.documentElement.setAttribute('color-scheme', newTheme)
localStorage.setItem('color-scheme', newTheme)
return newTheme
})
}
export function setTheme(newTheme: Theme) {
theme.set(newTheme)
}