summaryrefslogtreecommitdiff
path: root/docs/design.typ
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-10 17:32:43 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:07 -0300
commit685b8c8e74c9edbdf701594f50ff1b70ac288ec9 (patch)
treef303bd5e1f422030c2c645ea2d6c3a393990fb5e /docs/design.typ
parentddc2eefb1e7cdd402593efb1297c25fc7ae4b110 (diff)
downloadpardes-685b8c8e74c9edbdf701594f50ff1b70ac288ec9.tar.gz
pardes-685b8c8e74c9edbdf701594f50ff1b70ac288ec9.zip
web snapshots: add switch for saving/loading exports, update web version, web snapshot tooling
Diffstat (limited to 'docs/design.typ')
-rw-r--r--docs/design.typ35
1 files changed, 25 insertions, 10 deletions
diff --git a/docs/design.typ b/docs/design.typ
index dc94219a..e2fce5de 100644
--- a/docs/design.typ
+++ b/docs/design.typ
@@ -51,9 +51,11 @@ The boundary is two data types, both plain values:
*Event* (in): `key`, `text`, `mouse` (press/release/motion; button left, middle,
right; cell position), `wheel`, `pinch`, `resize`, and `output` (bytes a pty
-produced, tagged with the pane id). A touch tap is a left press; a joystick
-cursor is a motion plus buttons; the shells do this translation and nothing else
-with input. One event vocabulary, three dialects translated at the door.
+produced, tagged with the pane id). Touch policy belongs to the shell: web maps
+a one-finger tap to right-button LOOK and a drag past its tap slop to natural
+scrolling; native SDL keeps its two-finger gestures. A joystick cursor is a
+motion plus buttons. The shells do this translation and nothing else with
+input: one event vocabulary, three dialects translated at the door.
*Surface* (out): a grid of cells — grapheme, fg, bg, attrs — plus a cursor and
per-pane rectangles. This is the *canonical interface*: it is literally what the
@@ -237,10 +239,23 @@ palettes, ascii glyph set toggle). Tutor: embedded text as file pane.
toggles all recolor passes; Debug stats overlay; Dump writes state ZON.
*Web (replay viewer parity).* Embedded dump; focus, border/move drags, wheel,
-scrollbar, Colors/NextColor, pinch + touch (two-finger = middle), render
-scale, link-look opens a new tab (new — the prototype has no web link
-handling). SDL shells: stb_truetype atlas over the SDL GPU API (SPIR-V on
-native, GLES3 on web), letterboxed web scaling, two-finger drag = wheel, tap
-= middle click, pinch, touch debug overlay, `PARDES_TEST` PPM capture and
-`PARDES_TEST_GRID` text-grid capture. Joystick cursor for the steamdeck is
-*new* scope — the prototype ships no gamepad input.
+scrollbar, Colors/NextColor, pinch, render scale, and link-LOOK opening a new
+tab (new — the prototype has no web link handling). One-finger touch is
+deliberately complete by itself: tap = LOOK; drag past a small slop = natural
+scroll, with no LOOK on release. A build-generated read-only archive lets LOOK
+open the current contents of Git-tracked Pardes `.zig` files despite the web
+shell having no host filesystem. The published launcher dump is captured from
+a running Pardes TTY after `git ls-files '*.zig'`, so its complete terminal
+listing is the set the user can open; the published web build carries only the
+Zig tree-sitter grammar and colors opened source panes without shipping unused
+C/C++ parsers. A body gesture retains tap-LOOK/drag-scroll, but finger-down on
+a tagline or a one-cell-tolerant pane separator latches to a left-mouse gesture
+for its lifetime, keeping layout drags out of the scroll heuristic. Touch
+circles, trails, and click flashes render only while Debug is enabled. SDL
+shells use an
+stb_truetype atlas over the SDL GPU API (SPIR-V on native, GLES3 on web),
+letterboxed web scaling, pinch, and a touch debug overlay. `PARDES_TEST`
+provides PPM and text-grid capture; the browser `.snap` harness drives real
+Chromium touch input and reads both text and per-cell styles from the rendered
+surface. Joystick cursor for the steamdeck is *new* scope — the prototype ships
+no gamepad input.