0.0.21 • Published 2 years ago
svelte-theme-switch v0.0.21
Svelte-Theme-Switch
Dark/Light mode in Svelte.
Ported from next-themes
Install
$ npm install svelte-theme-switch
# or
$ yarn add svelte-theme-switchUsage
In your +layout.svelte file
<sript>
import { ThemeWrapper } from "svelte-theme-switch";
</script>
<ThemeWrapper>
<slot/>
</ThemeWrapper>In your Component file
<sript>
import { themeStore } from "svelte-theme-switch";
</script>
<p>Current theme is {$themeStore.theme}</p>
<button
on:click={() =>
$themeStore.setTheme($themeStore.theme === "light" ? "dark" : "light")}
>
Switch Theme
</button>ThemeProvider
All your theme configuration is passed to ThemeProvider.
storageKey = 'theme': Key used to store theme setting in localStoragedefaultTheme = 'system': Default theme name (for v0.0.12 and lower the default waslight). IfenableSystemis false, the default theme islightforcedTheme: Forced theme name for the current page (does not modify saved theme settings)enableSystem = true: Whether to switch betweendarkandlightbased onprefers-color-schemeenableColorScheme = true: Whether to indicate to browsers which color scheme is used (dark or light) for built-in UI like inputs and buttonsdisableTransitionOnChange = false: Optionally disable all CSS transitions when switching themes (example)themes = ['light', 'dark']: List of theme namesattribute = 'data-theme': HTML attribute modified based on the active theme- accepts
classanddata-*(meaning any data attribute,data-mode,data-color, etc.) (example)
- accepts
value: Optional mapping of theme name to attribute value- value is an
objectwhere key is the theme name and value is the attribute value (example)
- value is an
nonce: Optional nonce passed to the injectedscripttag, used to allow-list the next-themes script in your CSP
useTheme
useTheme takes no parameters, but returns:
theme: Active theme namesetTheme(name): Function to update the themeforcedTheme: Forced page theme or falsy. IfforcedThemeis set, you should disable any theme switching UIresolvedTheme: IfenableSystemis true and the active theme is "system", this returns whether the system preference resolved to "dark" or "light". Otherwise, identical tothemesystemTheme: IfenableSystemis true, represents the System theme preference ("dark" or "light"), regardless what the active theme isthemes: The list of themes passed toThemeProvider(with "system" appended, ifenableSystemis true)
0.0.21
2 years ago
0.0.19
2 years ago
0.0.18
2 years ago
0.0.17
2 years ago
0.0.16
2 years ago
0.0.15
2 years ago
0.0.14
2 years ago
0.0.13
2 years ago
0.0.12
2 years ago
0.0.11
2 years ago
0.0.10
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago