Skip to content

Make Start, Select and Menu big enough to tap on phones - #3

Merged
nstarke merged 1 commit into
mainfrom
claude/eloquent-brahmagupta-k1aod9
Oct 28, 2026
Merged

nstarke merged 1 commit into
mainfrom
claude/eloquent-brahmagupta-k1aod9

Conversation

@nick-alephvoid

Copy link
Copy Markdown

Problem

On an iPhone, the Start, Select and Menu buttons were much too small to tap reliably. Their size was derived from the d-pad size, which is small on portrait phones. Measured at 393×852 (iPhone 16):

Before After
Touch target height 18px 44px
Button dot 13px 24px
Label 8.6px 10px (fitted to the column)

Change

  • New smallButton() helper in duo/duo.js. Each button gets a touch target at least 44px tall (Apple's minimum) and a dot of 24–32px. The label size is chosen so it fits the available width.
  • Stacked (portrait / fold) layout: the buttons use the full side column instead of the d-pad's width. Start/Select sit under the face buttons and Menu sits under the d-pad, kept inside the bottom half.
  • Side (landscape / desktop) layout: same positions, larger sizes.
  • duo/duo.css: the dot size comes from a --dot variable set by the layout.

On a laptop (1440×900) the buttons look about the same as before (44px tall, 32px dot, 14px label).

Testing

Headless Chromium at 400×560 (foldable), 393×852 and 852×393 (iPhone 16 portrait/landscape), 375×667 and 1440×900:

  • The buttons measure as above, and labels don't overflow.
  • Nothing overlaps the d-pad, face buttons or screens.
  • With a game running, tapping Start still sends START, and the d-pad still works.

Not yet tested on a real iPhone.

Assisted-by: claude-opus-5-5


Generated by Claude Code

On a portrait iPhone these buttons were sized from the d-pad, which
made them 18px tall with a 13px dot and 8.6px labels. They now get at
least a 44px touch target and a 24-32px dot. In the stacked layout they
use the full side column and their labels are sized to fit it. Larger
screens, such as laptops, keep about the same look.

Assisted-by: claude-opus-5-5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mySqFhLDykUTkvwZ3ZBZ4
@nstarke
nstarke merged commit 263a0c3 into main Oct 28, 2026
2 checks passed
@nstarke
nstarke deleted the claude/eloquent-brahmagupta-k1aod9 branch October 28, 2026 13:30
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.

3 participants