feat(ui): mobile-first responsive design improvements#2757
Conversation
🧪 BenchmarkShould we run the Virtual MCP strategy benchmark for this PR? React with 👍 to run the benchmark.
Benchmark will run on the next push after you react. |
Release OptionsShould a new version be published when this PR is merged? React with an emoji to vote on the release type:
Current version: Deployment
|
There was a problem hiding this comment.
2 issues found across 41 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/mesh/src/web/components/monitoring/dashboard-view.tsx">
<violation number="1" location="apps/mesh/src/web/components/monitoring/dashboard-view.tsx:454">
P2: Responsive column count was updated to 2 on small screens, but row-height math still hardcodes 5 columns, causing incorrect widget sizing on mobile.</violation>
</file>
<file name="apps/mesh/src/web/components/settings-modal/index.tsx">
<violation number="1" location="apps/mesh/src/web/components/settings-modal/index.tsx:105">
P2: Direct section opens on mobile are hidden behind the sidebar because `mobileShowContent` starts false and is only set true via sidebar navigation.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
1 issue found across 2 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/mesh/src/web/components/monitoring/dashboard-view.tsx">
<violation number="1" location="apps/mesh/src/web/components/monitoring/dashboard-view.tsx:459">
P2: This column-count check is using the container width, but the `lg:grid-cols-5` breakpoint is based on viewport width. On narrower desktop containers, the row height will be calculated for 2 columns while CSS is rendering 5.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Optimizations for mobile and tablet devices across chat, sidebar, and page layouts: - Add viewport meta tag for proper mobile scaling - Use responsive spacing with sm: and md: breakpoints - Implement responsive modal/drawer patterns (dialog on desktop, drawer on mobile) - Add touch-action optimizations for better scrolling on mobile - Improve mobile keyboard handling to prevent unwanted popups - Constrain popover widths to viewport with collision padding - Adjust text visibility and spacing for smaller screens - Use useIsMobile hook for device-specific behavior Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…bile
- dashboard-view: row-height ResizeObserver now derives column count from
container width (>=1024px → 5 cols, else 2 cols) so gap math matches the
responsive grid instead of always assuming 5 columns
- settings-modal: sync mobileShowContent with isOpen transitions so direct
section opens (e.g. open("org.billing") from inbox) show the content pane
on mobile instead of being hidden behind the sidebar
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Replace template literal className interpolations with cn() calls in settings-modal and project-settings layout to satisfy the require-cn-classname lint rule and unblock CI. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
… calculation The column-count check was using container width, but lg:grid-cols-5 uses viewport width. Switch to window.innerWidth to stay in sync with the Tailwind breakpoint, and add a window resize listener so row height recalculates when the viewport crosses the 1024px threshold. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
d53e54f to
9df57da
Compare
Open/close state is now remembered across agent navigations so if you expand the Connections section it stays expanded when switching agents. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/mesh/src/web/components/details/virtual-mcp/index.tsx">
<violation number="1" location="apps/mesh/src/web/components/details/virtual-mcp/index.tsx:84">
P2: Keep the reducer pure; persisting to `localStorage` here can make the connections toggle throw before state updates apply.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
…dler Reducers must be pure; side effects in reducers can cause bugs when React calls the reducer multiple times (e.g. in Strict Mode). Move the localStorage.setItem call to the Collapsible onOpenChange callback. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
What is this contribution about?
Comprehensive mobile-first UI refactor to improve usability and layout across mobile, tablet, and desktop devices. The changes implement responsive spacing, adaptive components, and mobile-optimized interactions throughout the chat interface, navigation, and admin pages.
Key Changes
How to Test
Screenshots/Demonstration
Visual changes are responsive - test in multiple viewport sizes:
Summary by cubic
Mobile-first refactor that improves layout, touch interactions, and navigation across the app on phones and tablets. Desktop behavior stays the same while chat, settings, sidebar, and org pages become responsive.
New Features
@deco/uiDrawer(model picker, connect/share, settings, inspectors, connections/agents, home chat).useIsMobile: skip autofocus on popovers, larger tap targets, auto-close sidebar on nav, and mobile headers/back controls in settings and project settings; popovers/menus fit the viewport with collision padding anddvh/dvw, scroll areas use[touch-action:pan-y]and mobile max-heights.@deco/uitweaks—taller bottomDrawercap (95vh), fasterSheetanimations, smaller defaultInput/Textarea.Bug Fixes
CollapsibleonOpenChangeto avoid side effects and double-invocation issues.cn()in settings and project settings to satisfy lint rules and unblock CI.Written for commit c066b40. Summary will update on new commits.