diff --git a/app/globals.css b/app/globals.css index 497f73a..ab97756 100644 --- a/app/globals.css +++ b/app/globals.css @@ -15,6 +15,18 @@ * future settings UI reassigns them (configurable per the owner). */ +/* The no-ring law (owner, UI round 2026-10-01): the browser's default + focus/focus-visible outline appears NOWHERE in the app. Pointer focus + never showed it; any keypress while a clicked element still held focus + DID (:focus-visible re-evaluates on key input — a clicked sidebar + session lit up when the quiz's ←/→ were pressed). Surfaces carry their + own hover/active/selected affordances; the dock's keyboard walk uses + its own ring utilities, unaffected by an outline reset. */ +*:focus, +*:focus-visible { + outline: none; +} + /* Palette (owner's hexes): main #141414, raised #1C1C1C, edges #434343. Mono chrome = JetBrains Mono; prose = Source Sans 3; titles = CMU Serif. */ :root { diff --git a/components/question-dock.tsx b/components/question-dock.tsx index 4d29a5d..bc54d8b 100644 --- a/components/question-dock.tsx +++ b/components/question-dock.tsx @@ -611,16 +611,18 @@ function QuestionDockForm({ )} - {/* Confidence (owner, 2026-10-01; UI round same day): a snapped + {/* Confidence (owner, 2026-10-01; UI rounds same day): a snapped slider below the options and above "Your thinking" — the learner's stated probability that his selected answer is correct. The thumb's POSITION is the raw fraction (50 sits - halfway), the fill + handle wear the stop's ramp color, and - the bar is a taller pill. Keyboard: GLOBAL ←/→ (the ↑/↓ - pattern — works wherever focus sits); the element itself - takes no focus and never rings (tabIndex -1, mousedown - prevented). "I don't know" GRAYS it out — the layout holds, - no value is sent, the IDK signal stands alone. */} + halfway), the fill + handle wear the stop's ramp color, the + bar is a taller pill with an outline and a #141414 empty + side, and dashed ticks mark each stop. Keyboard: GLOBAL ←/→ + (the ↑/↓ pattern — works wherever focus sits; the ring is + gone app-wide, so focus anywhere is invisible). Clicking and + dragging work natively. "I don't know" GRAYS it out — the + layout holds, no value is sent, the IDK signal stands + alone. */} {kind === "quiz" && (