microsoft / microsoft/simplechat
Add per-user conversation appearance controls
@paullizer is already working on this.
Since Jul 15, 2026.
- Dominant language
- Python
- Stars
- 152
- Forks
- 116
- Avg merge
- 7h 7m
- Merged PRs (30d)
- 122
Description
Summary
Add per-user Conversation appearance preferences to the user profile so each user can customize chat readability beyond the existing light and dark themes.
The initial scope should allow independent styling of user messages and AI responses while preserving accessible, theme-aware defaults.
User Value
Conversation appearance is personal: colors and type sizes that are comfortable for one user may be difficult for another. Per-user controls would improve readability, accessibility, visual separation between speakers, and comfort during long chat sessions without changing the experience for everyone in the deployment.
Proposed Behavior
Add a Conversation appearance section to the user profile with:
- User message background color
- User message text color
- User message font size
- AI response background color
- AI response text color
- AI response font size
- A live conversation preview
- A reset-to-default action
Preferences should be stored with the user profile and follow the user across browsers/devices. Existing light and dark themes remain the default foundation; custom conversation settings override only the relevant message presentation.
Use constrained color and size values rather than accepting arbitrary CSS. Provide contrast feedback for selected background/text combinations and retain accessible defaults.
Acceptance Criteria
- A signed-in user can open a Conversation appearance section from their profile.
- The user can independently configure background color, text color, and font size for user messages and AI responses.
- Changes are represented in a live preview before saving.
- Saved preferences persist in the user's profile and apply to their chats across sessions and devices.
- A reset action restores the application defaults.
- Custom settings work predictably in both light and dark themes, with clear fallback behavior for unset values.
- Color controls provide contrast feedback, and default combinations meet WCAG AA contrast expectations.
- Inputs use validated color values and bounded font-size options; arbitrary CSS is never stored or rendered.
- Styling remains scoped to conversation messages and does not break Markdown, code blocks, tables, citations, streaming responses, or mobile layouts.
- Focused backend and UI tests cover persistence, validation, rendering, theme behavior, and reset behavior.
Additional Ideas / Follow-ups
These could be included if scope permits or split into later issues:
- Preset palettes such as Default, High Contrast, Soft, and Color Vision Friendly
- Font family choices, including a highly readable or dyslexia-friendly option
- Line-height, message spacing/density, and maximum message-width controls
- Separate settings for code blocks versus prose
- An option to follow operating-system text scaling or browser defaults
- Import/export of an appearance preset
- An administrator policy to enable customization, restrict available presets, or enforce organizational defaults
Notes
- Current appearance options are primarily light and dark; this request is specifically for per-user conversation presentation.
- Prefer CSS custom properties or an equivalent scoped styling mechanism so message rendering logic does not fork for each preference.
- Preserve backward compatibility for users without saved appearance preferences.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.