@blinn-motion/dom
Full-fidelity CSS: nested divs, gradients, SVG vector paths, masks and shaders.
@blinn-motion/canvas
A pure-JS 2D canvas painter — one immediate-mode draw per frame, zero DOM nodes.
@blinn-motion/react
A declarative
<BlinnMotion /> component with a swappable renderer.@blinn-motion/react-native
The same timing on native
<View> / <Text> — no native module.Same control surface
Every adapter exposes the same playback API, because they all build on the core’sTicker:
| Method | Does |
|---|---|
play() / pause() / toggle() | start, stop, flip playback |
seek(t) | jump to t seconds |
seekFraction(f) | jump to 0..1 of the duration |
loop | get/set looping |
Fidelity at a glance
| Feature | DOM | Canvas | React | React Native |
|---|---|---|---|---|
| Transforms & opacity | ✅ | ✅ | ✅ | ✅ |
| Gradients | ✅ | ✅ | ✅ | ⚠️ |
| SVG vector paths + arrowheads | ✅ | ⚠️ | ✅ | ❌ |
| Masks / clip shapes | ✅ | ⚠️ | ✅ | ⚠️ |
| Procedural shaders | ✅ | ⚠️ | ✅ | ❌ |
The DOM adapter is the fidelity reference — it implements the widest set of paint features.
Canvas and React Native trade some of the rarer effects for portability.