Skip to content

Add unframer video integration - #6

Draft
remorses wants to merge 2 commits into
mainfrom
unframer-integration
Draft

Add unframer video integration#6
remorses wants to merge 2 commits into
mainfrom
unframer-integration

Conversation

@remorses

Copy link
Copy Markdown
Owner

Dedicated unframer timing bridge for egaki video exports. Unframer bundles its own Framer Motion runtime, so the existing motion-dom timing patch did not control its JSAnimation instances, manual clock, frame steps, or VisualElement flushes.

What it does:

  • Detects unframer projects in the Vite plugin and injects unframer-timing before user modules
  • Drives unframer manual time with time.set() and frameData.timestamp
  • Samples unframer JSAnimation instances from Remotion frame time
  • Flushes unframer frameSteps and VisualElement renders after sampling
  • Lets zero-duration Framer animations finish normally so instant style commits do not get stuck
  • Proxies external Framer image assets through the Vite dev server for origin-clean exports
  • Waits for image decode and fonts during browser exports

Replaces PR #5 which was accidentally fast-forward merged into main.

remorses added 2 commits June 27, 2026 17:58
The src/framer/ directory is generated by unframer and should not be
tracked in git. Added it to .gitignore and removed the tracked files
from the index.

Added AGENTS.md explaining that `pnpm framer` must be run before
`pnpm dev` or rendering, since the framer components are generated
and not committed.

Session: ses_106400b7dffeHRD2InC74S9BPi
Add a dedicated unframer timing bridge for egaki video exports. Unframer bundles its own Framer Motion runtime, so the existing motion-dom timing patch did not control its JSAnimation instances, manual clock, frame steps, or VisualElement flushes.

The integration now:

- detects unframer projects in the Vite plugin and injects unframer-timing before user modules
- drives unframer manual time with time.set() and frameData.timestamp
- samples unframer JSAnimation instances from Remotion frame time
- flushes unframer frameSteps and VisualElement renders after sampling
- lets zero-duration Framer animations finish normally so instant style commits do not get stuck
- proxies external Framer image assets through the Vite dev server to keep Canary HTML-in-canvas exports origin-clean
- waits for image decode and fonts during browser exports to reduce missing-image captures
- adds an unframer example project with 11 exported Framer sections

Validation:

- cd cli && pnpm build
- exported the unframer example in Chrome Canary using localhost
- confirmed later scenes no longer stay black

Session: ses_106475ccbffecRQvhA37YGdzCN
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.

1 participant