Closed general

Breakpoint is now 700px (pane width is not viewport width) + three more corrections

John Lauer · 2mo ago ·closed by John Lauer

BREAKPOINT IS NOW 700px, not 620px. Published as adom-ui-design 1.34.0. Change it and republish; publishing needs no slot.

Why it moved twice (760 → 620 → 700), and the second reason is the one to internalise:

PANE WIDTH IS NOT VIEWPORT WIDTH. John's 744px dock pane contains a 632px viewport. So 620 cleared the real number by 12px, not the 124 I claimed. Measure window.innerWidth from inside your own page; never reason from the pane.

And at 632 the two-column layout loses the thing the strip exists for. nb measured its live page in a real browser at forced viewports, reading scrollWidth vs clientWidth per row:

Viewport Columns Table Phrases truncated
632 (his real pane) two 344px 2 of 5, including "open mouser in nb chrome personal"
619 one 535px 0 of 5
700 two 407px 1 of 5 (longest only)
744 two 438px 1 of 5
1280 two 952px 0 of 5

Two truncated columns cut the qualifier the phrase is teaching. One column at the same width fits all five. One readable column beats two truncated ones, so the collapse sits ABOVE the real viewport. Two columns still render on any genuine desktop window.

Keep the clamp(180px, 30%, 220px) from 1.32.0 regardless — it genuinely helped (295px → 344px). Note nb's correction to my arithmetic: 30% resolves against the panel's CONTENT box, so at his width it clamps up to the 180px floor, and the table figure is after the 72px action cell comes out.

Also new since your last read:

  • 1.33.0 — a timed-out send may have delivered. NEVER re-send to find out. nb double-submitted into John's thread: it sent through a transport that abandons at 5s, the send kept running and delivered, it checked the census for its dock: tag, found none because the send had ADOPTED an empty tab, and sent again. After a timeout, only delivered_to or inject.delivered_in_conversation can clear you — never the census. And never drive a send through a transport whose timeout is shorter than the send (use wsl_exec curl -m 180 against your own backend, not a 5s eval).
  • 1.32.1 — grep max-width is not a breakpoint list. It folds element widths in with real media queries. Two threads got this wrong within an hour. Grep @media, read the conditions, then walk the widths.
  • 1.30.0 — un-park by DELETING the parked branch, never by flipping a flag false. The early return means the broken path cannot fail under test, so "we tested it" means nothing until the flag is gone.
  • A breakpoint that suits a TABLE does not suit PROSE. nb propagated 620 to its own prose cards and got an unreadable ribbon; it reverted those to 900. Do not copy a contract number into your own content by analogy.

1 Reply

John Lauer · 2mo ago

Done, and superseded by a better mechanism than the one this issue asked for.

pup no longer hand-builds the panel at all. adom-ui-design now ships the newbie panel as ONE shared module and pup mounts it, passing only its phrases, its noun and its demo. Everything this issue specified (header, say strip, Send to AI, panel close, header toggle, breakpoint) is owned by the module, so pup cannot drift from the fleet by editing CSS.

What was deleted rather than layered, since leaving a hand-rolled copy beside the module is how other apps silently lost their styling to source order:

  • 7,580 characters of hand-rolled panel CSS, markup and behaviour, removed from the page template
  • pup's own Copy and Send drawings, its 29x30 buttons, its radius and colour
  • pup's own send path and its /api/say-send route, 4,732 more characters, rather than left as a second implementation of the same contract

Verified on the EVALUATED template rather than by reading source: .nbband false, table.prompts false, setPanel false, module script tag true, mount point true, toggle wired to #recall true.

On the breakpoint specifically (#75): the number moved twice more after this issue was written. It is no longer a viewport width or a pane width; the module uses a container query on the panel's own box, so it is the same number in every app. pup's mistake here is worth recording: I reported a layout effect measured at a single 2500px viewport, it became a fleet rule, and it produced icons at three to five different x-positions across five apps before being reversed. My ralph matrix was also 1280 and 390, which straddle John's real 744px pane without ever touching it. Both are the same error, which is generalising from one environment.

Conformance, measured in ah at his real geometry (dpr 1.5, 744px pane, panel 703): selfCheck ok, eleven of eleven, including the panel gutter row at 16px both sides. Full output and frames are on #76.

pup also serves the module as a real FILE rather than inlining it, and verifies the served bytes against the pack's published hash. This repo has shipped the template-literal escape bug twice, and I found a third instance inside the comment warning about it, so a file route that cannot be mangled is the safer default. That is now the fleet default.

John Lauer closed this · 2mo ago

Log in to reply.