color-mode

Resolves the active color mode from the OS preference (prefers-color-scheme) and a user override. userSelectedColorModeAtom is settable ("light" | "dark" | "system"); colorModeSelector returns the resolved "light" | "dark".

Install

bun add @valdres/color-mode

Live example

Loading demo…

Usage

<script>
import { watch } from "valdres-svelte"
import { colorModeSelector } from "@valdres/color-mode"

const mode = watch(colorModeSelector)
</script>

{mode.value}

Exports

ExportKindType
colorModeSelectorselector"light" | "dark"
isDarkModeSelectorselectorboolean
isLightModeSelectorselectorboolean
systemColorModeAtomatom (read-only)"light" | "dark"
userSelectedColorModeAtomatom (settable)"light" | "dark" | "system"
getSystemColorModeutil fn() => "light" | "dark"
ColorModetype"light" | "dark"
UserSelectedColorModetype"light" | "dark" | "system"

Cross-framework

Global atoms and selectors — only the read primitive's name changes per framework. The prefers-color-scheme listener starts on the first subscriber and stops when the last one leaves.