Skip to content

fix(dashboard): light theme contrast β€” amber-200, bg-white, border-white invisible on light backgrounds#3394

Merged
aegis-gh-agent[bot] merged 2 commits into
developfrom
fix/dashboard-light-theme-contrast
May 14, 2026
Merged

fix(dashboard): light theme contrast β€” amber-200, bg-white, border-white invisible on light backgrounds#3394
aegis-gh-agent[bot] merged 2 commits into
developfrom
fix/dashboard-light-theme-contrast

Conversation

@OneStepAt4time

Copy link
Copy Markdown
Owner

Closes #3372

Problem

30+ instances of hardcoded dark-mode colors are invisible or nearly invisible on light backgrounds:

  • text-amber-200 (#fde68a) on white: 1.4:1 contrast ratio β€” fails WCAG AA (4.5:1 required)
  • bg-white/5, bg-white/10: invisible on white/near-white backgrounds
  • border-white/5, border-white/10: invisible borders
  • border-amber-500/20, bg-amber-500/5: warning containers invisible in light

Solution

Added CSS-only light theme overrides in index.css using the existing pattern (same approach as the text-slate-* and text-rose-* overrides already in the file). No component changes needed β€” all fixes are CSS-level.

New overrides

Dark-mode utility Light theme override
text-amber-200 var(--color-warning)
text-amber-200/80 var(--color-warning)
bg-white/5 var(--color-void-light)
bg-white/10 var(--color-void-lighter)
border-white/5, border-white/10 var(--color-void-lighter)
border-amber-500/20, /30 color-mix(in srgb, var(--color-warning) 30%, transparent)
bg-amber-500/5, /10 color-mix(in srgb, var(--color-warning) 8%, transparent)

Why CSS-only?

The existing codebase already uses this pattern (lines 525–575 in index.css). Converting 30+ components to CSS custom properties would be a larger refactor β€” this PR fixes the visual bug immediately with zero risk of regressions.

Components fixed (30+ instances)

  • SettingsPage, MetricsPage, AnalyticsPage, CostPage, TemplatesPage β€” error/warning alerts
  • SessionTable β€” loading skeleton, error message, empty state
  • MetricCards β€” error banner
  • LiveAuditStream β€” filter container, empty state
  • Layout β€” search bar, keyboard shortcuts
  • CommandPalette β€” keyboard hints, active item highlight
  • TerminalPassthrough β€” status bar
  • VirtualizedSessionList β€” hover states
  • HomeStatusPanel β€” status icons
  • ActivityStream β€” avatar placeholders
  • NewSessionDrawer β€” hover states

Verification

  • βœ… TypeScript strict: 0 errors
  • βœ… Vitest: 1300 tests passed, 0 failed (133 files)
  • βœ… CSS braces balanced
  • βœ… Only dashboard/src/index.css touched
  • βœ… color-mix() supported in all modern browsers (Chrome 111+, Firefox 113+, Safari 16.2+)

β€” Daedalus πŸ›οΈ

…0, bg-white/*, border-white/* (#3372)

- text-amber-200: override to var(--color-warning) in light themes (was 1.4:1 contrast)
- text-amber-200/80: same override
- bg-white/5: override to var(--color-void-light) in light themes (was invisible)
- bg-white/10: override to var(--color-void-lighter) in light themes
- border-white/5, border-white/10: override to var(--color-void-lighter)
- border-amber-500/20, /30: use color-mix for theme-aware warning borders
- bg-amber-500/5, /10: use color-mix for theme-aware warning backgrounds

Fixes 30+ instances across LiveAuditStream, SessionTable, MetricCards,
Layout, CommandPalette, TerminalPassthrough, and all error/warning alerts.

All 1300 tests pass. TypeScript strict clean.
@OneStepAt4time OneStepAt4time added dashboard accessibility ready Triaged and ready for an agent to pick up labels May 14, 2026

@aegis-gh-agent aegis-gh-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

βœ… Approved.

CSS-only light theme contrast fix. amber-200 text β†’ var(--color-warning), bg-white/opacity β†’ void-* variables, amber borders/backgrounds β†’ color-mix() with warning color. Covers all 3 light theme variants.

Uses existing override pattern, well-supported color-mix() syntax. CI green. All gates pass.

@aegis-gh-agent aegis-gh-agent Bot merged commit 6453eea into develop May 14, 2026
17 checks passed
@aegis-gh-agent aegis-gh-agent Bot deleted the fix/dashboard-light-theme-contrast branch May 14, 2026 11:00
OneStepAt4time added a commit that referenced this pull request May 14, 2026
… slate/bg/border colors (#3377)

Covers 20+ previously unsupported Tailwind utility classes:
- bg-slate-50/100, hover:bg-slate-50/100 β†’ void-dark/light
- text-slate-200/300/700/900/950, text-gray-900 β†’ text-primary/muted
- hover:text-slate-* variants
- border-slate-200/300 β†’ void-lighter
- disabled: border/bg/text slate variants
- bg-slate-600 β†’ void-lighter
- bg-white β†’ void-dark

Combined with amber-200 and bg-white/* overrides from #3394,
this completes light theme coverage for all dashboard hardcoded colors.

1300 tests pass. TypeScript clean. 1 file, ~120 lines CSS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accessibility dashboard ready Triaged and ready for an agent to pick up

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant