Readable accent text app-wide; Android queue drag math under test #144

Merged
bvandeusen merged 2 commits from dev into main 2026-10-08 06:29:48 -04:00
Owner

Two commits, both green on dev:

  • b46c080d fix(web): all accent text and icons use accent-fg (#5318).
    • 36 sites move from raw accent to accent-fg. Worst-case contrast on dark surfaces goes from 2.21:1 to 5.62:1, above AA's 4.5.
    • Raw accent stays on borders, rings and fills.
    • check-tint-contrast now fails on any new raw accent text. CI run 8711.
  • 43c369f0 test(android): queue drag math is a pure function, held to web's cases (#2436).
    • Extracts queueDragDelta and queueDragTarget from QueueRow, with 12 JUnit cases mirroring web's queue-row-math tests.
    • No behaviour change. CI run 8712.

🤖 Generated with Claude Code

Two commits, both green on dev: - **b46c080d** fix(web): all accent text and icons use accent-fg (#5318). - 36 sites move from raw accent to `accent-fg`. Worst-case contrast on dark surfaces goes from 2.21:1 to 5.62:1, above AA's 4.5. - Raw accent stays on borders, rings and fills. - check-tint-contrast now fails on any new raw accent text. CI run 8711. - **43c369f0** test(android): queue drag math is a pure function, held to web's cases (#2436). - Extracts `queueDragDelta` and `queueDragTarget` from QueueRow, with 12 JUnit cases mirroring web's queue-row-math tests. - No behaviour change. CI run 8712. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-10-08 06:29:45 -04:00
fix(web): all accent text and icons use accent-fg (#5318)
release / govulncheck (push) Successful in 17s
release / web (push) Successful in 1m11s
release / go (push) Successful in 1m26s
release / integration (push) Successful in 4m18s
release / android (push) Successful in 4m44s
release / Build signed APK (releases and dev) (push) Successful in 4m53s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 26s
release / Verify release artifacts (tag releases only) (push) Skipped
b46c080d19
The raw accent fails AA as text on every dark surface, not only on its
own tint: 3.04:1 on the page, 2.70 on iron, 2.21 on slate, against 4.5.
accent-fg (the house formula, 45% toward parchment) measures 5.62 at
worst across both modes. The operator chose the readable colour over the
signature teal for text, on 2026-10-08.

- 36 sites swap. They are 35 Tailwind uses: links, "Now playing", the
  ingest progress line, active shuffle/repeat, the liked heart, the app
  download icon and its hover. The last is the alphabet rail's pending
  spinner in CSS. Icons follow the text: as graphics they need only
  3:1, and the raw accent misses even that on iron.
- check-tint-contrast adds accent to TEXT_NEVER_RAW, so a new raw
  text-accent or color: var(--fs-accent) fails the web lane. Run against
  the files before the swap, it finds all 36. Borders, rings and fills
  keep the raw accent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test(android): queue drag math is a pure function, held to web's cases (#2436)
release / govulncheck (push) Successful in 15s
release / web (push) Successful in 1m11s
release / go (push) Successful in 1m29s
release / android (push) Successful in 4m46s
release / Build signed APK (releases and dev) (push) Successful in 4m58s
release / integration (push) Successful in 15m34s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 14s
release / Verify release artifacts (tag releases only) (push) Skipped
43c369f082
The drag-offset-to-row arithmetic lived inline in queueReorderDrag's
onDragEnd lambda, which no JVM test can reach. Web's copy, offsetToDelta,
has been extracted and tested since the start, and the Android comment
says it mirrors web, but only one side could be held to that.

- QueueDragMath.kt adds queueDragDelta (web's offsetToDelta) and
  queueDragTarget (delta plus the clamp to the queue). Kotlin's roundToInt
  breaks ties toward positive infinity, the same as JS Math.round, so the
  web cases carry over exactly, including half a row up staying put.
- queueDragTarget returns the start index for an empty queue instead of
  letting coerceIn(0, -1) throw.
- QueueDragMathTest mirrors queue-row-math.test.ts one case at a time,
  plus clamping past either end, a sub-half-row drag, an unmeasured row,
  and the empty queue.

No behaviour change for a non-empty queue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bvandeusen merged commit 3077ed75fe into main 2026-10-08 06:29:48 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#144