Lottie Motion Builder
Use Lottie for small deployable motion assets, not for full cinematic motion-design work.
Good Fits
- SVG path reveal
- logo or wordmark animation
- loader, empty-state, success-state, and transition animation
- small branded motion element for web, mobile, or app onboarding
Do Not Use It For
- long character animation
- complex scene choreography
- vague "make it cool" requests with no asset grounding
- motion work that does not need to ship as Lottie JSON
Required Inputs
Before building, lock these down:
- source asset: SVG, screenshot, logo, icon, or concrete visual reference;
- target surface: landing page, app UI, loader, hero accent, onboarding, etc.;
- duration and loop behavior;
- target runtime: web, React Native, iOS, Android, or generic Lottie JSON;
- editable controls needed at runtime: background, color, size, stroke, speed, etc.
If the user gives only a vague motion request, ask for or derive one concrete asset first.
Harness Rule
Use the external diffusionstudio/lottie harness rather than inventing a custom player.
- Read references/external-harness.md before setup.
- Bootstrap or refresh the harness with
scripts/bootstrap_harness.sh.
- Keep generated animation files inside the harness project while iterating.
- Treat the upstream harness as the rendering contract for preview and slot behavior.
Workflow
- Confirm the asset, target surface, duration, loop mode, and runtime target.
- Bootstrap the external harness if needed.
- Generate or edit
public/lottie.json in the harness project.
- Expose at least one background-color control and any explicitly requested controls.
- Run the local preview and visually verify the result.
- Run
motion-review-gate when the asset is meant for a product UI surface rather than a throwaway demo.
- Export the usable artifact set and summarize how to embed it.
Output Contract
Produce these artifacts when the user asks for a usable result:
animation.json or the final lottie.json;
- one visual verification artifact: screenshot, gif, or short mp4;
- a short embed note for the target runtime;
- any runtime-editable controls used by the animation.
Verification
- The JSON parses in the harness.
- The motion is visible and not blank.
- Loop points are intentional.
- Background control exists.
- Dimensions, duration, and FPS match the request.
- The asset is small enough for the intended product surface.
- Product-surface motion has passed
motion-review-gate or the exception is stated.
Reporting
In the final report, include:
- source asset used;
- output path;
- preview path or URL;
- runtime target;
- controls exposed;
- known limitations.
1---2name: lottie-motion-builder3description: Build or refine small production-ready Lottie animations from SVGs, logos, UI states, loaders, and branded motion assets with a local preview harness, explicit inputs, and output verification. Use when the user asks for Lottie, JSON animation, SVG reveal animation, logo animation, or lightweight motion assets for product surfaces.4license: MIT5---67# Lottie Motion Builder89Use Lottie for small deployable motion assets, not for full cinematic motion-design work.1011## Good Fits1213- SVG path reveal14- logo or wordmark animation15- loader, empty-state, success-state, and transition animation16- small branded motion element for web, mobile, or app onboarding1718## Do Not Use It For1920- long character animation21- complex scene choreography22- vague "make it cool" requests with no asset grounding23- motion work that does not need to ship as Lottie JSON2425## Required Inputs2627Before building, lock these down:2829- source asset: SVG, screenshot, logo, icon, or concrete visual reference;30- target surface: landing page, app UI, loader, hero accent, onboarding, etc.;31- duration and loop behavior;32- target runtime: web, React Native, iOS, Android, or generic Lottie JSON;33- editable controls needed at runtime: background, color, size, stroke, speed, etc.3435If the user gives only a vague motion request, ask for or derive one concrete asset first.3637## Harness Rule3839Use the external diffusionstudio/lottie harness rather than inventing a custom player.4041- Read [references/external-harness.md](references/external-harness.md) before setup.42- Bootstrap or refresh the harness with `scripts/bootstrap_harness.sh`.43- Keep generated animation files inside the harness project while iterating.44- Treat the upstream harness as the rendering contract for preview and slot behavior.4546## Workflow47481. Confirm the asset, target surface, duration, loop mode, and runtime target.492. Bootstrap the external harness if needed.503. Generate or edit `public/lottie.json` in the harness project.514. Expose at least one background-color control and any explicitly requested controls.525. Run the local preview and visually verify the result.536. Run `motion-review-gate` when the asset is meant for a product UI surface rather than a throwaway demo.547. Export the usable artifact set and summarize how to embed it.5556## Output Contract5758Produce these artifacts when the user asks for a usable result:5960- `animation.json` or the final `lottie.json`;61- one visual verification artifact: screenshot, gif, or short mp4;62- a short embed note for the target runtime;63- any runtime-editable controls used by the animation.6465## Verification6667- The JSON parses in the harness.68- The motion is visible and not blank.69- Loop points are intentional.70- Background control exists.71- Dimensions, duration, and FPS match the request.72- The asset is small enough for the intended product surface.73- Product-surface motion has passed `motion-review-gate` or the exception is stated.7475## Reporting7677In the final report, include:7879- source asset used;80- output path;81- preview path or URL;82- runtime target;83- controls exposed;84- known limitations.