Forums Bug Reports Thread

'CURRENT' / 'CURRENT VERSION' badges are white-on-success — 1.34:1 contrast in dark theme (invisible)

Patrick Bass · Jun 6 · 15 · 1 Locked
[Major] [High Priority] [Bug Fixed] [Always Reproduces]
🚀 OP Jun 6, 2026 6:11pm

Area: mobieusKnow (audit p6) · Surface: mobieusKnow revision history + revision detail badges · Dimension: law-3-contrast · Severity: major

Law 3 requires legible contrast in every theme using semantic tokens. White text on the bright dark-mode success green is near-invisible (1.34:1) and even the light-theme value misses AA for normal text. The same white-on-success failure also appears in the JS-rendered AI suggested-edits badge for the 'completeness' kind (editor.php:431 color:#fff;background:badgeColor('completeness') where badgeColor returns var(--color-success), editor.php:374-382).

Evidence

history.php:66 <span style="…background:var(--color-success);color:#fff;…">CURRENT</span> and revision.php:117 <span style="…background:var(--color-success);color:#fff;…">CURRENT VERSION</span>. Dark-theme --color-success = #00FF88 (style.css:119). Computed contrast white-on-#00FF88 = 1.34:1 (fails WCAG, text effectively unreadable). Light-theme --color-success=#16a34a gives 3.3:1 (fails AA normal-text 4.5:1).

Suggested fix. Use a dark foreground on the success badge (e.g. color:#04210F or var(--color-bg) in dark) or switch the badge to the tinted style already used elsewhere (color-mix(in srgb, var(--color-success) 12%, transparent) background with var(--color-success) text), which is how the status pills in revision.php:115 are done. Apply the same to the JS badgeColor() output.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 4:59am

Resolved — fixed and deployed. Commit faa14fc59739, shipped dev-first then to all tenants on 2026-06-06.

Changed the CURRENT VERSION badge from a solid var(--color-success) background with hardcoded color:#fff to the tinted pill style (color-mix 12% success background + var(--color-success) foreground text), matching the status pill already used on line 115. Removes the hardcoded color and aligns contrast handling with the rest of the file.

Status: fixed. Thread closed and locked.


Patrick Bass
@mobieus

Log in or register to reply to this thread.