Repository navigation
ui: one vertical stack — vstack facade, Item::before, AlertHead; y ladders moved, no pixel moves - #901
Merged
Conversation
…ad ladder builder Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…k, pixel-neutral Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…out stand on VStack (pixel-neutral) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… one VStack each Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…(one alert head ladder, explicit absent + before) Pixel-neutral: the Tracks panel and the person biography read the shared AlertHead for both measure and draw; About's 0.0-means-absent ladder becomes Item::before over a VStack. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… episode meta on VStack/VFlow (pixel-neutral) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… filmography preview and diagnostics header on VStack/VFlow Pixel-neutral: each site's hand-written y sums now come from one stack the measure and draw both read. The PIN pad's dot row keeps its 67-point air as the named PAD_DOT_GAP; the diagnostics column headings keep their 4-point gap as SECTIONS_GAP. Existing tests unedited; new painted-gap tests added per site. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ction_tile, document_reader, qr, table) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rson/decision_alert gaps, hint stack, drop stack_top shim, doc claims Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e flow Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
GLinnik21
added a commit
that referenced
this pull request
Oct 21, 2026
…ead-out uses the overlay's bands (#903) Owner-approved spacing follow-ups to the vertical stack (#901): - Detail About: Accessibility's badge rows stand 68 under the heading like Information and Languages (were 64; down 4 px). - Detail episodes: an empty summary is absent, so a date row sits one gap under the title and a title-only platter has no trailing gap; the date row stays present when it paints a rating chip without a date. - Watchlist read-out: places its bands through StatusOverlay's own failed_page_text_bands instead of a copy (no visible change). Painted-position tests seen red on main; check, hostsim, nodef green; check-replay 6/6 SAME. Co-Authored-By: Claude Opus 5.5 <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.
This is the vertical counterpart to the horizontal equal-spacing mechanism (
plx_ui::hstack, merged in #886, #888–#891 and #896). It moves the hand-summed y ladders (y += h + GAP) onto one shared stack. No pixel moves.Mechanism
plx_ui::vstack(new,ui/src/vstack.rs): a thin facade over hstack's engine, with no second copy of the arithmetic.VStackprovidesnew,heights,height,placedandspan.VFlowplaces lines one at a time as they are painted.AnchorisTop,BottomorCentre, andVSpanis the placed result.hstack::Item::before(gap): an item can set the gap in front of it. The gap between two items isb.before, elsea.after, else the stack's own gap.Flow::placedebug-asserts that nobeforeis set.vstack::AlertHead(with::ruled): the eyebrow, title and path ladder shared by the tracks panel, the person biography and the About panel. Each panel now measures (head_h/body_rect) and paints from the same stack instead of keeping two copies.landing_hero::stack_topis removed. Its callers usehero_stack.Sites moved onto VStack / VFlow
StatusOverlaybands and note bandstill_linehero_chain(detail layout)collection_tiledocument_readerinfo_panel,up_next,chapters_panel.Left as they are
header_ys). Its meta and summary offsets are absolute cap tops. Expressed as a stack, the gap would depend on the font, so it would not be a token.Evidence
git statusempty before and after):make check: everytest result:line ok, 0 failed. The largest suites are 1846 passed with 64 ignored, then 1669, 1372 and 1120 passed.make test-hostsim: ok, 285 passed.make check-nodef: ok.make check-replay: 6 replays, every oneverdict=SAME,diverged=0.dbe7b014bagainst head:still_line). The mock cannot produce one. A unit test pins the label baseline at its old position (still_line_label_baseline_is_where_it_always_stood).still_linebaseline that moved, and one lane's work missing from the branch) are fixed.🤖 Generated with Claude Code