Record that a leftover share narrows the frame like px and rel
Bryan's decision of 2026-09-18, which answers the Pad question and makes the code's leftover filter in declared_lens a bug. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
4b976e240e
commit
b2484b900e
1 file changed
+19
-1
+19
-1
@@ -50,6 +50,13 @@ where it stands. The step list the plan carried is gone: steps 1 to 5 are in
|
|||||||
too), an inset's margins, the root. A box that is an *answer* (a row's
|
too), an inset's margins, the root. A box that is an *answer* (a row's
|
||||||
height, a stack sized by a child) is never anything's frame.
|
height, a stack sized by a child) is never anything's frame.
|
||||||
- `rel` overflows on purpose when it sums past one or has pixels beside it.
|
- `rel` overflows on purpose when it sums past one or has pixels beside it.
|
||||||
|
- **A `leftover` share narrows the frame exactly as a declared `px` or `rel`
|
||||||
|
does** (Bryan, 2026-09-18: "Leftover was always intended to narrow the
|
||||||
|
frame just like the other two"). The code's `declared_lens` filtering
|
||||||
|
`leftover` out of what narrows a child's frame is a bug, and so is the
|
||||||
|
wording above and in the plan that a frame is narrowed only by a declared
|
||||||
|
length, an inset or the root. `rel(1.0)` inside a share is the share;
|
||||||
|
inside a padded share it is the share less the padding, so it fits.
|
||||||
- `Inset` and `Outset` take `px`, `rel` and `leftover` margins. Outset adds
|
- `Inset` and `Outset` take `px`, `rel` and `leftover` margins. Outset adds
|
||||||
its margins to the child's report and moves the child in; Inset draws the
|
its margins to the child's report and moves the child in; Inset draws the
|
||||||
child in a frame with the margins subtracted and reports the child's size
|
child in a frame with the margins subtracted and reports the child's size
|
||||||
@@ -459,7 +466,18 @@ beside a `leftover` child in a horizontally scrolling row) needs its own
|
|||||||
decision; Compose gives the text an unbounded width there. None of this was
|
decision; Compose gives the text an unbounded width there. None of this was
|
||||||
run; it is what the traces and the two experiments point at.
|
run; it is what the traces and the two experiments point at.
|
||||||
|
|
||||||
**Question 2, `Pad`.** The contradiction is not specific to `Pad`. A
|
**Question 2, `Pad`.** Answered by the decision above that a share narrows
|
||||||
|
the frame: the overflow in the example comes from the pad sitting in a
|
||||||
|
`leftover` share whose length did not narrow the frame, and once it does,
|
||||||
|
`rel(1.0)` inside the pad is the share less the padding and fits. `Pad`
|
||||||
|
stays an outset. What follows for `Span` is that a `leftover` child's frame
|
||||||
|
is only known once the room is divided, so the child cannot be settled at
|
||||||
|
a measuring ask made in the room; it must be given its share as its frame
|
||||||
|
when placed, which is one more reason for the single decided-box evaluation
|
||||||
|
recommended above. The paragraph below is the earlier reading, kept for the
|
||||||
|
record.
|
||||||
|
|
||||||
|
The contradiction is not specific to `Pad`. A
|
||||||
`rel(1.0)` child directly in a half-row `Fill` slot overflows its slot
|
`rel(1.0)` child directly in a half-row `Fill` slot overflows its slot
|
||||||
because `rel` is of the row, and Bryan accepted that. A `rel(1.0)` inside a
|
because `rel` is of the row, and Bryan accepted that. A `rel(1.0)` inside a
|
||||||
pad in that slot overflows the pad's box for the same reason and by the same
|
pad in that slot overflows the pad's box for the same reason and by the same
|
||||||
|
|||||||
Reference in new issue
Block a user