darkmode

View Source

NOTE: Introduced feature in v0.2.3.

USAGE: This feature can be demonstrated by clicking the Theme Toggle button in the top navigation.

darkmode is a readonly Svelte Store, which returns true whenever either htmldark or prefersdark are truthy.

<script>
    import {Text, darkmode} from "@kahi-ui/framework";

    const darkmode_store = darkmode();
</script>

<Text>
    {$darkmode_store
        ? "Darkmode is enabled!"
        : "Lightmode is enabled!"}
</Text>

Imports

import {darkmode, lightmode} from "@kahi-ui/framework";

Light Mode

NOTE: Introduced feature in v0.6.0.

To check if lightmode is enabled, the lightmode Store is available.

<script>
    import {Text, lightmode} from "@kahi-ui/framework";

    const lightmode_store = lightmode();
</script>

<Text>
    {$lightmode_store
        ? "Lightmode is enabled!"
        : "Lightmode is disabled!"}
</Text>

Storage

To stay unopinonated in your Application's architecture, Kahi UI does NOT supply any mechanism to store data on the user's Browser. So if you want to provide a manual switch for users to change your Application's theme mode like this documentation website. It's recommended to use something like the Web Storage API and htmlmode.

Compatibility

The Store is dependent on MutationObserver / Window.matchMedia. So if you're rendering on the server, it'll always return false for darkmode, defaulting to true for lightmode.