Limitations
What this alpha does not do, and where each limitation is documented.
MotionPR is in alpha (0.1.0-alpha). Everything below is a known limitation of this release, not
a hidden one.
Browsers and platforms
- Chromium only. Firefox and WebKit are not supported yet (
browser.nameaccepts onlychromium). - Verified on macOS and Linux CI. Windows paths are handled in code, but no CI job runs on Windows.
- Pixels depend on the platform. Visual comparison is a warning by default for this reason; capture baselines where CI runs (Baseline management).
What can be observed
- Motion drawn by your own
requestAnimationFrameloop with inline styles, on<canvas>or in WebGL, is not visible without a custom adapter. - Scroll is never replayed. Scroll motion is recorded live; filmstrip frames of scroll windows show the final scroll position, and the scroll graph is the source of truth.
- Scroll-linked tween values (GSAP ScrollTrigger) are not sampled. Their progress is compared
against scroll position, so a changed
start/endis found but a changed parallax distance alone is not. - CSS scroll-driven animations are recorded as metadata only.
- Nested scroll containers: native scroll motion is recorded for the document scroller only.
Containers scrolled by Lenis (
wrapper) are recorded through the Lenis adapter but not covered by browser tests, and steps do not drive them. - Shadow DOM: animations inside shadow roots are discovered, but selectors do not pierce shadow roots, so replayed shadow elements cannot always be re-found. Not covered by tests yet.
Engines
- GSAP: Draggable, Observer and Flip are not observed;
new gsap.core.Timeline()needstrack(); ScrollTrigger is metadata plus live progress. See GSAP. - Anime.js: v3 is not supported;
composition: "blend"is metadata only; per-keyframe timing ofkeyframesis not reconstructed;createTimer(),createAnimatable(),createDraggable()andonScroll()are not instrumented. See Anime.js. - Lenis:
infinite: truepositions wrap and distance metrics assume no wrap; touch scrolling is recorded but not generated by steps. See Lenis.
Format and API
- The capture format may still change between minor versions; older captures are migrated when they are read. Files written by a newer MotionPR are rejected with an actionable error.
- The adapter protocol (
PROTOCOL_VERSION = 1) may change before 1.0.
The roadmap lists what is planned.