Repository navigation
feat: ultimate touch and phone support - #151
Open
professionalarduino-max wants to merge 4 commits into
Open
professionalarduino-max wants to merge 4 commits into
professionalarduino-max wants to merge 4 commits into
Conversation
- Stack the stage above the editor on windows narrower than 1024px and let the page scroll vertically - Shrink the stage to fit narrow windows instead of overflowing (same approach as the existing fullscreen branch in screen-utils) - Larger tab and menu item tap targets on coarse pointers - touch-action: manipulation on buttons to avoid the double-tap zoom delay - Menu bar scrolls horizontally on narrow screens
Layout: - Phone portrait (<600px): compact stage menu and tabs, wider sprite pane, scrollable sprite-info row and menu bar, safe-area insets for notched screens - Phone landscape (short windows): keep the side-by-side layout so the editor is not squeezed under the stage - Full-screen modals on phones; library/sprite tiles grow on touch - On-screen keyboard: visualViewport tracking keeps the focused input visible (body padding via --dash-keyboard-height) Touch: - Swipe the tab bar to switch Code/Costumes/Sounds - Long-press (400ms) opens sprite context menus on touch - Haptic feedback on green flag, stop and when a drag starts - Larger tap targets for stage controls, tabs, menu items, context menus, modals, sound editor, backpack, close buttons (pointer: coarse) - No double-tap zoom delay; 16px form fields so iOS does not auto-zoom - prefers-reduced-motion support
- PWA: webmanifest improvements (maskable icon, scope), service worker for offline static assets and navigation, install prompt button - Mobile settings panel in the menu bar: haptics, keep-screen-on (Wake Lock), compact interface mode - Workspace gestures with hammerjs: pinch-to-zoom, two-finger pan, double-tap reset zoom (ignores blocks to avoid accidental drags) - Readable default block zoom on phones - Green flag requests a screen wake lock while a project runs
- workspace gestures: touch-action none so the browser never steals the pinch gesture for native page zoom - wake lock: respect the keep-awake setting, release the previous sentinel before requesting a new one, release when the setting is turned off - green flag: guard against a missing onClick prop - service worker: cacheable path matching also works in sub-path deploys
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Ultimate touch and phone support for Dash — the editor becomes genuinely usable on phones, tablets and touch screens, plus an installable offline PWA shell.
Round 1 — layouts, touch targets, UX
visualViewporttracks the on-screen keyboard and sets--dash-keyboard-heightso inputs and modals stay visibleoverscroll-behaviorso pulling down does not reload the pageholdToDisplay400ms so tap-vs-hold is reliableRound 2 — PWA, gestures, settings
html.dash-compactshrinks controls)Testing
npm ci && npm start— desktop editor unchanged; phone layout kicks in below 600pxDepends on
hammerjs(pinned2.0.8, added to package.json + package-lock.json).