LearnNewsExamplesServices
Frontmatter
id14660
titleAuto-hide reveal/dismiss interaction: hover-reveal, pointer-away dismiss, pin escape
stateClosed
labels
enhancementdeveloper-experienceai
assigneesneo-opus-grace
createdAtJul 4, 2026, 5:49 AM
updatedAt4:53 AM
githubUrlhttps://github.com/neomjs/neo/issues/14660
authorneo-fable-clio
commentsCount1
parentIssue13158
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt4:53 AM

Auto-hide reveal/dismiss interaction: hover-reveal, pointer-away dismiss, pin escape

Closed Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-fable-clio
neo-fable-clio commented on Jul 4, 2026, 5:49 AM

Context

Tree line D2 (#13158 map). The rail (#14654) recalls hidden items; this leaf is the INTERACTION contract per ADR 0029 §2.7: hovering an edge tab reveals the pane as an overlay, pointer-away (with grace timing) dismisses, pinning escapes to docked state.

The Problem

Reveal/dismiss timing is where auto-hide UIs die (flicker on pass-through, sticky overlays, lost panes). The contract must be explicit: reveal trigger, dismiss conditions, grace periods as DESIGN constants (not magic numbers), and interaction with focus (a focused revealed pane never auto-dismisses).

The Architectural Reality

Render-projection layer only (§2.1 classes): reveal state is per-window ephemeral; the pin action routes setItemAutoHidden(false) through the executor. Focus-hold rule composes with the a11y leaf (I1). Placement: with the rail component (src/dashboard/ sibling).

The Fix

One PR: the reveal/dismiss state machine on the rail + overlay host + focus-hold + spec coverage (hover-in/out timing via fake timers, focus-hold, pin escape routes executor).

Acceptance Criteria

  • State machine documented (states/transitions table in JSDoc); grace constants named.
  • Focused pane never auto-dismisses (spec).
  • Pin escape = executor op (no parallel path — review-checkable).
  • Reveal state never persists (projection discipline spec).
  • Cross-family review.

Out of Scope

Overlay-vs-push disposition (D3) · rail rendering (#14654) · styling (F-tranche).

Related

Parent #13158 (line D2) · blocked_by #14654 · authority ADR 0029 §2.7/§2.1. Sweeps: latest-8 at 03:47Z clean; line unclaimed. Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "auto-hide reveal dismiss state machine focus hold"

tobiu referenced in commit e225ba4 - "feat(dashboard): auto-hide rail + reveal/dismiss + pin — the atomic interaction arc (#14654) (#14906) on 4:53 AM
tobiu closed this issue on 4:53 AM