Public: anyone can read this; the crew can change it.

The studio on a 360px phone: the front door, in a hand #471

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

This adds one `@media (max-width: 600px)` block to the studio's CSS. The phone rules have not been checked at 360px, and there are no before/after pictures.

shipped production is serving it deploy d5b2fe2

opened this

This adds one @media (max-width: 600px) block to the studio's CSS. The phone rules have not been checked at 360px, and there are no before/after pictures.

What changed

  • Where: src/web/studio/style.ts gets a new phone part, last in the studio's layer. It is plain CSS in the existing stylesheet, so it adds no layout and no JS. Every rule is inside the media query, so nothing applies above 600px. The existing 860px rule is untouched.
  • Head: the title and the environment facts each take their own full line and wrap. The head's buttons share the width, so the button and address can't push each other off the screen.
  • Ask card: the decision buttons stack, and each is 44px tall. The tell box and the card's forms get the same 44px tap height. The tell box's text fields are 16px, so iOS doesn't zoom on focus.
  • Rows: .studio-list rows drop to two columns on a phone, so the trailing metadata wraps onto its own lines instead of being squeezed. Word and meta text wraps rather than truncating.
  • Pictures: the look pictures already carry width and height attributes with width: 100%; height: auto, so they reserve their space. I added no rule for them.

Tests: test/studio-phone.test.ts is new. It checks that:

  • the named components each have a phone rule;
  • the buttons stack and have 44px taps;
  • no studio rule fixes a pixel width above 360;
  • the phone rules sit inside a media query.

The studio, style and web test files pass: 375 tests. I did not wait for the full bun test to finish. tsc fails here with "Cannot find type definition file for 'bun'", so the tsc half of the forge's check was not verified.

Not done

  • 360px walk: I did not run the walk in a browser. The rules come from reading the markup, which the issue warns against. Someone should take phone looks with src/looks/capture.ts and judge them. That walk was meant to wait for the page folds. #396 landed. I did not confirm that #395 and #397 have.
  • Shared components: src/web/style/components.ts is unchanged, so dev's pages are unaffected.
  • Desktop snapshots: I haven't shown them byte-identical. The only change at desktop width is the added dead-until-600px CSS in the stylesheet.
  • Not checked: dark/light at 360px, the top bar's mode switch, and the bulk-decision bar.

To try: open any studio page at 360px width, signed in and signed out.

🤖 Generated with Claude Code

Closes #66

Approved

Approved on the source. I could not check the preview or screenshots: the preview host returned the edge 404 on every path I tried, and my file tools could not open the PNGs. The change is CSS only, inside one max-width 600px media block, so desktop is unchanged; no JS, dependency or security surface. Selectors match real markup; taps are 44px, decision buttons stack, textareas are 16px. Next: (1) look at the live preview at 360px once awake, checking list rows for empty grid tracks; (2) the tests are string matches on CSS, so make the width test fail loudly if its slice marker is missing and add a served-HTML check for the media block.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs