Skip to content

feat(renderer): destination cue on double-tap zoom completion (#36 item 9) #43

@LeslieOA

Description

@LeslieOA

Split out from #36. The other three items shipped in #42; this one was deferred because it's mostly visual-design surface area.

What

When a fit / recenter / zoom-to-node tween completes, the destination node arrives at full opacity at the same time it arrives at full size. The audit's claim: a slight ramp-in of a drop shadow / border accent / glow during the last ~100ms of the tween would draw the eye and reinforce the "you're now focused here" semantics.

Implementation sketch

Two reasonable shapes:

  1. Per-node focused state. A focusedNodeId SharedValue + a focusedAccentOpacity derived value. SkiaCardRenderer reads both, fades the accent in when node.id === focusedNodeId.value. Requires plumbing the shared values into every card renderer.

  2. One-shot overlay component. A single <FocusIndicator /> that renders a Skia Path / RRect over the focused node's bounds with animated opacity. Lives in SkiaCanvasLayer, reads focusedNodeId + the nodeMap. Less plumbing.

Option 2 is probably the right shape — single component, no per-renderer change, easy to tune visual treatment.

Design call (blocking)

  • Drop shadow? Border accent? Glow? Pulse?
  • Active for how long after tween completes?

Acceptance criteria

  • Focused node gets a brief visual reinforcement at animation end
  • Visual treatment (final pick documented)
  • No regression on pinch / pan / scroll-wheel — indicator only fires on fit / recenter / zoom-to-node completion
  • Cleared when the user moves the camera manually (pan / pinch / scroll)

Refs

Split from #36; rest of that issue shipped in #42.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions