Commit Graph

6 Commits

Author SHA1 Message Date
Brian Fertig f66c7731d1 Add per-project theme assignment with scoped theming
- Extract theme constants (THEMES, THEME_CLASSES, DARK_SURFACES) into a new
  framework-free lib/themes.ts so server and client code share one source of
  truth; re-export from theme-provider for backward compatibility.
- Add nullable `theme` column to Project (Prisma migration + schema), plus
  ProjectThemeSchema validation and a setProjectTheme server action.
- Introduce a ThemeScope context in the provider: a subtree can temporarily
  override the global preference via useThemeScope().setScope(name); the
  scoped theme wins for resolvedTheme/DOM while active, then lifts on cleanup.
- Render an inline no-FOUC script (themeSwitchScript) on project pages that
  applies the theme class before first paint and leaves a data-project-theme
  marker the provider reads at hydration.
- Add ProjectThemeScope component that sets/clears the scope from live
  ProjectsContext state, so picking a new theme updates instantly without
  waiting for the server re-render.
- Add ProjectThemePicker dropdown (Default + light/dark options) rendered
  beside the project title in the kanban board header.
- Wire optimistic setProjectTheme into ProjectsContext with rollback and
  error toast on failure.
- Update use-dark-theme hooks to read resolvedTheme from context instead of
  resolving locally, so they reflect scoped themes correctly.
2026-08-29 22:07:10 -06:00
Brian Fertig bb4e8b5558 Updated Theme Colors 2026-08-28 14:50:06 -06:00
Brian Fertig 15bfcfa064 Additional changes to the Cyberpunk theme, to make it even more cyberpunk. 2026-08-28 13:34:08 -06:00
Brian Fertig be6926c027 Two new extra-detailed themes: Cybperpunk and Blueprint 2026-08-28 11:33:57 -06:00
Brian Fertig 5e23a984e1 Added more themes 2026-08-28 09:00:31 -06:00
Brian Fertig 70838b121d Add debugging tools and dark-theme surface detection for theme QA
- Add .cdp/*.cjs scripts for CDP-driven headless Edge testing of theme
  switching, console errors, and login flows, plus a vendored
  next-themes beta package used during investigation
- Add components/theme/use-dark-theme.ts to treat "ocean" as a dark
  surface alongside "dark" for card colors and markdown color-mode
- Add shots/ screenshots captured while verifying theme behavior across
  pages and breakpoints
2026-08-25 13:36:47 -06:00