Skip to content

Fix: home screen swipe, folder motion, search and RTL labels - #557

Merged
SandObserver merged 2 commits into
mainfrom
fix/dashboard-touch-motion-labels
Oct 26, 2026
Merged

SandObserver merged 2 commits into
mainfrom
fix/dashboard-touch-motion-labels

Conversation

@SandObserver

@SandObserver SandObserver commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Replace the release-only swipe with one touch pager (swipePager) for the home strip, the phone folder pager and touches forwarded from bundled widget frames. The strip follows the finger 1:1, direction locks after 10px, a release faster than 0.11 px/ms turns the page, the ends rubber-band, and a finger whose touchend never arrived is dropped on the next touchstart.
  • Leave sideways touches to elements that scrub (System Summary, GitHub, DNS charts).
  • Open Search from the phone pill only on a tap (onTap); a touch that moved reaches the pager. A second finger springs the strip back to the current page, on the page and in widget frames.
  • Turn pages in 280ms on cubic-bezier(.32,.72,0,1) instead of .44s ease-in-out, and settle a swipe from the finger's position at its speed.
  • Grow folders from the opening tile's box and shrink them back into it with WAAPI. A closed overlay drops its scrim and backdrop blur at once and takes no input. Replace the folder's non-passive touchmove with touch-action:none.
  • Give phone app, Dock and folder tiles the app-tile press, and desktop folder tiles the hover and press. Turn off the long-press callout on phone app and Dock tiles.
  • Add setCentredText for centred tile labels: plain text with dir="auto", since dir="auto" skips text inside a <bdi>. Isolate the initial-letter plate and folder thumbnail initials.
  • Tone the empty-dashboard text from the wallpaper through label-contrast.js.
  • Close search at once on Escape, ignore a close event that lands after a reopen, and fade a layer that takes no input, so typing reopens search and clicks reach the page. Open in 150ms ease-out. Arrow keys move the result highlight without the glide.
  • Moving pill transitions opacity and transform only. The phone search pill reveals with clip-path, hides while search is open, and long result names wrap.
  • Fade the startup cover in 200ms ease-out. Set overscroll-behavior:none and -webkit-text-size-adjust:100% on the dashboard.
  • Under reduced motion, keep opacity and colour transitions and drop transform and clip-path movement.

Testing
All green, including e2e. Added tests for the pager, the pill tap and swipe, a second finger, flick and rubber-band maths, folder motion, tile press, centred label direction (unit and e2e), empty-state contrast and the reduced-motion rules.

Changelog

Changed

  • Make phone pages follow the finger, turn on a quick flick and stretch at the ends.
  • Turn pages faster from the keyboard, wheel and page dots.
  • Grow folders out of their tile and shrink them back on close.
  • Keep fades under Reduce Motion and drop only movement.

Fixed

  • Show the start of long right-to-left app names, with the ellipsis at the end.
  • Make empty-dashboard text readable on dark wallpapers in light mode.
  • Keep typing and clicks working right after closing search.
  • Show press feedback on phone app, Dock and folder tiles.
  • Wrap long names in phone search.
  • Turn the page on a swipe that starts on the phone search pill instead of opening search.
  • Stop the dashboard from bouncing on iOS.

Checklist

  • Stays within the project constraints: one container, no runtime dependencies, no build step (see CONTRIBUTING.md).
  • Tests added or updated for new logic, and the full suite, lint, and typechecks pass.
  • Docs updated if behavior or configuration changed.

@SandObserver SandObserver added the ui/ux UI, UX, and accessibility only fix label Oct 26, 2026
- Open Search from the phone pill only on a tap; a touch that moved reaches the home pager.
- Spring the strip back to the current page when a second finger lands, on the page and in widget frames.
- Let the drag rule outrank every tile press and hover rule.
- Isolate folder thumbnail initials left to right.
- Ignore a search close event that lands after search reopened.
- Count the drag settle as a transitionend waiter.
@SandObserver
SandObserver merged commit fb4d382 into main Oct 26, 2026
8 checks passed
@SandObserver
SandObserver deleted the fix/dashboard-touch-motion-labels branch October 26, 2026 03:33
stackyard-release Bot pushed a commit that referenced this pull request Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ui/ux UI, UX, and accessibility only fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant