Skip to content

feat(studio): keyframe diamonds, navigation, context menu [4/6]#1170

Open
miguel-heygen wants to merge 1 commit into
feat/keyframes-3a-runtime-bridgefrom
feat/keyframes-3b-ui-components
Open

feat(studio): keyframe diamonds, navigation, context menu [4/6]#1170
miguel-heygen wants to merge 1 commit into
feat/keyframes-3a-runtime-bridgefrom
feat/keyframes-3b-ui-components

Conversation

@miguel-heygen
Copy link
Copy Markdown
Collaborator

Summary

KeyframeDiamond toggle, KeyframeNavigation (◀ ◆ ▶), TimelineClipDiamonds with connecting lines, KeyframeDiamondContextMenu with ease picker.

Part 4 of 6 — UI components (new files only). Depends on PR 3.

Test plan

  • Diamond markers appear on timeline clips
  • Click diamond → seek + select
  • Right-click → context menu with ease/delete/copy

@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 56a0a44 to 40826ce Compare June 3, 2026 00:21
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch 2 times, most recently from 3708bb9 to e92c7ad Compare June 3, 2026 04:36
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 40826ce to aee3a23 Compare June 3, 2026 04:37
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from e92c7ad to f00b96b Compare June 3, 2026 05:09
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from aee3a23 to 554f0ac Compare June 3, 2026 05:09
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from f00b96b to 85dadcb Compare June 3, 2026 05:10
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 554f0ac to 7e14d2b Compare June 3, 2026 05:10
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from 85dadcb to 50e19d7 Compare June 3, 2026 05:27
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 7e14d2b to dfa9793 Compare June 3, 2026 05:27
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from dfa9793 to eee8f91 Compare June 4, 2026 04:57
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch 2 times, most recently from 2f0902d to ac80b0f Compare June 4, 2026 16:15
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from eee8f91 to 197a649 Compare June 4, 2026 16:15
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from ac80b0f to a6b6208 Compare June 4, 2026 16:40
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 197a649 to 02cf6cf Compare June 4, 2026 16:40
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from a6b6208 to 5106898 Compare June 4, 2026 17:44
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 02cf6cf to 079fcc5 Compare June 4, 2026 17:44
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from 5106898 to c253e28 Compare June 5, 2026 03:22
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from 079fcc5 to fa450e6 Compare June 5, 2026 03:22
Copy link
Copy Markdown
Collaborator

@jrusso1020 jrusso1020 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pure-additive UI components (+513/-0, 4 files). Diamond markers, navigation arrows, context menu — straightforward composition of existing Studio primitives. Three angles worth verifying before merge:

1. Accessibility

Diamond markers are visual-only by default. For keyboard users, the ◀ ◆ ▶ navigation needs:

  • Focusable elements (tabindex="0" or buttons).
  • aria-label / aria-current on each diamond reflecting position (e.g., "Keyframe at 50%, x=100, opacity=1").
  • Arrow-key handling within KeyframeNavigation to seek prev/next.

The PR body says "Click diamond → seek + select" — that's mouse-only. Confirm keyboard parity exists or is a tracked follow-up.

2. Context menu — native conflict + escape behavior

Two checks for KeyframeDiamondContextMenu:

  • Native browser context menu suppressed: event.preventDefault() on the oncontextmenu handler. Without it, both the custom menu and the native menu render.
  • Escape / outside-click dismissal: standard expectation. Verify in the test plan.

3. Diamond hit-tolerance

If diamonds are small (timeline is dense), click-tolerance matters. hf#1188 in this stack tunes this to "0.5% vs 0.05%" — meaning the original tolerance was very tight. Worth verifying this PR's initial tolerance value is sane on first land, or flagging in the description that #1188 retroactively widens it.

Architecture is fine. Pure additive, no risk to existing flows. The above are all UX-polish concerns appropriate for a "review with eyes, not strict gates" pass.

Review by Jerrai (hyperframes specialist)

@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3a-runtime-bridge branch from c253e28 to aa99131 Compare June 5, 2026 05:55
@miguel-heygen miguel-heygen force-pushed the feat/keyframes-3b-ui-components branch from fa450e6 to 5fda83c Compare June 5, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants