Repository navigation
Description
Description
The user-message bubble in the Desktop chat regressed visually in 2.0. In 1.18 it was a neutral surface; in 2.0 it is always tinted blue, and in workspace sessions it becomes a saturated accent blue with fixed near-white text.
Every session is now classified as local or workspace and the bubble is styled per type:
- local, light:
--v2-blue-100background /--v2-blue-700text - local, dark:
--v2-blue-1200background /--v2-blue-300text - workspace:
--v2-background-bg-accentbackground /--v2-text-text-contrasttext
CSS: packages/session-ui/src/components/message-part.css (workspace rule ~1472-1477, local rules ~1479-1497). The attributes come from packages/app/src/session/timeline/virtualizer.tsx:643-644 (data-workspace-session / data-local-session). Because one of the two is always set, the generic neutral rule (--v2-background-bg-layer-01) is effectively unreachable.
In 1.18 (v1.18.33) the bubble was neutral: --v2-background-bg-layer-01/02 background with --v2-text-text-base text (packages/session-ui/src/components/message-part.css:1336-1383 in that tag). So the 1.18 -> 2.0 upgrade changes the chat from a calm neutral surface to a blue one, and the dialogue visually degrades.
This is most obvious with the default theme "OpenCode" (file oc-2.json, mapped to the label "OpenCode" in packages/ui/src/theme/context.tsx). It pins v2-blue-600 to #3b5cf6 and v2-text-text-contrast to near-white, so a workspace bubble is #3b5cf6 with #ffffff text (5.19:1):
| Session type (theme OpenCode) | Bubble background | Text | Contrast |
|---|---|---|---|
| workspace | #3b5cf6 |
#ffffff |
5.19:1 |
| local, light | #f5f8ff |
#0b34f4 |
7.03:1 |
| local, dark | #021945 |
#c3d4fd |
11.53:1 |
White text on that indigo reads harshly, and all user messages in a workspace now form a bright blue wall. The underlying cause is structural: blue-600 is a mid-lightness step generated the same way for light and dark (generateV2HueScale() in packages/ui/src/theme/v2/resolve.ts), and the foreground is a fixed token rather than a contrast-aware one. The icon half of the same role is contrast-picked (packages/ui/src/theme/v2/foreground.ts:57), the text half is not. With other themes the same hardcoded pairing is unreadable (One Dark Pro: 1.11:1 - already reported separately in #50986).
Request: please restore the visual quality of the conversation area at least to the 1.18 level - either restore the neutral bubble, or make the accent-surface foreground contrast-aware (dark foreground on bright accent) and expose the token properly, so a theme cannot ship a bubble whose text cannot be read.
Expected Behavior
- User-message bubbles in Desktop 2.0 are at least as legible and visually calm as in 1.18.
- The accent surface is paired with a contrast-aware foreground, or the neutral
layer-01bubble is used by default and the strong accent is opt-in.
Actual Behavior
- All user-message bubbles are blue; workspace sessions use a saturated accent blue with fixed near-white text (
#3b5cf6/#ffffffin the default "OpenCode" theme). - Other themes inherit a derived accent that can make the bubble text unreadable (see desktop: One Dark Pro workspace messages have low contrast #50986).
Steps to reproduce
- Open OpenCode Desktop 2.0, go to Settings -> Appearance and select the theme "OpenCode".
- Open or create a session whose directory is a workspace / worktree (in the project, not the main worktree).
- Send a message and look at the user-message bubble: it is
#3b5cf6with white text. - For comparison, open a session in the project root (local session: dark navy
#021945with pale-blue text) and compare with the same message in 1.18 (neutral grey bubble).
Additional Context
- Related: desktop: One Dark Pro workspace messages have low contrast #50986 (workspace bubble low contrast in One Dark Pro), Desktop: theme switch does not apply text color in chat panel — text always stays white #42030 (chat text always stays white), TUI: unreadable mouse text selection in light mode (default opencode theme) #41281, Unreadable selected text selection in light themes #12861, Catppuccin macchiato is unreadable in desktop light mode #29629.
- The blue accent treatment was introduced by feat(desktop): update blue accent styling #47009 ("update blue accent styling") and fix(app): use worktree inventory for session accents #45506 (session accents from worktree inventory); the pairing is pinned by the e2e test
packages/app/e2e/regression/workspace-accent.spec.ts, so it must be updated together with any fix. - Reproducible consistently. Reproduced on 2.0.19; desktop: One Dark Pro workspace messages have low contrast #50986 confirmed the same tokens on 2.0.6 and 2.0.15, so the behavior is present across the whole 2.0 line.
Plugins
None.
OpenCode version
2.0.19 (Desktop).
Screenshot and/or share link
Attachments welcome from anyone on the current 2.0 build: a workspace-session bubble with the "OpenCode" theme (dark and light), next to the same bubble in 1.18.
Operating System
macOS 26 (Darwin 25.6.0, arm64); also reported on Windows 11 in #50986.
Terminal
OpenCode desktop app.
Activity
github-actions commentedon Sep 29, 2026
This issue might be a duplicate of existing issues. Please check:
opencodejr commentedon Oct 28, 2026
Thanks for the detailed write-up, @vokasug.
The user-message bubble has been redone since 2.0.19. In the v2.2.0 source, every user bubble, workspace or local, is a neutral surface:
--v2-background-bg-layer-02with--v2-text-text-basetext. The blueblue-100/blue-1200treatment and thebg-accent+text-contrastworkspace treatment are gone, and so are thedata-workspace-session/data-local-sessionattributes. The changes were #56961, #57001 and #57463.Could you update Desktop to v2.2.0 or later and check whether the bubbles now look right to you, with the "OpenCode" theme in both light and dark, and in both a workspace and a local session? If anything still looks wrong, a screenshot and the exact version from Settings would help.
You can reply here, or edit the issue. If you edit it, please also leave a comment saying you've updated it so we know when you're done.
Related issues, ordered by how likely they are to cover the same problem:
bg-accent/text-contrastruleopencodejr commentedon Oct 31, 2026
We asked you to check v2.2.0 and haven't heard back, so we're closing this issue for now.
In v2.2.0 (#56961, #57001, #57463), user-message bubbles use a neutral surface (
--v2-background-bg-layer-02with--v2-text-text-base) in both workspace and local sessions. The blue andbg-accent/white treatments are gone, which should restore the 1.18-style look you asked for.If the bubbles still look wrong on v2.2.0 or later, please comment here with the exact version, theme, light/dark mode and a screenshot, and we can reopen. Thanks again for the thorough report.