From c679ecfea1e60ab4c1dd7a182361a2ff3d6723f5 Mon Sep 17 00:00:00 2001 From: Sulthan Zaki Date: Tue, 28 Jul 2026 20:11:58 +0700 Subject: [PATCH] docs: record the edge-tab hitbox and gesture model --- CLAUDE.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0d1f491..a8f80dd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,7 +96,14 @@ Bromite userscript (isolated world, per-site adapters, localStorage cache) 5. **UI** — rendered inside a **Shadow DOM** root to isolate from site CSS (critical on mobile). Three tabs (All / Favourites / Archived) and a row of link chips to the web UI and both manga sites; `WEB_BASE` sits in the CONFIG - block next to `API_BASE`. + block next to `API_BASE`. The FAB is a `7 × 44` edge tab whose *hit* area is + widened to `28 × 72` by an invisible `#hit` child; `#fab` must keep + `touch-action: none` and must **not** regain `overflow: hidden`. Because + `touch-action` is resolved at gesture start, the strip cannot be both + browser-scrolled and script-dragged, so `makeDraggable` splits by intent: a + swipe from `#hit` scrolls via `window.scrollBy`, a hold of `ARM_MS` arms a + reposition drag, and the visible sliver drags with no hold. See + `docs/superpowers/specs/2026-07-28-edge-tab-hitbox-design.md`. 6. **SPA navigation** — Asura is Astro, client-routed on the comic/chapter pages: patch `history.pushState`/`replaceState` + listen `popstate`, re-run `detect()` on URL change so auto-update fires without reload. Demonic uses classic reloads (initial `document-idle` run suffices). ### Live URL shapes (verified 2026-07-26, may drift — re-check against live pages before trusting)