Gathering detailed insights and metrics for svelte-multi-theme
Gathering detailed insights and metrics for svelte-multi-theme
Gathering detailed insights and metrics for svelte-multi-theme
Gathering detailed insights and metrics for svelte-multi-theme
Perfect SvelteKit dark mode in 2 lines of code. Support System preference and any other theme with no flashing
npm install svelte-multi-theme
Typescript
Module System
Node Version
NPM Version
71.6
Supply Chain
96
Quality
75.8
Maintenance
100
Vulnerability
100
License
TypeScript (56.74%)
Svelte (37.07%)
JavaScript (4.77%)
HTML (1.42%)
Total Downloads
171
Last Day
1
Last Week
6
Last Month
15
Last Year
171
15 Commits
1 Branches
1 Contributors
Latest Version
1.0.0
Package Id
svelte-multi-theme@1.0.0
Unpacked Size
29.24 kB
Size
10.41 kB
File Count
24
NPM Version
10.5.0
Node Version
21.7.1
Publised On
05 Apr 2024
Cumulative downloads
Total Downloads
Last day
0%
1
Compared to previous day
Last week
100%
6
Compared to previous week
Last month
50%
15
Compared to previous month
Last year
0%
171
Compared to previous year
This library is a port of next-theme for SvelteKit. All credit goes to pacocoursey and all next-themes contributors
While usable, this library is still in its early phase, PR are welcome.
An abstraction for themes in your SvelteKit.js app.
Check out the Live Example to try it for yourself.
1$ pnpm add svelte-themes 2# or 3$ npm install svelte-themes 4# or 5$ yarn add svelte-themes
In order to use svelte-themes you will need to add SvelteTheme
inside your __layout component
.
1// pages/__layout.svelte 2 3<script> 4 import SvelteTheme from 'svelte-themes/SvelteTheme.svelte'; 5</script> 6 7<SvelteTheme /> 8<slot />
storageKey = 'theme'
: Key used to store theme setting in localStoragedefaultTheme = 'system'
: Default theme name. If enableSystem
is false, the default theme is light
forcedTheme
: Forced theme name for the current page (does not modify saved theme settings)enableSystem = true
: Whether to switch between dark
and light
based on prefers-color-scheme
enableColorScheme = 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 themesthemes = ['light', 'dark']
: List of theme namesattribute = 'data-theme'
: HTML attribute modified based on the active theme
class
and data-*
(meaning any data attribute, data-mode
, data-color
, etc.)value
: Optional mapping of theme name to attribute value
object
where key is the theme name and value is the attribute valueSvelte-themes exports
theme
writable store as its default so you can access the theme props anywhere in you appsetTheme
function so you can easily switch the theme.1<script> 2import themeStore, { setTheme } from 'svelte-themes'; 3<script/> 4 5<select bind:value={$themeStore.theme}> 6 <option value="dark">Dark</option> 7 <option value="light">Light</option> 8 <option value="system">System</option> 9</select> 10 11<button on:click={() => setTheme('dark')}> Dark mode </button>
theme
: Active theme nameforcedTheme
: Forced page theme or falsy. If forcedTheme
is set, you should disable any theme switching UIresolvedTheme
: If enableSystem
is true and the active theme is "system", this returns whether the system preference resolved to "dark" or "light". Otherwise, identical to theme
systemTheme
: If enableSystem
is true, represents the System theme preference ("dark" or "light"), regardless what the active theme isthemes
: The list of themes passed to ThemeProvider
(with "system" appended, if enableSystem
is true)For the rest of the documentation please refer to the next-themes repo.
No vulnerabilities found.
No security vulnerabilities found.