# Expand a context-menu row into an inline submenu, walk the highlight down, then cut to the share sheet Manual DaVinci Resolve / Fusion construction guide generated from the recipe. It is not a tested .drp. The accompanying Remotion project (recipe.json) is the executable definition; the numbers below are copied from it. Neither construction establishes source fidelity: this is an original vector approximation of an inspected editing moment. ## Source and clock Reference: OpenAI's "Build and test iOS apps without leaving Codex" (u9zLlcsCDiQ), published 2026-06-15. Source interval [745, 825) on the 24000/1001 fps master: 80 frames, 3.336667 s. Local frame 0 = source frame 745. Create a 1920x1080 progressive timeline at 24000/1001 fps and a Fusion composition exactly 80 frames long. Keep integer frames; do not round the frame rate. Background field: #f6f6f6. Export silent H.264 yuv420p to match the intended playback container. ## Observation Inside a phone simulator on the right, a post's long-press context menu is open (Quote, Share ›, View in Browser, Copy Text…) with the hover highlight on 'Share' (f0–27). At ~f28 the Share row expands in place: its chevron turns down, 'Quote' dims, three sub-rows (Share Post, Share Link, Share as Image) are inserted and every row below steps downward. The highlight walks to 'Share as Image' by ~f45 and the pointer clicks at ~f55. At ~f58 the screen hard-cuts to a 'Share post as image' sheet with a Done button and a preview card. The left pane's agent log stays static. ## Mechanism An accordion submenu: a menu row expands inline and pushes later rows down as a step, the hover highlight walks to the new child row, and a click hard-cuts to the resulting sheet. ## Phases (local frames) - 0: Context menu open, highlight on Share - 28: Share expands inline; rows below step down - 45: Highlight moves to the child row - 55: Click - 58: Hard cut to share sheet - 79: Sheet holds ## Layer inventory (absolute 1920x1080 top-left pixels, back to front) - left-pane [group] at (0, 0) size 1140x1080 - log [text] at (80, 120) size 980x0 text "Working for 12s / Check current preview / The browser session is still alive; I hit a reused scratch variable in the automation, so I'm rerunning that check with a fresh name. / Tap overflow / The context menu is open. The share item has a submenu indicator, so I'm opening that next." 15px weight 400 #4a4a4a - composer [rect] at (80, 940) size 980x80 radius 18 fill #ffffff stroke #e2e2e2 1px - sim-header [rect] at (1180, 20) size 540x60 radius 14 fill #2b2b2e - sim-title [text] at (1204, 30) text "Phone 17 Pro" 16px weight 600 #ffffff - sim-os [text] at (1204, 52) text "OS 26.5" 12px weight 400 #9a9a9a - phone [group] at (1180, 90) size 540x960 - bezel [rect] at (1180, 90) size 540x960 radius 60 fill #111111 - screen [group] at (1194, 104) size 512x932 visible [0, 58) - screen-bg [rect] at (1194, 104) size 512x932 radius 48 fill #ffffff - post-0 [group] at (1194, 194) size 512x150 - pav-0 [ellipse] at (1218, 214) size 40x40 fill #d8d8d8 - pl1-0 [rect] at (1274, 216) size 300x12 radius 4 fill #dddddd - pl2-0 [rect] at (1274, 240) size 380x10 radius 4 fill #e8e8e8 - pl3-0 [rect] at (1274, 258) size 340x10 radius 4 fill #e8e8e8 - post-1 [group] at (1194, 344) size 512x150 - pav-1 [ellipse] at (1218, 364) size 40x40 fill #d8d8d8 - pl1-1 [rect] at (1274, 366) size 300x12 radius 4 fill #dddddd - pl2-1 [rect] at (1274, 390) size 380x10 radius 4 fill #e8e8e8 - pl3-1 [rect] at (1274, 408) size 340x10 radius 4 fill #e8e8e8 - post-2 [group] at (1194, 494) size 512x150 - pav-2 [ellipse] at (1218, 514) size 40x40 fill #d8d8d8 - pl1-2 [rect] at (1274, 516) size 300x12 radius 4 fill #dddddd - pl2-2 [rect] at (1274, 540) size 380x10 radius 4 fill #e8e8e8 - pl3-2 [rect] at (1274, 558) size 340x10 radius 4 fill #e8e8e8 - post-3 [group] at (1194, 644) size 512x150 - pav-3 [ellipse] at (1218, 664) size 40x40 fill #d8d8d8 - pl1-3 [rect] at (1274, 666) size 300x12 radius 4 fill #dddddd - pl2-3 [rect] at (1274, 690) size 380x10 radius 4 fill #e8e8e8 - pl3-3 [rect] at (1274, 708) size 340x10 radius 4 fill #e8e8e8 - dim [rect] at (1194, 104) size 512x932 radius 48 fill #000000 - menu [group] at (1264, 404) size 380x372 - menu-bg [rect] at (1264, 404) size 380x372 radius 18 fill #ffffff keyframes h: f27=372, f28=504 - hover [rect] at (1264, 462) size 380x44 radius 10 fill #f0f0f0 keyframes y: f0=58, f44=58, f45=234 - it-0 [text] at (1286, 474) text "Quote" 19px weight 500 #111111 keyframes color: f27=#111111, f28=#b0b0b0 - it-1 [text] at (1286, 518) text "Share" 19px weight 500 #111111 - chev [text] at (1600, 514) text "›" 24px weight 400 #666666 keyframes rotate: f27=0, f28=90 - sub [group] at (1264, 550) size 380x132 visible [28, 80) - sub-0 [text] at (1312, 560) text "Share Post" 19px weight 500 #111111 - sub-1 [text] at (1312, 604) text "Share Link" 19px weight 500 #111111 - sub-2 [text] at (1312, 648) text "Share as Image" 19px weight 500 #111111 - sub-ico-0 [rect] at (1286, 564) size 14x14 radius 3 fill #8a8a8a - sub-ico-1 [rect] at (1286, 608) size 14x14 radius 3 fill #8a8a8a - sub-ico-2 [rect] at (1286, 652) size 14x14 radius 3 fill #8a8a8a - rest [group] at (1264, 550) size 380x220 keyframes y: f27=146, f28=278 - it-2 [text] at (1286, 562) text "View in Browser" 19px weight 500 #111111 - it-3 [text] at (1286, 606) text "Copy Text" 19px weight 500 #111111 - it-4 [text] at (1286, 650) text "Select Text" 19px weight 500 #111111 - it-5 [text] at (1286, 694) text "Copy Link" 19px weight 500 #111111 - it-6 [text] at (1286, 738) text "Translate" 19px weight 500 #111111 - sheet [group] at (1194, 104) size 512x932 visible [58, 80) - sheet-bg [rect] at (1194, 104) size 512x932 radius 48 fill #f2f2f4 - grabber [rect] at (1430, 118) size 40x5 radius 3 fill #c8c8cc - sheet-title [text] at (1194, 148) size 512x0 text "Share post as image" 20px weight 600 #111111 - done-bg [rect] at (1604, 140) size 80x36 radius 18 fill #ffffff - done [text] at (1604, 148) size 80x0 text "Done" 16px weight 600 #111111 - share-row [rect] at (1218, 214) size 464x56 radius 14 fill #ffffff - share-row-t [text] at (1264, 230) text "Share Image" 18px weight 500 #111111 - share-ico [rect] at (1232, 230) size 18x22 radius 3 fill #333333 - card [group] at (1218, 304) size 464x180 - card-bg [rect] at (1218, 304) size 464x180 radius 18 fill #ffffff stroke #e3e3e3 1px - cav [ellipse] at (1242, 328) size 44x44 fill #d8d8d8 - cauthor [text] at (1302, 330) text "Riley Chen" 18px weight 600 #111111 - cpost [text] at (1302, 360) text "Here's to the builders. The tinkerers. / The ones who ship on Fridays." 16px weight 400 #333333 - pointer [cursor] at (1500, 420) clicks at [28, 55] keyframes ty: f30=0, f44=176 (inOut) ## Construction steps 1. Timeline 1920x1080 at 23.976 fps; Fusion comp 80 frames. Local 0 = master frame 745. 2. Left pane: static 15px agent log on #f6f6f6 plus an empty composer; it never changes. 3. Phone: 540x960 black bezel (radius 60) with a 512x932 white screen masked to radius 48; four placeholder post rows and an 18% black dim under the menu. 4. Menu: 380px white card, 44px rows, hover plate #f0f0f0. At frame 28 (a single-frame step, no ease): card height 372 to 504, Quote colour to #b0b0b0, chevron rotate 0 to 90, insert the three child rows at y 146, and move the remaining rows group from y 146 to y 278. 5. Highlight: hold on Share until frame 44, step to the child row (y 234) at frame 45; pointer follows with ease-in-out 30–44 and click rings at 28 and 55. 6. Hard cut at frame 58: swap the screen group for the sheet group (title, Done pill, share row, preview card). 7. Easy mistake: animating the accordion with easing; the source inserts the sub-rows in one frame. ## Content variants Default copy: - m0: Quote - m1: Share - m2: View in Browser - m3: Copy Text - m4: Select Text - m5: Copy Link - m6: Translate - s0: Share Post - s1: Share Link - s2: Share as Image - sheetTitle: Share post as image - done: Done - shareRow: Share Image - author: Riley Chen - post: Here's to the builders. The tinkerers. / The ones who ship on Fridays. - device: Phone 17 Pro - os: OS 26.5 - log: Working for 12s / Check current preview / The browser session is still alive; I hit a reused scratch variable in the automation, so I'm rerunning that check with a fresh name. / Tap overflow / The context menu is open. The share item has a submenu indicator, so I'm opening that next. Adaptation changes: - m0: Reply - m1: Forward - m2: Open Thread - m3: Copy - m4: Pin - m5: Mute - m6: Report - s0: Forward to Chat - s1: Forward as Link - s2: Forward as Image - sheetTitle: Forward as image - shareRow: Save Image - author: Morgan Lee - post: Shipping notes, week 31: fewer meetings, / more previews, one very tired build server. ## Limits Easing names map to Fusion spline shapes: linear = linear, in/out/inOut = ease curves on the same frames, hold = step, spring/overshoot = slight overshoot past the target before settling. Text reveal frames give the first and last unit; distribute characters/words evenly between them. Cursor click rings last 14 frames. Vector illustration is an approximation of layout and motion, not the product UI or recovered production assets.