Work the design critique down: chapter format, colour law, search, strip, a11y #11
Reference in New Issue
Block a user
Delete Branch "improve-design-health"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two rounds of design-critique fixes on the web UI. Every visual change was verified at 390x844 and 1280x900 in both dark and light with screenshots;
go test ./...is green throughout; no new dependencies.Earlier commits on this branch
The two oldest commits predate this session and were never opened as their own PR, so they are under review here too:
The rest
Chapter format. The userscript and the poller both write
"Chapter N", and the templates prefixedChagain, so every real Asura row readCh Chapter 250— while a manual edit stored a bare250, leaving two formats in one list.DisplayChapter/DisplayLatestonBookmarknow strip the lead-in and re-add exactly oneCh.Zero-result search. The client filter only toggled
card.hidden, so a query matching nothing left a blank list under a fully populated, unfiltered "Continue reading" strip. There is now a no-match state with a Clear-search button, and the strip goes down while a filter is active.The colour law.
--emberis documented as meaning "new chapter" and was spent on eight things, including setting "Nothing new." in the colour reserved for new chapters. Destruction moves to a new--dangertoken; text-input focus follows the searchbar idiom and turns--paper. Contrast, both themes:--dangeron the page 4.82 / 6.65, the solid Remove button 4.94 / 7.30, the confirm question 9.00 / 7.98.The remove confirm. Buttons 40px 8px apart became 46px 12px apart, and the question names the series and the loss instead of asking "Remove this?". It opens with Cancel focused, not Remove — the two reversible rows still open on their affirmative.
The recent strip. It was the head of the same
updated_at DESClist rendered directly below it, on every tab, costing ~240px of the first phone screen. It is now scoped to series with a chapter waiting, and only on All. With nothing new anywhere it does not render — deliberate.Stale chrome. The strip and the Updated badge describe the whole library but live outside the swapped
#list, so archiving a series left it under "Continue reading" with the badge still counting it, and/?tab=allreached by htmx differed from the same URL reloaded. Both regions move intochrome.htmland refresh out of band on every mutation and every tab switch.Accessibility and touch. Esc closes any open panel and returns focus to the cell that owns it; opening a confirm moves focus into it; the inline error scrolls into view and no longer self-destructs after 5s; every tab and desktop action cell clears 44px;
role="alert"on the login error; the card monogram is no longer announced; the busy bar is clipped by its own travel rather than byoverflow: hiddenon the card.Chapter form label. The panel's only visible text named the published chapter while the field held your progress. The field gets a real label; "Latest known" moves below it.
gzip. Nothing was compressed. A stdlib middleware handles the four text types and leaves woff2 alone: style.css 21.8 -> 6.5 KB, htmx 50.9 -> 16.4, filter.js 7.6 -> 2.9.
Not addressed
The
role="status"error slot is still mutated while hidden and then revealed, which is the non-announcing pattern the confirm rows were fixed for. Delete is still a silent vanish. Both are flagged in the critique snapshot under.impeccable/critique/.Design health went 24/36 (66.7%) to 29/40 (72.5%) between snapshots; the two P1s that survived were found and fixed after that run.
🤖 Generated with Claude Code
The edit panel's only visible text was "Latest known: Ch 30" sitting directly above a field pre-filled with your own progress — so on the one occasion the form is worth opening, when those two numbers differ, the visible label named the wrong one. Correcting a chapter number is this UI's stated primary job. The field gets a real label ("Chapter you're on", tied by for/id, replacing the screen-reader-only aria-label) and "Latest known" moves below it as context. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>a6d245c25eto8fcc4f7e49