fix(ui): the phone's nav sheet says when it scrolls
Since #71 the phone's "More" is a bottom sheet, and at the reference viewport it does not fit: measured at 424x439 with the seed's eight destinations, the body is scrollHeight 412 against clientHeight 373, so 39px is below a fold nothing announces. Where the cut lands on a row boundary the sheet ends in a clean edge that reads as the end of the list, which is what #207 fixed one sheet over. The rule is that sheet's, not a second answer to the same question: #207's two background layers move into styles/sheet-scroll.css.ts and both sheets adopt them, with the colour left to each host as --yj-sheet-surface. The nav sheet paints the sidebar's --yj-bg-surface and the context sheet the menus' --yj-bg-elevated, so a shared rule that hard-coded either would draw that seam across the other one. The half that makes it visible is that nothing inside the sheet may repaint the surface. These are layers on the scroller, and app-sidebar's host carries the same grey -- in the shell its own background, in the sheet a second opaque copy of the sheet's, over the fade. With the fragment adopted and that rule missing, the running app measured a flat 52,58,64 to the bottom edge with 39px still below: the defect unchanged, with every assertion about background-attachment passing. menu-surface already meets it from the other side, where the sheet's panel is background-color: transparent. Closes #210
This commit is contained in:
@@ -1470,6 +1470,28 @@ live**: a scrim over a menu item is that item's text surface, and the
|
||||
14px spends its weight below the last legible label, measured at 9.9:1
|
||||
on the light ramp, whose `bgElevated` is `#e9ecef`.
|
||||
|
||||
**And the phone has two sheets, so that rule is one file both read**
|
||||
(#210). `bottom-nav`'s "More" is capped at the same 85vh and overflows
|
||||
for the same reason — measured at 424x439 with eight destinations,
|
||||
`scrollHeight` 412 against `clientHeight` 373, and eleven items at 48px
|
||||
would be 528, since #25 makes the count the user's. So the two layers
|
||||
live in `styles/sheet-scroll.css.ts` and each host says only what is
|
||||
local to it: the colour, handed over as `--yj-sheet-surface` on the same
|
||||
box, because the nav sheet paints the sidebar's `--yj-bg-surface` and
|
||||
the context sheet the menus' `--yj-bg-elevated` — a shared rule that
|
||||
hard-coded either would draw that seam across the other one.
|
||||
|
||||
The half that is not the fade is what makes it visible: **nothing inside
|
||||
the sheet may repaint the surface**, because these are background layers
|
||||
on the scroller and an opaque child covers them. `menu-surface` already
|
||||
had it from the other side (`.context-menu-panel[data-sheet]` is
|
||||
`background-color: transparent`); `app-sidebar`'s host paints
|
||||
`--yj-bg-surface`, which in the shell is its own background and in the
|
||||
sheet is a second copy of the sheet's, so `bottom-nav` turns it off.
|
||||
Measured at 424x439 with the fade adopted and that rule missing: a flat
|
||||
52,58,64 to the bottom edge with 39px still below, which is the defect
|
||||
unchanged and every assertion about `background-attachment` passing.
|
||||
|
||||
**The playlist submenu is a sheet too, and it had to be.** It is a
|
||||
`placement="right-start"` flyout, and making the menu full-width moved
|
||||
its anchor — measured at x −182 to 0, entirely off-screen, so "Add to
|
||||
|
||||
Reference in New Issue
Block a user