npx skills add ...
npx skills add diffusionstudio/lottie --skill text-to-lottie
Create, edit, or fix Lottie/Bodymovin JSON animations for the local Skia Skottie player. Use for text-to-Lottie, SVG/logo/type animation, loaders/icons, state feedback, UI microinteractions, lower thirds, diagrams, data/stat/chart animations, product promos, scene/camera motion, visual effects, scene edits, slots/controls, and Skottie debugging.
npx skills add diffusionstudio/lottie --skill text-to-lottie
Author production-ready Lottie JSON for the official local Skia Skottie player. The deliverable is a renderable scene in the player, not isolated JSON.
This SKILL.md is the thin control plane. Load only one-level references that
match the task. Do not open the whole reference library.
Always read references/player-contract.md before creating, editing, fixing, or
verifying a scene. If a routed reference is unavailable, continue using the
inline rules in this file.
| User intent | References to read when present |
|---|---|
| Any new/edit/fix Lottie scene | references/player-contract.md |
| JSON structure, keyframes, slots, shapes, assets | references/lottie-spec-map.md |
| Logo animation | references/recipe-logo.md, references/motion-taste.md, references/design-taste.md |
| Typography, title, quote, text reveal | references/recipe-typography.md, references/design-taste.md, references/motion-taste.md |
| Lower third, name tag, caption bar, overlay | references/recipe-lower-thirds.md, references/design-taste.md, references/motion-taste.md |
| Loader, icon, spinner, badge animation | references/recipe-loaders-icons.md, references/motion-taste.md |
| Success, error, warning, completion, empty state | references/recipe-loaders-icons.md, references/design-taste.md, references/motion-taste.md |
| UI microinteraction | references/recipe-ui-microinteractions.md, references/design-taste.md, references/motion-taste.md |
| Generic "animate this SVG" or SVG-to-Lottie | references/recipe-svg-animation.md, references/svg-compatibility.md, references/motion-taste.md |
| Camera follow, pan, zoom, parallax, scene motion | references/recipe-camera-scene-motion.md, references/design-taste.md, references/motion-taste.md |
| Diagram, technical line animation, callout, flow trace | references/recipe-diagram-technical.md, references/design-taste.md, references/motion-taste.md |
| Data, stats, KPIs, charts, metrics, dashboard figures | references/recipe-data-stats.md, references/design-taste.md, references/motion-taste.md |
| Product launch, feature announcement, social promo | references/recipe-product-promo.md, references/design-taste.md, references/motion-taste.md |
| Long text, multiple ideas, list/features/steps, timeline, before/after, problem/solution, quote+proof, recap/story, product walkthrough, multi-language variations, chapters, multi-beat sequence, episode, jump/hard cuts, transition grammar | references/chapterization-transition-grammar.md, references/motion-taste.md |
| Glow, glass, metal, gradient, fill, bubble/burst effects | references/recipe-visual-effects.md, references/design-taste.md, references/motion-taste.md |
| SVG input inside logo/icon/UI/lower-third work | The task recipe plus references/svg-compatibility.md |
| Starter brief or reusable project direction | references/recipe-starter-projects.md, references/design-taste.md, references/motion-taste.md |
| Any "premium", "clean", "minimal", "modern", "sleek", or "polished" qualifier | references/design-taste.md (restraint defaults), plus the routed recipe |
For mixed prompts, choose one primary recipe from the main deliverable, then add secondary references for source format or visual treatment. Examples: SVG logo with glow uses logo as primary plus SVG compatibility and visual effects; product launch with pan/zoom uses product promo plus camera scene motion; technical SVG diagram tracing uses diagram/technical plus SVG compatibility; kinetic title with glass sweep uses typography plus visual effects.
public/projects/<project>/<scene-N>/lottie.json; re-read that current file
immediately before overwriting because the UI can write slot edits back to
source.public/projects/<project>/<scene-N>/lottie.json and, when
useful, controls.json.?frame=N, and fix render/design/motion issues before finishing.These few defaults are non-negotiable and apply to every designed scene. Load
references/design-taste.md for the full reasoning, especially for any
"premium", "clean", "minimal", "modern", or "card" prompt.
0 by default. Do not add a framing card,
container, border, or divider unless it does a job that whitespace and
alignment cannot. Separate grids and columns with negative space and alignment
first, a single hairline second, and a filled or bordered card last and only
when explicitly warranted.public/projects/<project>/<scene-N>/lottie.json./<project>/<scene> wins next; an already-known project/scene for
the task wins next; otherwise create a new safe scene. Use /__context only
for discovery, verification, or playback state unless the task explicitly says
to edit what is currently on screen and no more specific target exists. Do not
let /__context.live override a known file path, URL, or project/scene.
Overwrite main-project/scene-1 only if it is still the untouched placeholder;
otherwise create a new scene.bgColor slot and controls.json entry.v, fr, ip, op, w, h, nm, assets, and
layers. Treat op as exclusive.motion-taste.md (chosen by motion
behavior, focal element strongest); do not fall back to one uniform ease for
every layer.controls.json labels/ranges
when they improve the properties panel.ty:5) render in this player when the scene
ships its font: drop a .ttf/.otf/.ttc next to lottie.json, declare it in
fonts.list with fFamily matching the font's embedded family name, and
reference it from text documents. The loader passes every scene font to Skottie.
Prefer native text; reach for vector/shape text only for deliberate path effects
(stroke-on, glyph morphs, handwriting). See the player-contract "Native Text"
reference.Before finishing:
Confirm the intended target file path is
public/projects/<project>/<scene-N>/lottie.json.
Validate JSON:
Confirm the official player is running and the scene appears in
GET /__context.
Inspect pinned frames in the browser. For new scenes, check frame 0,
midpoint, and op - 1.
Confirm the background policy matches the use case.
Check for blank canvas, missing assets, unstyled shapes, wrong layer order, bad easing, awkward timing, cropped content, text overflow, and visible SVG artifacts.
Finish only when the animation renders cleanly and feels intentional.
Do not read eval files during normal animation work. Use them only when testing or changing this skill:
evals/trigger-prompts.jsonevals/routing-prompts.jsonevals/reference-loading-prompts.jsonevals/output-rubric.md