Skip to content

Desktop web adaptation research (2026-10-06) ​

Status: Draft · Date: 2026-10-06 · Purpose: ground the round-2 desktop board (wireframes/web-app-2). Owner feedback on the 1440px build: "can be better adapted to the web UI/UX". Every claim below carries a URL; where a source does not publish a number, this note says so rather than inventing one.

1. Material 3 adaptive guidance ​

Takeaway for us: our WINDOW_BREAKPOINT and the 340 pane / 360 list widths already match M3. Gaps are inside the panes: M3's feed adapts the card to a minimum width, and the supporting pane should carry content that is "meaningful only in relation to the main content".

2. Apple HIG (iPadOS / macOS) ​

3. Product references ​

4. Pointer-density values ​

5. What this means for TwoMore (recommendations carried to the board) ​

  1. Title, count, period controls and primary action share one toolbar row (Apple toolbar anatomy: title leading, controls centre, action trailing).
  2. Feed cards adapt to a minimum width and may change shape; a horizontal row card at >= 840 is a legitimate feed variant (M3 feed: flexible sizing; Apple: more content in fewer levels).
  3. Detail pages: reading column 680 plus a 340-360 inspector that carries supporting facts (M3 supporting pane 360; Apple inspector trailing); hero media shrinks into the pane.
  4. Pointer density is a token set from $expanded: rows 40 px (36 for dense lists), body one notch smaller (16 to 15), hover = lift/outline inside the element, 2 px focus ring, /, j/k, Esc. Hangul needs a larger floor than Latin, so meta text stays 13 (our judgement, not a cited value).
  5. Profile uses a main + side column (Strava profile); settings stays list-detail (M3 list 360).

6. Gaps ​

  • Exact Meetup, Band and Strava widths are not published; none were measured. If the owner wants measured values, a screenshot pass on logged-in accounts is the only source.
  • The M3 pane pages are client-rendered; numbers come from the Android developer pages and a search summary of m3.material.io.

Markdown remains the source of truth. Run yarn docs:check before handoff.