Releases: novincode/motionkit
Releases · novincode/motionkit
MotionKit v3.0.0
Major release — MotionKit goes Pro. This is a breaking milestone: MotionKit is now a freemium plugin with a built-in Pro tier, alongside two flagship workflow upgrades — frame-by-frame previews directly inside the timeline, and a rebuilt, text-aware transform & preset system. Because licensing, entitlements, and the transform pipeline changed substantially, all previous releases are superseded — please download v3.0.0 fresh.
🚀 Highlights
- MotionKit Pro — Optional Pro tier with a headless license engine (Gumroad checkout + own licensing API), three plans (Solo / Duo / Team), per-user seats, and an in-plugin upgrade flow. The full editor stays free; Pro unlocks higher-tier rendering.
- Frame-by-frame previews inside the timeline — FBF child frames now render as an accurate, cached filmstrip right inside their parent clip (Procreate Dreams style), laid out by each frame's real duration.
- Text, done right — Text transforms no longer drift or jump; scale animates the glyphs honestly via font-size scaling; and the preset library is now text-aware, surfacing text presets on top when a text layer is selected.
✨ Features
MotionKit Pro & licensing
- Headless license engine — License keys are validated against the MotionKit licensing API; entitlements are resolved and cached locally, so the editor works offline once activated.
- Effortless delivery via Gumroad — Purchases use Gumroad-generated license keys; activation is a paste-and-go flow with Turnstile-gated lookup-by-email for recovering a lost key.
- Three plans with per-user seats — Solo, Duo, and Team tiers, each with its own seat allowance; seats self-heal and a "free seat" admin action durably releases an activation.
- License admin console — Internal console to inspect plans, seats, and activations, flag re-sent sale notifications, and manage the seat map.
- Pro render dialog & export limits — Free tier renders within generous limits; an upgrade dialog and export-limit dialog explain what Pro unlocks, with a clean, theme-native, scrollable pricing card.
- Community dialog — In-plugin entry point to the MotionKit community and support links.
Frame-by-frame in the timeline
- Accurate cached filmstrip — Each FBF clip shows its child frames as thumbnails, positioned by exact frame timing (
frames × 1000/fps) so the preview lines up with the canvas to the frame. Thumbnails come from the shared cache used by FBF mode and load once per timeline — no CPU thrash, no needless revalidation. - Per-frame duration handles — Drag the handles between frames inside a parent clip to change each frame's duration in whole frames (1f / 2f / 3f); changes persist back to the child. Whole-clip drag still works.
- Resize the last frame — The last frame gets its own duration handle just inside the clip's right edge, while the edge itself still trims / un-trims the clip (Ctrl/Cmd-drag scales the whole clip's speed).
- Resizable FBF rows — Taller default rows with a drag-to-resize bottom edge, per layer, and aspect-correct thumbnails (no distortion). Left and right panels stay row-aligned.
- Per-clip end behavior — Choose whether an FBF clip hides or holds its last frame after it ends (default: hide), from the clip context menu.
Timeline & toolbar polish
- Draggable zoom % — The zoom field is now drag-to-zoom; click resets to 100%.
- Playhead snapping to clips — The playhead snaps to clip start/end (both timeline and FBF), and the playhead bar is full-height without blocking preset drops.
- Text-aware preset library — Presets carry a
targetType; text-only presets are filtered to text layers and pinned to the top of the library when a text layer is selected.
🐛 Fixes
- Text transforms no longer drift or jump — Width and content changes are now math-correct: non-keyframed axes pivot around the layer's current center, and a short reflow grace window prevents the off-canvas drift / "content↔width" jump introduced while iterating on text.
- Honest text scaling — Scale presets (Pulse / Zoom / Pop) on text now scale the glyphs via font-size scaling instead of stretching the box, keeping
node.widthhonest end-to-end. - Scrubbing updates nested FBF/child animations — Mouse scrub and arrow-key stepping now update FBF child previews, not just playback. Frame resolution always prefers the active timeline frame.
- Last frame is frame-accurate — Fixed the last FBF frame previewing "late"; the filmstrip and the canvas now use the same exact frame math.
- Thumbnails reliably render — Exporting a clip thumbnail temporarily un-hides hidden ancestors so the real frame is captured, fixing blank/empty previews in both the filmstrip and FBF mode caused by visibility toggling.
- Self-host fonts & separate upgrade/community flows — Fixed the license delivery flow (email lookup, proper activation), self-hosted the UI font, and separated the upgrade and community paths.
- Pricing & seats — Seats now show for all plans; re-sent sale notifications are flagged; the frame gallery stays top-level with animated frames.
♻️ Refactor
- Entitlement & tier model — New
entitlementStore,tierConfig, andlicenseTypescentralize plans, seats, and entitlement resolution; license checks go through a singlelicenseService+pluginStoragelayer. - Range-selection icons restored — WorkArea / Start / End icons reverted to their original full-height design through the shared
Svgprimitive.
📦 Installation
- Download
motionkit.zipfrom the assets below - Extract the ZIP file
- In Figma Desktop → Plugins → Development → Import plugin from manifest...
- Select the
manifest.jsonfile from the extracted folder - Open any Figma file → Plugins → Development → MotionKit
Note: MotionKit requires Figma Desktop app for development mode.