Files
web-app-launcher/plans/phase-3-advanced-features/phase-3-user-themes.md
T
alexei.dolgolyov c6a7de895d feat(phase3): import/export, sparklines, user theme overrides
- JSON import/export with conflict resolution (skip/overwrite) + admin UI
- Ping history sparklines on AppWidget and AppCard (24h, 288 points)
- Hourly cleanup job for old AppStatus records
- User theme preferences (hue, saturation, mode, background, locale)
- Settings page with ThemeCustomizer (sliders, toggles, live preview)
- Prisma migration for user preference fields
- i18n translations for all new strings (EN/RU)
2026-03-25 00:51:01 +03:00

1.3 KiB

Phase 3: User Theme Overrides

Status: Complete Parent plan: PLAN.md Domain: fullstack

Tasks

  • Task 1: Add themeMode, primaryHue, primarySaturation, backgroundType, locale fields to User model (Prisma migration)
  • Task 2: Create src/routes/api/users/me/preferences/+server.ts — GET/PATCH user preferences
  • Task 3: Create src/routes/settings/+page.server.ts — user settings page data
  • Task 4: Create src/routes/settings/+page.svelte — user settings page with theme customization
  • Task 5: Create src/lib/components/settings/ThemeCustomizer.svelte — HSL color picker, background selector, mode toggle
  • Task 6: Update theme store to load user preferences from server on login
  • Task 7: Update +layout.server.ts to pass user preferences
  • Task 8: Add user settings link to header user menu
  • Task 9: Add i18n translations (EN/RU)

Handoff to Next Phase

Phase 3 (User Theme Overrides) complete. Added nullable preference fields to User model, preferences API (GET/PATCH), settings page with ThemeCustomizer component (hue/saturation sliders, mode toggle, background selector, locale picker), server-side preference loading in layout, and Settings link in Header user menu. i18n translations added for EN and RU.