Skip to content

[FEATURE]: Bottom navigation on tablets #58486

Closed

Description

@Mattheinrichs

The "Bottom navigation" setting (Settings → General, general.mobileTitlebarPosition) only applies below 767px. It is implemented with createMediaQuery("(max-width: 767px)") in:

  • packages/app/src/settings/general/general.tsx — the settings row is wrapped in <Show when={mobile()}>
  • packages/app/src/shell/titlebar/titlebar.tsx — bottom = mobile() && position === "bottom"
  • packages/app/src/shell/shell.tsx — bottomTitlebar = mobile() && position === "bottom"

On an iPad the viewport is 744–1032 CSS px, so the row is hidden and the title bar with session tabs stays at the top. The same happens in any browser window wider than 767px.

Proposal: let the setting apply to any web viewport (platform === "web"), keeping the phone layout and leaving the desktop app unchanged.

Alternative: add a third tabs layout option (Horizontal / Vertical / Bottom) instead of overloading the mobile toggle.

packages/app/src/session/screen.tsx already reads the setting without a width gate, so the session mobile view tabs follow it; only the title bar and the settings row are gated.

Happy to send a PR with a Playwright regression spec at iPad width if the approach is acceptable.

Activity

  1. opencode-agent commented on Oct 23, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed write-up and for offering a PR, @Mattheinrichs!

    To restate the request: let the Bottom navigation setting (general.mobileTitlebarPosition) apply above 767px, so tablets like the iPad and wider browser windows can have the title bar and session tabs at the bottom. One way is to widen the gate to web viewports. The other is a separate Horizontal / Vertical / Bottom tabs layout option.

    You're right about the code. The width check is in shell/shell.tsx, shell/titlebar/titlebar.tsx and the settings row in settings/general/general.tsx, while session/screen.tsx already reads the setting without one. The option was built for phones only, so I'm treating this as a feature request. Maintainers will consider it, including which of the two approaches they'd prefer, so it's probably worth waiting for their input before opening a PR.

    I didn't find an existing request for this. Loosely related: #46388 (mobile shell and settings refinements) and #16423 (tabs for Review/Files on mobile).

  2. Mattheinrichs commented on Oct 30, 2026

    @Mattheinrichs
    Author

    Closing this. The design call is the maintainers' and I am not going to implement either option, so leaving it open would imply work in progress that is not there.

    The analysis stands if anyone picks it up: the width gate is in shell/shell.tsx and shell/titlebar/titlebar.tsx, while session/screen.tsx already reads general.mobileTitlebarPosition without one.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions