From 8471b1924884303da828a87d6642d5be882786e8 Mon Sep 17 00:00:00 2001 From: Ben Potter Date: Thu, 30 Apr 2026 11:32:40 -0500 Subject: [PATCH] feat: improve mobile responsiveness (#24821) Linear: DEVEX-270 The nav links (Workspaces, Templates, Tasks, Agents) were always rendered horizontally, overflowing on small viewports and pushing right-side controls (notifications, user menu, hamburger) off-screen. The Agents page has no Navbar since it sits outside DashboardLayout, leaving mobile users with no way to navigate back. - Hide nav links below `md` breakpoint; they now live in the hamburger menu alongside the existing admin/user settings sections - Add Workspaces, Templates, and Agents entries to the mobile menu dropdown - Show the Agents sidebar logo header on all viewports (was `hidden md:block`), giving mobile users a tap target back to `/workspaces` - Reduce workspace page content padding from `p-8` to `p-4 md:p-8`, with matching negative-margin fix on `ResourceMetadata` ## Demo (390px / iPhone viewport, 1.75x speed) ![mobile-demo](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/mobile-demo.gif) ## Screenshots (390px / iPhone viewport) ### Navbar | Before | After | |--------|-------| | ![before-navbar](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/before-navbar.png) | ![after-navbar](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/after-navbar.png) | Before: nav links (Workspaces, Templates, Tasks, Agents) are always visible, overflowing the mobile header and pushing the hamburger menu off-screen. After: nav links are hidden below `md`; only the logo and right-side controls are shown. ### Mobile menu | Before | After | |--------|-------| | ![before-mobile-menu](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/before-mobile-menu-open.png) | ![after-mobile-menu](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/after-mobile-menu-open.png) | Before: hamburger menu had no navigation links. After: Workspaces, Templates, and Agents links appear at the top of the dropdown. ### Agents sidebar | Before | After | |--------|-------| | ![before-agents-sidebar](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/before-agents-sidebar.png) | ![after-agents-sidebar](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/after-agents-sidebar.png) | Before: the Coder logo/back-link in the sidebar header was hidden on mobile (`hidden md:block`). After: always visible, giving mobile users a way to navigate back. ### Workspace page | Before | After | |--------|-------| | ![before-workspace](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/before-workspace.png) | ![after-workspace](https://raw.githubusercontent.com/coder/coder/mobile-screenshots/.github/pr-screenshots/after-workspace.png) | Before: `p-8` (32px) on all sides at every viewport. After: `p-4` (16px) on mobile, `p-8` at `md` and above. --- > Generated by Coder Agent --- site/src/modules/dashboard/Navbar/MobileMenu.tsx | 10 ++++++++++ site/src/modules/dashboard/Navbar/NavbarView.tsx | 6 +++++- site/src/pages/WorkspacePage/Workspace.tsx | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/site/src/modules/dashboard/Navbar/MobileMenu.tsx b/site/src/modules/dashboard/Navbar/MobileMenu.tsx index 0fd1993892..a6c7df982a 100644 --- a/site/src/modules/dashboard/Navbar/MobileMenu.tsx +++ b/site/src/modules/dashboard/Navbar/MobileMenu.tsx @@ -78,6 +78,16 @@ export const MobileMenu: FC = ({ className="w-screen border-0 border-b border-solid p-0 py-2" sideOffset={17} > + + Workspaces + + + Templates + + + Agents + + {hasSomePermission && ( diff --git a/site/src/modules/dashboard/Navbar/NavbarView.tsx b/site/src/modules/dashboard/Navbar/NavbarView.tsx index 18a47cdd13..c857dbc45a 100644 --- a/site/src/modules/dashboard/Navbar/NavbarView.tsx +++ b/site/src/modules/dashboard/Navbar/NavbarView.tsx @@ -90,7 +90,11 @@ export const NavbarView: FC = ({ )} - + {prerelease && buildInfo?.version && ( = ({ )} -
+
{selectedResource && ( )}