Skip to content

feat(settings): mobile gutter, wrapping header, touch-safe ghost hover - #14

Merged
qqqqqf-q merged 4 commits into
felinics:mainfrom
qqqqqf-q:feat/web-mobile-shell
Aug 5, 2026
Merged

feat(settings): mobile gutter, wrapping header, touch-safe ghost hover#14
qqqqqf-q merged 4 commits into
felinics:mainfrom
qqqqqf-q:feat/web-mobile-shell

Conversation

@qqqqqf-q

@qqqqqf-q qqqqqf-q commented Aug 5, 2026

Copy link
Copy Markdown
Member

Companion to the Memoh web mobile shell (memohai/Memoh feat/web-mobile-shell). Desktop ≥md rendering stays pixel-identical throughout.

PageShell / PageHeader — mobile gutter + wrapping header

  • PageShell's page variant gains a <md gutter step (px-4/pt-6/pb-8); ≥md desktop values unchanged.
  • PageHeader's framed title row wraps instead of crushing the title into truncation when actions can't fit; wrapped actions go full-width below md so a search field stays usable. The wrap is content-driven, not a breakpoint — narrow desktop split panes benefit too.

Menu search input — iOS focus zoom

  • text-base (16px) below md: iOS Safari auto-zooms the page when a focused field renders under 16px, and the zoomed viewport stays shifted after the keyboard closes. Desktop rhythm (text-control, 14px) unchanged.

Ghost hover chip — touch sticky :hover

  • On touch a tap leaves the button in a sticky :hover state, so the ghost chip stayed painted after the finger lifted — a menu trigger kept reading "active" after its menu closed. The hover chip is now gated behind @media (hover: hover); the open-state selectors (data-state=open / aria-expanded) are deliberately NOT gated so an open trigger stays lit on every platform. Touch press feedback comes from :active.

Verification

  • Playwright (iPhone 13, hasTouch): header wrap, menu open/close, ghost chip clearing after close.
  • Desktop regression: ≥md classes unchanged — all additions are max-md-scoped or hover-media-gated.

⚠️ No human QA — this PR has not been verified by a human yet. Remove this line once a human confirms the happy path.

PageShell's page variant gains a <md gutter step (px-4/pt-6/pb-8, desktop
px-6/pt-10/pb-12 unchanged at >=md), matching the SettingsShell/DetailPane
step so phones keep a 16px margin.

PageHeader's framed title row now wraps (flex-wrap) instead of crushing the
title into truncation when actions can't fit; wrapped actions go full-width
below md so a search field stays usable. The wrap is content-driven, not a
breakpoint, so narrow desktop split panes benefit too.
iOS Safari auto-zooms the page when a focused field renders under 16px, and
the zoom strands the user in a shifted viewport after the keyboard closes.
text-base below md, text-control (14px) rhythm unchanged on desktop.
On touch, a tap leaves the button in a sticky :hover state, so the ghost
chip stayed painted after the finger lifted — a menu trigger kept reading
active after its menu closed. The open-state selectors (data-state=open /
aria-expanded) are deliberately NOT gated: an open trigger must stay lit on
every platform. Touch press feedback continues to come from :active.
@qqqqqf-q
qqqqqf-q requested a review from a team as a code owner August 5, 2026 17:19

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7ea8251046

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/lib/menu.ts Outdated
@qqqqqf-q
qqqqqf-q merged commit 131a85d into felinics:main Aug 5, 2026
1 check passed
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