Something went wrong. Try again.
A very simple bookmarking webapp pinboard.ing
Something went wrong. Try again.
516 B · 21 lines
TypeScript
12345678910111213141516171819202122export type Theme = "light" | "dark"
export const STORAGE_KEY = "theme"
function getSystemTheme(): Theme { return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"}
export function getInitialTheme(): Theme { const stored = localStorage.getItem(STORAGE_KEY) if (stored === "light" || stored === "dark") { return stored } return getSystemTheme()}
export function useTheme() { document.documentElement.dataset.theme = getInitialTheme()}