Mockup, do not merge: swipe rows, elastic outer pill, trackpad swipe (#400) #510

Closed
kayg wants to merge 4 commits from issue/400-swipe-mockup-3 into dev
Owner

Mockup, do not merge. The shared row code from the chrome round on the swipe mockup: https://preview.calternal.cloud/swipe.html . Replaces #501 and the branch of #433. Details on #469.

Refs #400.

🤖 Generated with Claude Code

https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b

**Mockup, do not merge.** The shared row code from the chrome round on the swipe mockup: https://preview.calternal.cloud/swipe.html . Replaces #501 and the branch of #433. Details on #469. Refs #400. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Rows swipe in the note list, the sidebar (places and tags), search results and the Trash. Every
route to a row's actions reads one registry (rows/row-actions.ts): the swipe buttons, the ⋯ and
right-click menu, the long-press card, the shortcuts on a focused row and aria-actions.

- rows/swipe-row.ts: the gesture. Follows the finger 1:1, rubber-bands past the buttons (×0.55),
  a long swipe grows the outer button into the gap on a spring detent, release keeps the finger's
  speed (springTo). Never from the left 24 px; claims at ≥10 px sideways, >2× vertical, within
  300 ms of the touch; a still hold is a long press. Non-passive touch listeners (WebKit 232545).
  Transforms only; one width read per touch.
- rows/RowActions.svelte, RowCard.svelte: the tray, the ⋯ on hover/focus, the long-press card
  (preview with every action under it).
- rows/plugins: note, search, sidebar and Trash actions. Archive and Hide as kayg decided them
  (W13, W17–W19): an Archive place once anything is archived, Unarchive on its long swipe; "archived"
  and "hidden" in search, and "Show hidden items" in a result's ⋯.
- Still open, as mockup switches: W14 search's left → right order, W15 Pin, W16 Open as a button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Swipe rows: labels wrap only between words, ⋯ steps aside while a row moves (#400)
Some checks failed
CI / server (pull_request) Successful in 1m6s
CI / rust (pull_request) Successful in 2m39s
CI / web (pull_request) Failing after 44m13s
56313bd51f
"Unarchive" broke mid-word in its 56 px tile; labels now wrap between words only. The ⋯ hid the
tray during a mouse swipe; it now steps aside while the row is moved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Swipe rows: one pill at a time, trackpad swipe, no hover dots, Copy link then Pin, a toast for what a swipe did (#400)
Some checks failed
CI / server (pull_request) Successful in 1m11s
CI / rust (pull_request) Successful in 3m36s
CI / web (pull_request) Failing after 42m34s
965a838049
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Swipe rows: the outer pill stretches elastically with the finger (#400)
Some checks failed
CI / server (pull_request) Successful in 56s
CI / rust (pull_request) Successful in 2m49s
CI / web (pull_request) Failing after 43m30s
8291968a2a
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Author
Owner

Closing per #931: swipe rows are already in production.

Closing per #931: swipe rows are already in production.
kayg closed this pull request 2026-11-04 17:37:05 +00:00
Some checks failed
CI / server (pull_request) Successful in 56s
CI / rust (pull_request) Successful in 2m49s
CI / web (pull_request) Failing after 43m30s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal!510
No description provided.