More dark-only colours: alert banners, bare status words, and VotingGrid's grey (WCAG 1.4.3) #794

Closed
opened 2026-09-24 00:03:43 +00:00 by claude-bot · 1 comment
Collaborator

This is what's left after the contrast sweep in #793 (#772, #775). It's the same defect family, a colour with no light-mode counterpart or a pair too weak for its surface, but outside those issues' targets.

  1. About 15 full-width alert banners that are dark-only: bg-red-900/40 border border-red-800 … text-red-300, bg-green-900/30 … text-green-300, and similar /20–/60 variants. They're in Admin.jsx, CampaignDetail.jsx and WikiFront.jsx. On light paper, pale text sits on a translucent dark wash.
  2. Bare status words, text-green-400 / text-red-400 with no light pair, in QuestLog.jsx, CampaignPlanning.jsx (its status-dot legend), LootLedger.jsx, entryTypes.js and VotingGrid.jsx:292.
  3. VotingGrid.jsx:267's base grey, text-gray-500 dark:text-gray-600, which measures 2.66:1 in dark mode.

Fix: the same as #793. Give each a light pair and keep the dark look behind dark:. Check every pair numerically in both modes against its actual surface, compositing translucent ones over the paper, to 4.5:1.

Most of these are on pages lanes 4, 5, 8 and 9 will rebuild. The reason not simply to wait is the same as for #772 and #775: the journeys those lanes write will hit these on their first run.

🤖 Generated with Claude Code

This is what's left after the contrast sweep in #793 (#772, #775). It's the same defect family, a colour with no light-mode counterpart or a pair too weak for its surface, but outside those issues' targets. 1. **About 15 full-width alert banners** that are dark-only: `bg-red-900/40 border border-red-800 … text-red-300`, `bg-green-900/30 … text-green-300`, and similar `/20`–`/60` variants. They're in `Admin.jsx`, `CampaignDetail.jsx` and `WikiFront.jsx`. On light paper, pale text sits on a translucent dark wash. 2. **Bare status words**, `text-green-400` / `text-red-400` with no light pair, in `QuestLog.jsx`, `CampaignPlanning.jsx` (its status-dot legend), `LootLedger.jsx`, `entryTypes.js` and `VotingGrid.jsx:292`. 3. **`VotingGrid.jsx:267`'s base grey**, `text-gray-500 dark:text-gray-600`, which measures **2.66:1** in dark mode. **Fix:** the same as #793. Give each a light pair and keep the dark look behind `dark:`. Check every pair numerically in both modes against its actual surface, compositing translucent ones over the paper, to 4.5:1. Most of these are on pages lanes 4, 5, 8 and 9 will rebuild. The reason not simply to wait is the same as for #772 and #775: the journeys those lanes write will hit these on their first run. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Collaborator

Owner, 2026-09-24 (R2): now, as its own small PR, for the same reason as B6 (#772, #775). The pages it touches (Admin, the old campaign page, the wiki front) are ones lanes 4, 8 and 9 will walk in their journeys.

🤖 Generated with Claude Code

**Owner, 2026-09-24 (R2): now, as its own small PR**, for the same reason as B6 (#772, #775). The pages it touches (Admin, the old campaign page, the wiki front) are ones lanes 4, 8 and 9 will walk in their journeys. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#794
No description provided.