feat(web): add Poimandres as a built-in Appearance theme - #5650
Conversation
Ship the dark-only pmndrs palette as a maintainer theme so users can pick it without importing JSON. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| OCEAN_THEME_ID, | ||
| EMBER_THEME_ID, | ||
| IRIS_THEME_ID, | ||
| POIMANDRES_THEME_ID, |
There was a problem hiding this comment.
🟡 Medium src/themePalette.ts:127
RESERVED_THEME_IDS now includes POIMANDRES_THEME_ID, but custom themes saved in earlier releases could already use the id poimandres. installCustomTheme only blocks reserved ids on new installs, so a previously-saved custom theme with that id persists in storage but gets silently omitted by getCustomThemes()/parseStoredTheme, causing a stored poimandres preference to resolve to the new built-in theme instead of the user's custom palette. Consider migrating or renaming colliding persisted custom themes on load (or documenting the intentional takeover) rather than only reserving the id going forward.
🤖 Copy this AI Prompt to have your agent fix this:
In file @apps/web/src/themePalette.ts around line 127:
`RESERVED_THEME_IDS` now includes `POIMANDRES_THEME_ID`, but custom themes saved in earlier releases could already use the id `poimandres`. `installCustomTheme` only blocks reserved ids on *new* installs, so a previously-saved custom theme with that id persists in storage but gets silently omitted by `getCustomThemes()`/`parseStoredTheme`, causing a stored `poimandres` preference to resolve to the new built-in theme instead of the user's custom palette. Consider migrating or renaming colliding persisted custom themes on load (or documenting the intentional takeover) rather than only reserving the id going forward.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 54877e5. Configure here.
| codeForeground: "#a6accd", | ||
| sidebar: "#1b1e28", | ||
| sidebarForeground: "#a6accd", | ||
| sidebarMutedForeground: "#767c9d", |
There was a problem hiding this comment.
Muted text fails contrast
Medium Severity
textMuted (and the matching muted roles such as placeholder, secondaryLabel, iconMuted, and sidebarMutedForeground) use #767c9d on #1b1e28, which lands around 4.1:1. Other maintainer themes keep muted text at or above 4.5:1, and --muted-foreground maps to textMuted, so secondary labels across the app fall short of the usual AA bar when Poimandres is selected.
Reviewed by Cursor Bugbot for commit 54877e5. Configure here.
ApprovabilityVerdict: Needs human review 1 blocking correctness issue found. This PR adds a new built-in theme, which is typically low-risk. However, two unresolved review comments raise substantive concerns: potential silent override of existing custom themes with the 'poimandres' id (data loss), and muted text colors failing AA accessibility contrast requirements. These issues warrant resolution before merging. You can customize Macroscope's approvability policy. Learn more. |
|
the overrides stuff makes this PR more annoying than I had initially thought, it might not be worth even if the theme is a classic banger |
|
#5654 this is so much better! |


Summary
Test plan
#1b1e28/ accent#5de4c7Made with Cursor
Note
Add Poimandres as a built-in dark-only appearance theme
poimandresbuilt-in theme to themePalette.ts with a full dark-only color map (canvas, chrome, text, accent, terminal, sidebar) and reserves the ID from custom theme use.MAINTAINER_THEMESin ThemeSettings.tsx.📊 Macroscope summarized 54877e5. 3 files reviewed, 0 issues evaluated, 0 issues filtered, 0 comments posted
🗂️ Filtered Issues
No issues evaluated.