You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
desktop: fix theme palette bugs, light-mode contrast failures, and token typos in packages/ui #50500
Scope Note: This issue covers the Desktop app themes in packages/ui.
Companion TUI themes in packages/tui are tracked in #50523.
While testing light themes in OpenCode Desktop, we identified several broken light-mode palettes, token typos, and a contrast calculation issue in packages/ui:
1. Light Mode Palette Breakages
catppuccin.json (Latte):light.palette.neutral uses Mocha Rosewater (#f5e0dc) instead of official Latte Base (#eff1f5). Because neutral seeds the entire neutral scale, the app displays with a heavy pink tint in light mode.
catppuccin-frappe.json & catppuccin-macchiato.json: Both duplicate dark-flavor tokens into light mode, producing washed-out, unreadable body text (< 2.1:1 contrast).
kanagawa.json: Light overrides copy dark Wave tokens onto the Lotus background (#f4ede3), making strings and constants unreadable (< 2:1 contrast).
matrix.json:syntax-type uses neon yellow (#e6ff57) on light background (#f0f5ed), rendering type text virtually invisible (~1:1 contrast).
2. Concrete Token and Formula Typos
oc-2.json: Line 28 defines "icon-weak-base": "C7C7C7" without the # prefix. The resulting invalid CSS variable breaks icon shadows and logo fills.
catppuccin-frappe.json: Uses #8da4e2 instead of Frappé Blue (#8caaee) and #949cb8 instead of Overlay 2 (#949cbb).
color.ts:contrastRatio() uses 0.587 instead of the standard ITU-R BT.709 coefficient 0.7152 for green luminance, calculating black-on-white as 18.4:1 instead of 21:1.
3. Question for Maintainers: Dark-Only Upstream Themes
11 bundled themes (amoled, aura, cobalt2, dracula, matrix, monokai, onedarkpro, shadesofpurple, synthwave84, vesper, zenburn) have no official upstream light palette.
Current synthetic light modes produce mixed results (for example, invisible syntax in Matrix).
Would maintainers prefer:
Locking these themes to dark mode only (falling back to OpenCode light if the user selects light mode)?
Keeping calibrated companion light palettes for them?
Steps to Reproduce
Open OpenCode Desktop Settings -> Appearance and set Color Scheme to Light.
Select Catppuccin to observe the pink background wash.
Select Catppuccin Frappe, Kanagawa, or Matrix to observe unreadable text contrast.
This issue might be a duplicate of existing issues. Please check:
Catppuccin macchiato is unreadable in desktop light mode #29629: Catppuccin macchiato is unreadable in desktop light mode — same root cause (wrong neutral color in Catppuccin light palette causing poor rendering in desktop light mode); that issue even notes the catppuccin theme's light palette uses rosewater as neutral instead of the Latte base color, which is exactly the bug described here.
changed the title [-]Catppuccin theme renders with pink background in desktop light mode[/-][+]Comprehensive audit: background seed defects, contrast failures, and token typos across desktop themes[/+]on Sep 22, 2026
Activity
github-actions commentedon Sep 22, 2026
This issue might be a duplicate of existing issues. Please check:
neutralcolor in Catppuccin light palette causing poor rendering in desktop light mode); that issue even notes thecatppuccintheme's light palette uses rosewater asneutralinstead of the Latte base color, which is exactly the bug described here.[-]Catppuccin theme renders with pink background in desktop light mode[/-][+]Comprehensive audit: background seed defects, contrast failures, and token typos across desktop themes[/+][-]Comprehensive audit: background seed defects, contrast failures, and token typos across desktop themes[/-][+]desktop: fix theme palette bugs, light-mode contrast failures, and token typos in packages/ui[/+]gotenksIN commentedon Sep 24, 2026
Fixed in #50517