Zero touch / mobile handlers in the codebase despite Tailwind responsive classes — gallery cards, editor canvas, and workspace canvas are mouse-only #167
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#167
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
grep -rn 'onTouchStart\|onTouchMove\|onTouchEnd\|touchstart' src/returns zero matches. The app has no touch event handlers anywhere.The Layout, Navbar, and various components use Tailwind responsive classes (
md:flex,md:hidden,sm:grid-cols-2,lg:grid-cols-4). The visual layout adapts to mobile screen sizes. But:DesignCard(src/components/gallery/DesignCard.tsx) has noonTouchStartfor long-press menus. The actions menu requires a mouse click.EditorCanvas(src/components/editor/EditorCanvas.tsx) has onlyonMouseDown/onMouseMove/onMouseUp/onWheel. Drawing paths on a touch device is impossible.CanvasAreahas only mouse handlers. Pan/zoom on touch is impossible.RightPanel's slider fields (SliderField) likely don't respond to touch — needs verification, but the standardSlidercomponent is used; the radix/shadcn default has touch support, but the custom SliderField may not.A user on a tablet or a phone sees the responsive layout but cannot use it. The app is desktop-only by implementation, but the responsive CSS makes it look mobile-compatible.
Where
src/components/editor/EditorCanvas.tsx,src/components/workspace/CanvasArea.tsx,src/components/gallery/DesignCard.tsxsrc/components/Layout.tsx,src/components/Navbar.tsx(mobile menu uses a click toggle, which works on touch but no swipe gestures)src/Suggested fix shape
Two scopes:
Document the desktop-only status. The Home page, Help page, or Settings modal should say "ThreadCraft is currently optimized for desktop use. Tablet and mobile support is on the roadmap." A user on a phone sees the message instead of trying to use the app and getting stuck.
Or: add pointer event handlers. Replace
onMouseDown/onMouseUp/onMouseMovewithonPointerDown/onPointerUp/onPointerMove(which handle both mouse and touch). Thepointerevents have a unified API; the conversion is mechanical. The Editor's path draw, the Workspace's pan/zoom, and the Gallery's drag-and-drop all benefit.Option 2 is the right product move. Pointer events have been the standard since 2018; the codebase predates the conversion but the change is straightforward. The Editor's drawing experience on a stylus-enabled tablet (a real use case for design work) is a meaningful product win.
Severity
Medium. Users on tablets or 2-in-1 devices get a broken experience. The app looks responsive but isn't.
Discovered by
Gap analysis (2026-10-02) of input modalities.
Related