diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-10 17:32:43 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:07 -0300 |
| commit | 685b8c8e74c9edbdf701594f50ff1b70ac288ec9 (patch) | |
| tree | f303bd5e1f422030c2c645ea2d6c3a393990fb5e /docs | |
| parent | ddc2eefb1e7cdd402593efb1297c25fc7ae4b110 (diff) | |
| download | pardes-685b8c8e74c9edbdf701594f50ff1b70ac288ec9.tar.gz pardes-685b8c8e74c9edbdf701594f50ff1b70ac288ec9.zip | |
web snapshots: add switch for saving/loading exports, update web version, web snapshot tooling
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/design.typ | 35 |
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. |
