Skip to content

feat(web): make /chat mobile-first (Claude/ChatGPT-style) - #17

Merged
Lingz450 merged 1 commit into
mainfrom
feat/web-mobile-first
Jun 23, 2026
Merged

feat(web): make /chat mobile-first (Claude/ChatGPT-style)#17
Lingz450 merged 1 commit into
mainfrom
feat/web-mobile-first

Conversation

@Lingz450

Copy link
Copy Markdown
Collaborator

Summary

Reskins the apps/web /chat surface to be mobile-first, mirroring the Claude / ChatGPT mobile apps, while keeping all desktop behavior behind md: breakpoints. The chat engine and backend API are untouched.

Changes

  • Foundation: viewportFit: cover, h-dvh containers, additive safe-area utility classes (safe-topbar / safe-composer / safe-drawer), metadataBase.
  • Shell: single column on mobile with an off-canvas drawer sidebar (scrim, Esc, body-scroll-lock, auto-close) and a compact mobile top bar; docked rail/grid preserved at md+.
  • Composer: home-bar-safe sticky bar, 16px input (stops iOS zoom-on-focus), larger touch targets on phones.
  • Secondary panels: reusable BottomSheet (drag handle, swipe-to-dismiss); Canvas renders as a column on desktop and a bottom sheet on mobile, with auto-open gated to desktop; Share dialog docks to the bottom on mobile.
  • Stable feel: global prefers-reduced-motion backstop.
  • PWA: web manifest (standalone, start_url /chat), maskable icon, generated apple-icon (force-dynamic), appleWebApp metadata.

Notes

  • apple-icon.tsx is force-dynamic on purpose: prerendering the next/og route under the strict CSP/middleware throws TypeError: Invalid URL and fails next build.
  • Unrelated in-progress work in the tree (admin documents / ingest) was deliberately excluded; this branch contains only the 12 mobile-first files.

Verification

Typecheck, next build, and all 132 web tests pass.

🤖 Generated with Claude Code

Reskin the web chat shell to be mobile-first while keeping all desktop
behavior behind md: breakpoints. The chat engine and backend API are
untouched.

- Foundation: viewportFit cover, h-dvh containers, additive safe-area
  utility classes (safe-topbar/safe-composer/safe-drawer).
- Shell: single column on mobile with an off-canvas drawer sidebar
  (scrim, Esc, scroll-lock, auto-close) and a compact mobile top bar;
  the docked rail/grid is preserved at md+.
- Composer: home-bar-safe sticky bar, 16px input to stop iOS zoom,
  larger touch targets on phones.
- Secondary panels: reusable BottomSheet (drag handle, swipe-to-dismiss);
  Canvas renders as a column on desktop and a sheet on mobile, with
  auto-open gated to desktop; Share dialog docks to the bottom on mobile.
- Stable feel: global prefers-reduced-motion backstop.
- PWA: web manifest (standalone, start_url /chat), maskable icon,
  generated apple-icon (force-dynamic), appleWebApp metadata, metadataBase.

Build, typecheck, and 132 web tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
petrobrain Ready Ready Preview, Comment Jun 23, 2026 6:38pm

@Lingz450
Lingz450 merged commit bdbf9a8 into main Jun 23, 2026
7 checks passed
@Lingz450
Lingz450 deleted the feat/web-mobile-first branch June 23, 2026 18:45
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