feat(settings): theme scheduler, UI scale, CustomSelect scroll fix

- Time-based theme scheduler: auto-switches between day/night theme
  based on configurable times; setInterval re-checks every minute
- UI scale slider (80–150%) via CSS zoom on document root; preset
  buttons aligned to actual slider positions
- CustomSelect: scroll listener keeps dropdown anchored on scroll
- All features i18n in 7 languages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Psychotoxical
2026-04-08 12:23:14 +02:00
parent f0b423ddc4
commit e64d151079
16 changed files with 285 additions and 10 deletions
+4
View File
@@ -6,6 +6,8 @@ export type FontId = 'inter' | 'outfit' | 'dm-sans' | 'nunito' | 'rubik' | 'spac
interface FontState {
font: FontId;
setFont: (font: FontId) => void;
uiScale: number;
setUiScale: (scale: number) => void;
}
export const useFontStore = create<FontState>()(
@@ -13,6 +15,8 @@ export const useFontStore = create<FontState>()(
(set) => ({
font: 'lexend',
setFont: (font) => set({ font }),
uiScale: 1.0,
setUiScale: (uiScale) => set({ uiScale }),
}),
{ name: 'psysonic_font' }
)