LearnNewsExamplesServices
Frontmatter
id14949
titleDock choreography transitions: the non-FLIP motion classes consume the #14779 contract substrate
stateOpen
labels
enhancementai
assignees[]
createdAt8:01 AM
updatedAt8:02 AM
githubUrlhttps://github.com/neomjs/neo/issues/14949
authorneo-opus-grace
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Dock choreography transitions: the non-FLIP motion classes consume the #14779 contract substrate

Open Backlog/active-chunk-5 enhancementai
neo-opus-grace
neo-opus-grace commented on 8:01 AM

Context

Successor leaf from the #14779↔#14929 signed motion-contract disposition (ratified 2026-07-10, #14779 comment thread): #14779 delivered the CONTRACT SUBSTRATE (PR #14947 — the --dock-transition-* token set, token-layer reduced-motion collapse, and the dock-animating signal owner Neo.dashboard.DockMotionSignal). This leaf is the substrate's first Body-side CONSUMER: the non-FLIP choreography — the CSS class-toggle transitions for property motion the disposition left to "follow-up ranges". The FLIP commit layer (#14929) is the SIBLING consumer for structural re-layout jumps; both read the same tokens and route the same signal, so there is ONE observable motion lifecycle.

The Fix

One PR, adapter + theme tier only (presentation-only per the JSON-first guardrail):

  1. Splitter size ease — committed resizeSplit re-projections transition flex-basis/size via a neo-dashboard-dock-motion transition class reading the tokens.
  2. Tab insert/remove morphing — entering/leaving tab headers transition in/out instead of teleporting.
  3. Auto-hide rail slide — the §2.7 reveal overlay + rail affordances slide on the tokens (the reveal FSM stays timing-owner; this is projection skin).
  4. Arrival settle highlight — a brief settle affordance on cross-window arrival (§2.3 landed mechanics).

Every motion: duration/easing from --dock-transition-* ONLY (no call-site literals — review-checkable), DockMotionSignal.enter/leave around the transition lifecycle (transitionend + the signal's own fail-safe), prefers-reduced-motion honored by construction (token collapse — zero per-site checks).

Acceptance Criteria

  • All four motion classes transition with durations sourced ONLY from the token set (review-checkable: no literals at call sites).
  • Every motion routes DockMotionSignalobserve_motion e2e can assert start/settle on neo-dashboard-dock-animating for each class (#14591-successor wires those specs).
  • Reduced-motion collapses all four to instant via the token layer alone.
  • Zero motion state in documents/previews/persistence (JSON-first guardrail).
  • Visual verification on examples/dashboard/dock (browser gate — human or browser-capable peer per the design-artifact render rule).
  • Cross-family review before merge.

Out of Scope

  • FLIP structural-commit animation (#14929, sibling consumer).
  • The e2e assertions themselves (#14591-successor).
  • Visual language / flagship polish of the affordances (#14930's design artifact owns treatments; this leaf is motion mechanics on existing visuals).

Related

Parent #13158 · substrate #14779 (PR #14947) · siblings #14929 (FLIP consumer), #14930 (affordance design authority), #14780 (motion-standards vocabulary — value authority above the dock aliases), #14591-successor (assertions) · authority: ADR 0029 JSON-first guardrail + the signed disposition on #14779.

Live sweep (corrected): title-search choreography surfaces #14589 (showcase — consumes motion, non-dup) and #14780 (product motion-standards vocabulary — the AUTHORITY TIER this leaf's tokens alias via var(); see the layering comment on #14780). The disposition thread is the lineage. Origin Session ID: ef6b9a4a-54ec-4afb-8438-f89a3ee46ad2 Retrieval Hint: "dock choreography transitions consumer tokens dock-animating splitter ease rail slide"