Skip to content

fix(canvas): dark theme a11y — settings buttons, input fields, ReactFlow colorMode, zinc-400 contrast, aria-labels - #123

Merged
HongmingWang-Rabbit merged 1 commit into
mainfrom
fix/settings-dark-theme-a11y
Apr 15, 2026
Merged

fix(canvas): dark theme a11y — settings buttons, input fields, ReactFlow colorMode, zinc-400 contrast, aria-labels#123
HongmingWang-Rabbit merged 1 commit into
mainfrom
fix/settings-dark-theme-a11y

Conversation

@HongmingWang-Rabbit

Copy link
Copy Markdown
Contributor

Summary

  • Input field text color: settings-panel.css.add-key-form__select/input and .key-value-field input now use color: #d4d4d8 (zinc-300) instead of #f4f4f5 (zinc-100), matching UX spec §3.8 for secondary input text
  • Active settings button: .settings-button--active background #1e3a5f#1e3a8a (blue-900) — better contrast against #3b82f6 (blue-500) accent
  • SearchDialog contrast: placeholder-zinc-600placeholder-zinc-400, ESC/↵ kbd hints, tier badges, footer count, empty-state text lifted to zinc-400 (WCAG AA on zinc-950 background)
  • ConversationTraceModal: timestamp spans, arrow separators, truncation ellipsis — zinc-600zinc-400
  • CommunicationOverlay: arrow separator, age label, duration — zinc-600zinc-400
  • TemplatePalette a11y: toggle button gets dynamic aria-label={open ? "Close template palette" : "Open template palette"} for screen-reader state announcement

What was already in remote main (not re-applied)

  • colorMode="dark" on <ReactFlow> — already present
  • All primary save/CTA buttons already using #2563eb — already present
  • --focus-ring: 2px solid #3b82f6 — already present
  • color: #3b82f6 on .secrets-tab__clear-search — already present
  • aria-label="Refresh org templates" on refresh button — already present

Test plan

  • npx vitest run — 390/390 tests pass; 8 pre-existing @testing-library/dom failures unchanged
  • npm run build — clean build, no type errors
  • Manual: open settings panel in dark mode and confirm all buttons render blue (#2563eb), inputs show zinc-300 text, active state ring is blue-900
  • Manual: open SearchDialog (Cmd+K) and verify placeholder/hint text is legible against zinc-950 background
  • Screen reader: verify TemplatePalette toggle announces "Open/Close template palette" on toggle

🤖 Generated with Claude Code

…low colorMode, zinc-400 contrast, aria-labels

Resolves low-contrast text and theming issues in the settings panel and
canvas overlays when running in dark mode:

- settings-panel.css: input fields (#d4d4d8 text), settings-button--active
  (#1e3a8a bg for better contrast against #3b82f6 accent)
- SearchDialog: placeholder-zinc-400, kbd hints, tier badge, footer counts,
  empty-state text — all lifted from zinc-600 → zinc-400
- ConversationTraceModal: timestamp, arrow separators, truncation ellipsis
  — lifted from zinc-600 → zinc-400
- CommunicationOverlay: arrow separator, age label, duration — zinc-600 → zinc-400
- TemplatePalette: dynamic aria-label on toggle button
  ("Open/Close template palette") for screen-reader clarity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@HongmingWang-Rabbit
HongmingWang-Rabbit merged commit 5d2777b into main Apr 15, 2026
1 of 7 checks passed
@HongmingWang-Rabbit
HongmingWang-Rabbit deleted the fix/settings-dark-theme-a11y branch April 16, 2026 12:31
molecule-ai Bot pushed a commit that referenced this pull request Apr 21, 2026
fix(canvas): dark theme a11y — settings buttons, input fields, ReactFlow colorMode, zinc-400 contrast, aria-labels
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant