diff --git a/frontend/src/components/settings/SettingsDatabaseSection.tsx b/frontend/src/components/settings/SettingsDatabaseSection.tsx index 50e869d..ec58d85 100644 --- a/frontend/src/components/settings/SettingsDatabaseSection.tsx +++ b/frontend/src/components/settings/SettingsDatabaseSection.tsx @@ -11,6 +11,7 @@ import { getReopenLastConversationEnabled, setReopenLastConversationEnabled, } from '../../utils/lastViewedConversation'; +import { ThemeSelector } from './ThemeSelector'; import { getLocalLabel, setLocalLabel, type LocalLabel } from '../../utils/localLabel'; import type { AppSettings, AppSettingsUpdate, HealthStatus } from '../../types'; @@ -223,6 +224,12 @@ export function SettingsDatabaseSection({
+ +
+ Color Scheme + +
+

- This applies only to this device/browser. It does not sync to server settings. + These settings apply only to this device/browser. They do not sync to server settings.

diff --git a/frontend/src/components/settings/ThemeSelector.tsx b/frontend/src/components/settings/ThemeSelector.tsx new file mode 100644 index 0000000..a0342d4 --- /dev/null +++ b/frontend/src/components/settings/ThemeSelector.tsx @@ -0,0 +1,53 @@ +import { useState } from 'react'; +import { THEMES, getSavedTheme, applyTheme } from '../../utils/theme'; + +/** 3x2 grid of colored dots previewing a theme's palette. */ +function ThemeSwatch({ colors }: { colors: readonly string[] }) { + return ( +