Skip to content

PWA standalone mode: sidebar toggle sits under iOS status bar #7

Description

@deanjstone

Problem

When launched from the home screen as an installed PWA (standalone display mode), the sidebar toggle button in the top-left corner is positioned directly under the iPhone's physical status bar (clock/signal/battery) and is not reliably clickable — there's no browser chrome in standalone mode to provide the top inset that Safari's tab UI normally provides.

Confirmed on a real iPhone during wayfinder #6 on-device verification (2026-07-23).

Root cause

  • apps/web/src/components/AppSidebarLayout.tsx:76 positions the toggle via top: var(--workspace-controls-top).
  • apps/web/src/index.css:82 sets --workspace-controls-top: 0px as the default.
  • The only override is apps/web/src/index.css:99, scoped to the .wco class (Electron's window-controls-overlay), using env(titlebar-area-y, 0px).
  • There is no equivalent override for browser/PWA standalone display mode using env(safe-area-inset-top), so outside Electron the button always sits at literal 0px from the viewport top — fine in a normal Safari tab (Safari's own chrome already pushes content down), but wrong in standalone mode where the app owns the full screen down to the status bar.

Suggested fix

Add a rule (e.g. gated on @media (display-mode: standalone), matching how .wco is scoped for Electron) that sets --workspace-controls-top: env(safe-area-inset-top, 0px) so the toggle clears the status bar in installed-PWA mode, without affecting the existing Electron or regular-browser-tab behavior.

Scope

Part of the PWA wayfinder map. Flagged per #6's "file a ticket rather than fix inline" instruction — not fixed in this issue.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

wayfinder:taskWayfinder: concrete build task

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions