A log row is the stack on the left and the program still to run on the
right, and .flex-spread got that with justify-content: space-between. Wrap
a flex row, though, and the two spans stop being a row: as soon as the
program no longer fits beside the stack it takes a full-width line of its
own, left-aligned because a lone item on a flex line sits at the start, and
the stack is left stranded on the line above. Nothing marks where one step
ends and the next begins. Concat's if/then traces run long enough to hit
this on every row.
Give the pair a two-column grid instead. The stack column takes its
max-content width so it only claims what it needs, the program gets the
1fr rest and stays flush right as before, and a long program now wraps
inside its own column - so every row still starts with its stack, and the
left edge is what marks a row start.
overflow-wrap: break-word rather than anywhere, because anywhere lowers the
column's min-content contribution to a single character: on a phone a long
stack squeezed the program into a letter-per-line ladder. break-word keeps
the minimum at one whole word, so the stack wraps instead.
StackStep, Calc's log and Concat's log all render this shape, so all three
move to .stack-step. .flex-spread stays for the rvrb status row.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- author
- Marijn Besseling <njirambem@gmail.com>
· 2026-09-12 19:37 UTC
- commit
- a4d46838a4d6a6f27cd5b08ca342594a23e2603f
- parent
- b3393efd63
- tree
- browse at this commit