Skip to content

feat: Mobile UI for web (upstream PR #835)#3

Merged
Trifall merged 24 commits into
Trifall:mainfrom
ajlittle:phoneui
Mar 2, 2026
Merged

feat: Mobile UI for web (upstream PR #835)#3
Trifall merged 24 commits into
Trifall:mainfrom
ajlittle:phoneui

Conversation

@ajlittle
Copy link
Copy Markdown
Collaborator

@ajlittle ajlittle commented Mar 1, 2026

Summary

  • Responsive mobile layout with swipe gesture panels for phone-sized screens
  • Traditional layout preserved for tablet/desktop
  • Touch-friendly improvements: autocapitalize, autocorrect, context menus, skip user card on mobile
  • Fixes for loading wheel, modals, and invite embeds on small screens
  • Includes fix for floating user cards stacking when clicking multiple users
  • Original work by Pecacheu - see stoatchat/for-web#835 for demos/screenshots

Pecacheu added 22 commits March 1, 2026 17:39
Shrink home-screen flex layout to single-column for mobile

Signed-off-by: Pecacheu <[email protected]>
- Settings menu margin shrink and use "Back" button in sidebar instead of "Esc" button on right when screen width < 800px
- Message box doesn't grow from placeholder,  overflow with ... instead
- Hide GIF button when typing

Signed-off-by: Pecacheu <[email protected]>
- Disable hover action buttons for DMs, server list, and messages on mobile because these are too easy to accidentially tap
- Move the text editor fixes from MessageBox.tsx to codeMirrorLineWrap.ts to make it act as a CodeMirror extension
- Allow newlines with enter key on mobile instead of sending (Attempted send with Ctrl + Enter on mobile, but this doesn't work for some reason. Eg. this would matter for mobile external keyboard or Android Desktop mode.)
- Fix stoat assets from submodule not syncing

Signed-off-by: Pecacheu <[email protected]>
- Found a better spot to put the @media query so that it's all in one place for easier maintence
- Hide breadcrums at top in "My Account" panel to fix visual bug where there's still a gap there despite no title
- Center ESC button text properly

Signed-off-by: Pecacheu <[email protected]>
- I swear this is the last time lol. Now using classes for everything instead of just some of it, will also help with changes for phone view
- Change threshold for tablet view to 900px
- Fix modal button touch event prorogation bug causing touches to glitch through as it closes

Signed-off-by: Pecacheu <[email protected]>
- Phone UI triggers at < 600px width
- Animated, swipable drawer slider, inspired by Discord app
- Viewport interactive-widget specifier to force keyboard to resize content window instead of awkwardly panning it

Signed-off-by: Pecacheu <[email protected]>
- Inertia-based snapping for SlideDrawer! We mustelids are experts in speed so this was inevitable
- Fix bug that could cause a SlideDrawer race condition if openning and closing settings menu super fast
- Add appDrawer to app state to update things when the state of the UI changes between mobile/non-mobile
- Don't trigger floating tooltops when input is touched, otherwise they get stuck in a showing state on touchscreens
- Reset layout to member sidebar being hidden when mobile view is shown (otherwise how to close it seems to cause some confusion among those who helped test so far)
- Replace primary sidebar collapse button with a "back" button for mobie view

Signed-off-by: Pecacheu <[email protected]>
- Remove redundant Show than For's in Message.tsx
- Refine SlideDrawer inertia detection by always recalculating final velocity at end
- Enable PWA for dev build for testing
- Update assets

Signed-off-by: Pecacheu <[email protected]>
…ehavior

- On mobile, skip UserCard preview (which doesn't look right on small displays) when tapping user icon and go straight to full UserProfile modal

Signed-off-by: Pecacheu <[email protected]>
- Fix stoatchat#883 text overflow out of dialog modals
- Remove old "error" type modal
- Fix invite embed going past edge of screen on mobile

Signed-off-by: Pecacheu <[email protected]>
…spellcheck suggestions

- Remove debug print from SlideDrawer

Signed-off-by: Pecacheu <[email protected]>
- Add shorthand names for some emojis

Signed-off-by: Pecacheu <[email protected]>
- Replace depricated meta 'apple-mobile-web-app-capable' with 'mobile-web-app-capable'

Signed-off-by: Pecacheu <[email protected]>
…ipated

- Also streamlined the Media Picker menu in the process, should now be much more efficent by generating a lot less stray DOM elements, and using only one Media Picker instance per message
- Only show member sidebar when in server or group DM, because it's blank in normal DMs which causes confusion

Signed-off-by: Pecacheu <[email protected]>
@ajlittle ajlittle changed the title feat: Mobile UI for web (from upstream PR #835) feat: Mobile UI for web (upstream PR #835) Mar 1, 2026
Prevents multiple user cards from stacking when clicking
different users in the voice channel preview.
@ajlittle ajlittle marked this pull request as draft March 2, 2026 01:49
@ajlittle ajlittle marked this pull request as ready for review March 2, 2026 01:59
@Trifall Trifall merged commit a72b420 into Trifall:main Mar 2, 2026
@ajlittle ajlittle deleted the phoneui branch March 3, 2026 01:09
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.

4 participants