Files
jobtrackingapp/docs/verification/ux-003-kanban-theme.md
T
cesnimda a54b70960c
CI and Deploy / test (pull_request) Successful in 4m46s
CI and Deploy / deploy (pull_request) Has been skipped
docs(plan): advance to application workspace
2026-08-10 11:17:14 +02:00

2.5 KiB

UX-003 Kanban theme-state verification

Updated: 2026-08-10

Confirmed execution path

  • The board previously used theme.palette.grey[100] and [300]. Under the CSS-variable theme these resolved to the static light palette, producing white destination columns in dark mode.
  • The initial mocked dark-browser regression failed with the computed column background rgb(245, 242, 250). Evidence: docs/audits/evidence/ux-003-kanban-dark-before.png.
  • Native drag updated only after a successful owner-scoped status API call, but had no visible target state, keyboard pickup/drop model or failure feedback.

Implemented behavior

  • Columns, counters, status tones and pills now use live shared theme variables with fallback only for isolated unit-test themes.
  • Empty, filled, valid, active and invalid columns have explicit state; invalid custom-status columns cannot accept a drop.
  • Cards expose selected/picked-up state, visible hover/focus, a named status button, Space pickup/cancel, Escape cancel and Enter/Space drop on focused valid columns.
  • A polite live region announces pickup, cancel, success, invalid target and failure. Failed API moves retain the card and show a visible error.
  • The board owns horizontal mobile scrolling; the application main flex child can shrink. The live region uses literal one-pixel dimensions and no longer adds eight pixels of document overflow.
  • The invalid kebab-case -webkit-overflow-scrolling style was corrected to React's WebkitOverflowScrolling property.
  • Normal E2E runs no longer rewrite committed audit screenshots; evidence refresh requires UPDATE_AUDIT_EVIDENCE=1.

Verification

  • Focused component tests: 7/7 for grouped/empty/filled, pointer target, invalid target, keyboard move, load/error/retry, move failure and named menu behavior.
  • Full frontend: 50 suites, 204/204 tests.
  • Production frontend build and TypeScript: pass.
  • Complete Playwright: 6/6. Kanban browser journey covers 1440 dark, 768 light, 375 mobile, visible hover, native pointer drag, keyboard move, invalid target and page-level containment with mocked data/API.
  • After evidence: docs/audits/evidence/ux-003-kanban-dark-after.png.
  • Commits: fb6f17e, 4e5ce0c.

Remaining gates

  • Production board smoke is not authorized/available.
  • Browser data and status updates were synthetic/mocked. Authorization remains covered by existing API tests, not this UI package.
  • No native screen-reader/device laboratory was available; semantics and live announcements were inspected/tested in Chromium and component DOM.