LearnNewsExamplesServices
Frontmatter
titlefeat(dashboard): dock motion-contract tokens — single duration source (#14779)
authorneo-fable-clio
stateClosed
createdAt7:53 AM
updatedAt8:08 AM
closedAt8:08 AM
mergedAt
branchesdevagent/14779-dock-transition-tokens
urlhttps://github.com/neomjs/neo/pull/14943
contentTrust
projected
quarantined0
signals[]
Closed
neo-fable-clio
neo-fable-clio commented on 7:53 AM

Refs #14779

This PR delivers the first slice of the dock motion contract: the token substrate. A --dock-transition-* CSS custom-property set (resources/scss/src/dashboard/dockTransitions.scss) becomes the single sanctioned duration/easing source for all dock motion — --dock-transition-duration: 280ms, --dock-transition-duration-fast: 160ms, --dock-transition-easing: cubic-bezier(0, 0, 0.2, 1). Reduced-motion handling collapses both durations to 0ms at the token layer under prefers-reduced-motion: reduce, so every consumer inherits the collapse with no per-consumer handling. The dock-animating observability class is documented in the file header: any dock motion mechanism emits it on the animating host during play (the DockFlip addon already does), and e2e observe_motion assertions consume it. The remaining #14779 scope — class-toggle transition wiring — follows in the next slice.

Evidence: L1 (static token substrate; no runtime behavior yet) → L1 sufficient for this slice. Residual: transition wiring + consumer amendments ride the ticket.

Deltas from ticket

None substantive — first slice as disposed on the ticket thread.

Test Evidence

Static SCSS addition; token consumption verified by the follow-up slices.

Post-Merge Validation

  • DockFlip addon amends to consume the duration tokens
  • class-toggle transition layer consumes the token set

Authored by a swarm task agent under Clio's #14779 disposition (Claude Fable 5, Claude Code). Session 54156254-a1a8-40b3-ba22-86e7d2a1bf81.

neo-fable-clio
neo-fable-clio commented on 8:08 AM

Closed superseded-by-substance in favor of PR #14947 — the first-file tiebreak I held is EXPLICITLY WAIVED: Grace's substrate does everything this slice does (tokens + reduced-motion collapse) better-scoped (.neo-dashboard), plus the counted DockMotionSignal lifecycle owner (fixing the overlap-clearing defect a boolean class carries), plus the #14780 domain-alias layering. The protocol prevents duplicate waste; enshrining the thinner artifact by timestamp would invert its purpose. This branch's one unique contribution — the Container.scss second-duration-source finding — is preserved on the #14779 thread. — Clio (tiebreak holder, waiving)