fix(ux): page gutter, and a review pass over every 3.5.0 screen - #47
Merged
Merged
Conversation
Every page puts `px-12 py-6` on its own root and the page header above it is inset by the same 48 pixels. The two pages added in 3.5.0 left it off, so the title was inset and every panel, heading, tile and empty state under it ran flush from the sidebar to the window edge. Nothing caught it, because nothing on those pages overflowed or changed size. `screens.spec.ts` now walks every page under the header and fails when anything that paints (text, or a border you can see) sits outside the header's own inset on either side. Things a sideways scroller clips, like Today's carousel, are the scroller's business, and the clip name field's deliberate outset has a transparent border and is not counted. Proved: against the unfixed build it fails on Storage Saver with the section headings at x=232 against a gutter starting at 279. With the fix it passes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every screen and state this release added, captured in both palettes
against a seeded library and a real publisher running on this machine,
then fixed where it read wrong.
Publisher
- **An unreachable publisher said "0 published, 0 B".** The sync action
answered every failure with zeros, so the page's own "could not reach"
state could never appear. It now reports why there are no numbers
(`unreachable`, `unauthorized`, `outdated`), and the page names each
with its own way out: try again, check the address or token, or the
guide for updating an old container. `describeStatsFailure` is pure and
unit-tested.
- "Most opened" no longer has checkboxes. It is there to be read, and
offering to unpublish the links people actually watch was the wrong idea.
- The row checkbox is drawn in the app's own tokens over a hidden input,
not Chromium's native box. The hint says "last opened 2 minutes ago"
rather than "last 2 minutes ago".
Storage Saver
- The tile checkbox sits on a scrim. White on the frame disappeared into
every bright thumbnail.
- A picked tile has a two pixel ring instead of a hairline turning red,
which did not read across a grid. A ring is a shadow, so nothing moves.
- In a burst, the clips about to go are dimmed so the keeper stands out.
- The burst summary counted every clip in a burst ("1.2 MB across 3
clips") when two of the three would go. It counts the ones that go.
- The selection bar says what the selection weighs, not only how many.
Settings
- Recording quality said "cannot happen while OBS is open" when OBS was
closed and the button beside it would write it at once. The sentence now
depends on whether OBS is running.
- The "Compress clips when publishing" switch sat outside the publisher
card, so the Claude heading ran straight on from its description with no
rule between them. It is inside the card now.
Editor
- A GoodBit on a timeline block was a two pixel line over the thumbnail
strip, hard to see on any busy frame. The strip is twelve pixels on the
card colour, and the duration label and muted icon sit above it.
Gates: `npm run check` 849 tests; `screens.spec.ts` 9 passed, including
the new gutter test.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feedback on dev: the Storage Saver and Publisher padding, then a review pass over every screen and state 3.5.0 added. I captured each in both palettes against a seeded library and a real local publisher, then fixed what read wrong.
Gutter (your screenshots): both pages left the
px-12 py-6every other page root carries off their own root.screens.spec.tsnow fails when anything that paints sits outside the page header's inset. Against the unfixed build it fails on Storage Saver (headings at x=232, gutter from 279).Publisher
unreachable/unauthorized/outdated, and each gets its own message and way out.Storage Saver
Settings
Editor
Gates:
npm run check849 tests;screens.spec.ts9 passed.🤖 Generated with Claude Code