Docs

Dark Mode

Adding dark mode to your site using mode-watcher.

Usage

Install mode-watcher

npm install mode-watcher

See Mode Watcher for details.

Add ModeWatcher component

Add the <ModeWatcher /> component to your root layout file.

+layout.svelte

1
<script lang="ts">
2
	import { ModeWatcher } from "mode-watcher";
3
	let { children } = $props();
4
</script>
5

6
<ModeWatcher defaultMode="system" />
7
{@render children()}

That's it!

Use the toggleMode function and $mode to toggle:

Svelte Code

1
<script lang="ts">
2
	import Button from '$lib/components/base/button.svelte';
3
	import Icon from '@iconify/svelte';
4
	import { toggleMode, mode } from 'mode-watcher';
5
</script>
6

7
<Button size="icon" onclick={toggleMode}>
8
	{#if $mode === 'light'}
9
		<Icon icon="line-md:moon-to-sunny-outline-loop-transition" />
10
	{:else}
11
		<Icon icon="line-md:sunny-outline-to-moon-alt-loop-transition" />
12
	{/if}
13
</Button>