Requested by Eric Allam · Slack thread
✅ Checklist
- I have followed every step in the contributing guide
- The PR title follows the convention.
- I ran and tested the code works
Testing
Verified on the preview deployment in light mode on 2026-08-08: the "Mark error as…" button label renders white on the indigo background and reads correctly. Dark mode is unchanged. The calendar selected-day fix is the same one-token swap — to check it, open any date picker and confirm the selected day reads white on indigo.
Changelog
Before: in light mode, the "Mark error as…" button on the error detail page rendered its label and icon in dark grey on the solid indigo background — low contrast and hard to read. Selected dates in the calendar had the same problem.
After: both render white text on the indigo background, in light and dark mode alike.
How: these surfaces were using the text-text-bright token, which flips with the theme (near-white in dark mode, near-black in light mode). That is correct on a theme-aware background, but wrong on a background that stays solid indigo in both themes. Swapped to a hardcoded text-white on just those spots, matching the existing pattern in apps/webapp/app/components/primitives/Buttons.tsx where the primary button hardcodes text-white on bg-indigo-600.
Files touched:
apps/webapp/app/components/primitives/Popover.tsx — the primary entry of popoverArrowTriggerVariants (trigger, text, icon). The now-redundant hover:text-white on text is dropped.
apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.errors.$fingerprint/route.tsx — the icon inside that primary trigger.
apps/webapp/app/components/primitives/Calendar.tsx — the selected-day classes.
Blast radius is small: PopoverArrowTrigger variant="primary" has exactly one call site in the app (the "Mark error as…" button), so the Popover change affects that one button, plus the separate calendar selected-day fix. No token definitions changed, and no other text-text-bright call site is touched — it is correct everywhere else, since those sit on theme-aware backgrounds.
Screenshots
None yet.
💯