A very simple bookmarking webapp
pinboard.ing/
1export type Theme = "light" | "dark"
2
3export const STORAGE_KEY = "theme"
4
5function getSystemTheme(): Theme {
6 return window.matchMedia("(prefers-color-scheme: dark)").matches
7 ? "dark"
8 : "light"
9}
10
11export function getInitialTheme(): Theme {
12 const stored = localStorage.getItem(STORAGE_KEY)
13 if (stored === "light" || stored === "dark") {
14 return stored
15 }
16 return getSystemTheme()
17}
18
19export function useTheme() {
20 document.documentElement.dataset.theme = getInitialTheme()
21}