# Mobile Touch Patterns ## Text Selection Prevention for Touch Interactions When building components with drag-and-drop, touch gestures, or interactive elements on mobile, text selection can interfere with the user experience. Users attempting to drag items may accidentally select text instead. ### The Problem On mobile devices: - Touch-and-hold triggers text selection - Dragging while text is selected feels broken - iOS shows callout menus on long press - Double-tap zoom can interfere with interactions ### The Solution Apply a combination of CSS rules and Tailwind classes to prevent text selection on interactive elements. ## CSS Pattern Add this to your component's ` ``` ## Testing Checklist When testing on mobile: - [ ] Can drag items without text selection appearing - [ ] No iOS callout menu on long press - [ ] Drag feels responsive (not delayed) - [ ] Can still scroll the page normally - [ ] Form inputs still allow text selection - [ ] No double-tap zoom interference ## References - [MDN: user-select](https://developer.mozilla.org/en-US/docs/Web/CSS/user-select) - [MDN: touch-action](https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action) - [SortableJS Options](https://github.com/SortableJS/Sortable#options) - [Vuedraggable Documentation](https://github.com/SortableJS/vue.draggable.next) --- **Created**: 2025-01-17 **Pattern Source**: LineupBuilder.vue mobile drag-and-drop implementation