Skip to content

feat(settings): create appearance tab with themes and display controls#64

Closed
tyulyukov wants to merge 1 commit intomainfrom
marcode/appearance-settings-tab
Closed

feat(settings): create appearance tab with themes and display controls#64
tyulyukov wants to merge 1 commit intomainfrom
marcode/appearance-settings-tab

Conversation

@tyulyukov
Copy link
Copy Markdown
Owner

Summary

  • Created AppearanceSettingsPanel with Telegram-style theme preview cards showing color palettes and layout
  • Reorganized settings into dedicated tabs: General, Appearance, Connections, and Archive
  • Added conversation width control (narrow/comfortable/wide) with CSS variable binding to --chat-column-max-width
  • Added display toggles for reduce motion and ambient grain
  • Replaced static max-w-208 / max-w-3xl width constraints across chat UI with dynamic CSS variable
  • Added appearance.ts utility for theme preview palettes and conversation width configuration
  • Added settingsRestore.ts for the restore-to-defaults logic (moved from SettingsPanels.tsx)
  • Updated settings navigation sidebar with Appearance tab and new icon
  • Added browser test verifying theme selection, conversation width, and display settings persist to localStorage

Testing

  • Verify Appearance tab loads with theme gallery organized by groups
  • Click each theme and confirm the preview updates and selection badge appears
  • Select conversation width option and verify the chat column width adjusts dynamically
  • Toggle "Reduce motion" and "Ambient grain" and confirm settings persist to localStorage (marcode:client-settings:v1)
  • Verify General tab no longer shows theme picker, time format, or diff wrapping controls
  • Check that all three conversation width options display correct preview widths
  • Confirm reset buttons appear and clear appearance settings back to defaults

- Extract theme picker from General settings into dedicated Appearance tab
- Add AppearanceSettingsPanel with Telegram-style theme gallery previews
- Implement conversation width picker (narrow/comfortable/wide) with CSS variables
- Add reduce motion and ambient grain display toggles
- Replace hardcoded chat column widths with dynamic CSS variable approach
- Update SettingsSidebarNav to include Appearance route
- Remove ThemePicker component (consolidated into AppearanceSettingsPanel)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant