From 7b6005cf867a9504c855a77fccf43976fc9e0870 Mon Sep 17 00:00:00 2001 From: type-two Date: Sun, 19 Jul 2026 12:43:10 +1000 Subject: [PATCH] Fix: cutlery drawer swallowed all clicks (invisible full-screen panel) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The drawer's info card lives in a .drawer-panel that's inset:0 full-bleed with pointer-events:none — but the base rule '#ui > *' re-enables pointer-events:auto and its ID specificity (1,0,0) beats the class's (0,1,0), so the invisible sheet covered the canvas and ate every drag. The kitchen panel is a small positioned card so it never covered anything; the drawer is the first full-bleed canvas-drag scene, which is why it surfaced here. Scoped the container's rule to '#ui > .drawer-panel' so it wins the specificity war and clicks reach the 3D pieces. Verified: real DOM pointerdown now reaches the canvas, a piece grabs on press and lifts (y 0.4). Harness never caught it — it injects input directly, bypassing DOM pointer-events entirely. Co-Authored-By: Claude Fable 5 --- src/style.css | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/style.css b/src/style.css index d3b2350..c9d18e5 100644 --- a/src/style.css +++ b/src/style.css @@ -447,11 +447,15 @@ canvas#c { } /* ---- the drawer ---- */ -.drawer-panel { +/* Full-bleed and pass-through: the cutlery is dragged on the CANVAS beneath. + The `#ui > *` auto rule has ID specificity and would otherwise force this + invisible full-screen sheet to pointer-events:auto, swallowing every drag. */ +#ui > .drawer-panel { position: absolute; inset: 0; pointer-events: none; } +/* The info card is the only thing here that could want clicks — it doesn't. */ .drawer-card { position: absolute;