Skip to content

feat(website): the Spec Explorer works on a phone - #961

Merged
gHashTag merged 1 commit into
mainfrom
feat/spec-explorer-mobile
Sep 6, 2026
Merged

feat(website): the Spec Explorer works on a phone#961
gHashTag merged 1 commit into
mainfrom
feat/spec-explorer-mobile

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 6, 2026

Copy link
Copy Markdown
Owner

t27.ai/index.html#/specs on a 375px phone kept the desktop layout intact: a
300px library beside the detail pane. That left roughly 150px for the detail,
which wrapped every word of the description onto its own line —

hello_worl
-- start
here
The
smallest
spec

— and the row still overflowed, so the page scrolled sideways and the search box
was clipped off the top.

What changes

Below 760px it is master-detail, the way a phone expects: the library is the
landing view at full width, tapping a spec opens it, a back control returns.
Above 760px nothing changes.

The threshold is chosen against the layout, not a device: 760px is where the
library at its preferred 300px stops leaving the detail pane room for a readable
line. Tablets in landscape keep both panes.

Three details that aren't incidental

  • The pane switch lives in the list item's onClick, not inside pick(). The
    explorer also picks a spec on load; routing that through pick() dropped a
    first-time visitor straight into a file they hadn't chosen. A shared
    ?spec= link still opens its spec, because that one was asked for.
  • The back control is 44px tall — the smallest reliably tappable target.
  • The new flag is phone, not narrow. A narrow already exists in this file
    meaning < 1100px, and only trims chrome. Reusing it would have tied a layout
    change to a threshold chosen for something else.

Verified in a real browser at real sizes

Measured against the built artifact, not reasoned about from the CSS:

at 375×812
horizontal overflow 0px (scrollWidth === clientWidth === 375) on both panes
landing view library, not the featured spec
tap a spec detail opens, back control present
tap back library returns, selection still highlighted

Re-checked at 1280×800: two panes, no back control, Chip tab present —
unchanged.

EN and RU copy for the new control. tsc baseline unchanged at 179.

At 375px the desktop layout was kept intact: a 300px library beside the detail
pane. That left roughly 150px for the detail, which wrapped every word of the
description onto its own line -- "hello_worl / -- start / here / The / smallest
/ spec" -- and the row still overflowed, so the page scrolled sideways and the
search box was clipped off the top.

Below 760px it is now master-detail, the way a phone expects: the library is the
landing view at full width, tapping a spec opens it, and a back control returns.
Above 760px nothing changes.

The threshold is chosen against the layout rather than a device: 760px is where
the library at its preferred 300px stops leaving the detail pane enough room for
a readable line. Tablets in landscape keep both panes.

Three details that are not incidental:

- The pane switch lives in the list item's onClick, not inside pick(). The
  explorer also picks a spec on load, and routing that through pick() dropped a
  first-time visitor straight into a file they had not chosen. A shared link
  still opens its spec, because that one was asked for.
- The back control is 44px tall, the smallest reliably tappable target.
- The new flag is `phone`, not `narrow`. A `narrow` already exists in this file
  meaning "< 1100px" and only trims chrome; reusing it would have tied a layout
  change to a threshold chosen for something else.

Verified at 375x812 against the built artifact in a real browser, not by
reasoning about CSS: horizontal overflow measured at 0px on both panes
(scrollWidth === clientWidth === 375), the list lands first, a tap opens the
detail with the back control, back returns to the library with the selection
still highlighted. Re-checked at 1280x800: two panes, no back control, Chip tab
present, unchanged.

EN and RU copy for the new control.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit f21a026 into main Sep 6, 2026
27 of 33 checks passed
@gHashTag
gHashTag deleted the feat/spec-explorer-mobile branch September 6, 2026 13:18
github-actions Bot added a commit that referenced this pull request Sep 6, 2026
feat(website): the Spec Explorer works on a phone (#961)

At 375px the desktop layout was kept intact: a 300px library beside the detail
pane. That left roughly 150px for the detail, which wrapped every word of the
description onto its own line -- "hello_worl / -- start / here / The / smallest
/ spec" -- and the row still overflowed, so the page scrolled sideways and the
search box was clipped off the top.

Below 760px it is now master-detail, the way a phone expects: the library is the
landing view at full width, tapping a spec opens it, and a back control returns.
Above 760px nothing changes.

The threshold is chosen against the layout rather than a device: 760px is where
the library at its preferred 300px stops leaving the detail pane enough room for
a readable line. Tablets in landscape keep both panes.

Three details that are not incidental:

- The pane switch lives in the list item's onClick, not inside pick(). The
  explorer also picks a spec on load, and routing that through pick() dropped a
  first-time visitor straight into a file they had not chosen. A shared link
  still opens its spec, because that one was asked for.
- The back control is 44px tall, the smallest reliably tappable target.
- The new flag is `phone`, not `narrow`. A `narrow` already exists in this file
  meaning "< 1100px" and only trims chrome; reusing it would have tied a layout
  change to a threshold chosen for something else.

Verified at 375x812 against the built artifact in a real browser, not by
reasoning about CSS: horizontal overflow measured at 0px on both panes
(scrollWidth === clientWidth === 375), the list lands first, a tap opens the
detail with the back control, back returns to the library with the selection
still highlighted. Re-checked at 1280x800: two panes, no back control, Chip tab
present, unchanged.

EN and RU copy for the new control.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
gHashTag added a commit to gHashTag/trinity-fpga that referenced this pull request Sep 6, 2026
…parser fix reached the branch that matters

D103: gHashTag/trinity#961 merged and live. Below 760px the Spec Explorer is
master-detail; at 375px the old layout left ~150px for the detail pane and
scrolled sideways. Verified at 375x812 and re-checked at 1280x800.

A49: yosys refuted my own three-iteration claim. It synthesises hello_world to
0 cells, 4 wires, 4 ports BOTH with and without the packed-struct fix, and it
never rejected the old output -- it warned and carried on. So the fix removes a
warning and restores a struct's lost name; it does not change synthesis and was
never a cause of the corpus's yosys failures. yosys was installed the whole time.

t27#3385 cherry-picks the fix onto fix/struct-field-brace-nesting, the branch
the website actually vendors -- master and that branch have diverged 586/1327
commits both ways, and master's corpus has no packed struct to test against.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant