Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-802Done

Board empty-column placeholder text fails AA contrast (muted on surface = 4.16:1)

Type: bug · Parent: Epic 3 (Boards) · Surfaces: the empty board column placeholder · Discovered in: Subtask 6.15.4 (board-filter story-closing a11y sweep, MOTIR-444).

The empty-column placeholder text (BoardColumn.tsx:172, the emptyColumn copy shown when a column has no cards) renders text-xs text-(--el-text-muted) — muted #787671 on the column surface #f6f5f4 = 4.16:1, below the WCAG 2.1 AA minimum of 4.5:1 for normal text. A strict axe sweep over the board flags it as a color-contrast violation (4 nodes — one per empty column).

Pre-existing (Story 3.2 board UI), not introduced by Story 6.15. Surfaced because 6.15.4 added the first axe sweep that crosses the board columns; that sweep was then scoped to the filter affordances (the 6.15 surface) so the board-filter story could close, and this board-column issue logged here per the CLAUDE.md pre-existing-bug rule.

Acceptance criteria

  • The empty-column placeholder text meets AA (>= 4.5:1) on the column surface — e.g. use --el-text-secondary (#5d5b54, ~7:1) instead of --el-text-muted, or darken the text on the dashed-border placeholder.
  • A strict axe (wcag2aa) sweep over a board with empty columns reports zero color-contrast violations.

Context refs

  • app/(authed)/boards/_components/BoardColumn.tsx:172 (the placeholder <p>)
  • The same faint/muted AA pattern was just fixed for the filter popover FacetLabel in MOTIR-444 (faint -> secondary).