aboutsummaryrefslogtreecommitdiffstats
path: root/frontend-vanilla/src/store.ts
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-17 19:00:26 -0800
committerGitHub <noreply@github.com>2026-02-17 19:00:26 -0800
commit9db36ae402dbb74f7223a4efc8b2483086684e38 (patch)
treef7f69858a5667e88f160a579c805d6ad834e8844 /frontend-vanilla/src/store.ts
parentfd5f67d2a45dbefbc1045bf8270cc3bc5d711592 (diff)
parent81c78496e1fa0701618254986e9ff17081a74f11 (diff)
downloadneko-9db36ae402dbb74f7223a4efc8b2483086684e38.tar.gz
neko-9db36ae402dbb74f7223a4efc8b2483086684e38.tar.bz2
neko-9db36ae402dbb74f7223a4efc8b2483086684e38.zip
Merge pull request #13 from adammathes/claude/add-css-themes-QGTmP
Add 4 CSS style themes with runtime switcher
Diffstat (limited to 'frontend-vanilla/src/store.ts')
-rw-r--r--frontend-vanilla/src/store.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/frontend-vanilla/src/store.ts b/frontend-vanilla/src/store.ts
index dc79339..bfbc55e 100644
--- a/frontend-vanilla/src/store.ts
+++ b/frontend-vanilla/src/store.ts
@@ -1,6 +1,6 @@
import type { Feed, Item, Category } from './types.ts';
-export type StoreEvent = 'feeds-updated' | 'tags-updated' | 'items-updated' | 'active-feed-updated' | 'active-tag-updated' | 'loading-state-changed' | 'filter-updated' | 'search-updated' | 'theme-updated' | 'sidebar-toggle';
+export type StoreEvent = 'feeds-updated' | 'tags-updated' | 'items-updated' | 'active-feed-updated' | 'active-tag-updated' | 'loading-state-changed' | 'filter-updated' | 'search-updated' | 'theme-updated' | 'sidebar-toggle' | 'style-theme-updated';
export type FilterType = 'unread' | 'all' | 'starred';
@@ -34,6 +34,7 @@ export class Store extends EventTarget {
theme: string = localStorage.getItem('neko-theme') || 'light';
fontTheme: string = localStorage.getItem('neko-font-theme') || 'default';
headingFontTheme: string = localStorage.getItem('neko-heading-font-theme') || 'default';
+ styleTheme: string = localStorage.getItem('neko-style-theme') || 'default';
sidebarVisible: boolean = getInitialSidebarVisible();
setFeeds(feeds: Feed[]) {
@@ -108,6 +109,12 @@ export class Store extends EventTarget {
this.emit('theme-updated');
}
+ setStyleTheme(styleTheme: string) {
+ this.styleTheme = styleTheme;
+ localStorage.setItem('neko-style-theme', styleTheme);
+ this.emit('style-theme-updated');
+ }
+
setSidebarVisible(visible: boolean) {
this.sidebarVisible = visible;
setSidebarCookie(visible);