text-to-lottie

diffusionstudio/lottie · Agent Skill

Turn text prompts into polished Lottie animations for motion-heavy UI work.

Jump to install ↓

Overview

PublisherdiffusionstudioOrganization
Repositorydiffusionstudio/lottie ↗
Skill foldertext-to-lottie
Stars5,632
Forks299
Bundled files23
LicenseMIT
Last updatedJuly 25, 2026
LinksSkill source ↗ · Repository ↗

Mozgi check

What we found in the skill files. Details come with a subscription.

Security
low risk · no obvious risks found — the full report shows the details
Compatibility
instructions only — works with most agents
Similar skills
58 similar skills found
Also with subscription

Installation

A skill is a folder with a SKILL.md file. Pick your agent and run the commands in a terminal (macOS, Linux or Git Bash on Windows) from your project root.

Copy the prompt into Claude, Codex or another assistant: it will review the skill and install it for you.

Install the “text-to-lottie” skill from mozgi.io (https://mozgi.io/skills/diffusionstudio-text-to-lottie/) for me.

1. Download the archive: https://mozgi.io/skills/diffusionstudio-text-to-lottie/download
   If it fails, take the skill folder from the source: https://github.com/diffusionstudio/lottie/tree/main/skills/text-to-lottie
2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me.
3. Put the “text-to-lottie” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.).
4. Make sure <skills folder>/text-to-lottie/SKILL.md exists.
5. Briefly tell me what this skill does and offer to try it on my task.

If you cannot do a step yourself, tell me what to click or type.

Review the source files

23 files Download Zip

Read SKILL.md and any companion files before deciding whether to install. Click a file to preview it.

SKILL.md contents

Original author text · read-only

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.

Operating Model

  • Use the official player project and verify in Skia Skottie. Do not hand-roll a

custom viewer or switch renderers for verification.

  • Keep the skill portable across Agent Skills clients. Avoid host-specific

commands, command modes, or orchestration conventions in skill instructions.

  • Prefer fewer questions and stronger defaults. Ask only when a decision changes

the output materially, such as transparent vs full-frame background, brand

constraints, target format, or supplied source assets.

  • Prioritize clean, intentional, professional motion over merely satisfying the

literal prompt.

Reference Loading

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.

Workflow

1. Route the task using the table above. Read only the relevant references that

exist.

2. Locate the official player project and resolve the target scene using the

target precedence below. Before editing, verify the resolved path is

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.

3. Decide the background policy before authoring.

4. Write or update public/projects/<project>/<scene-N>/lottie.json and, when

useful, controls.json.

5. Validate JSON, run or reuse the dev server, inspect exact frames with

?frame=N, and fix render/design/motion issues before finishing.

Inline Rules

Design Defaults (always apply)

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.

  • Premium means subtract, not add. When a prompt says premium, clean, minimal,

modern, sleek, or sophisticated, default to restraint: remove chrome before

adding it. Premium is carried by scale, weight, brightness, spacing, and

timing, never by cards, borders, dividers, shadows, glow, or stacked tints.

  • Chrome/container budget is 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.

  • One surface tone. Use one background tone. Do not stack two near-black or two

near-white tints to fake a "surface"; it reads muddy. If a card surface must

differ from the background, make it one deliberate step with a clear purpose.

  • One divider treatment, one color. If dividers are truly needed, use one weight

and one color for all of them, title rule and column rules included. Never use

slightly different colors or weights per divider.

Scene Rules

  • Scene files live at public/projects/<project>/<scene-N>/lottie.json.
  • Resolve target scenes by authority: an explicit file path wins; a browser URL

route like /<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.

  • Full-frame standalone compositions should include a visible background layer

with a bgColor slot and controls.json entry.

  • Transparent-by-default outputs include logos, icons, loaders, overlays, lower

thirds, and SVG-derived assets unless the user asks for a background.

  • Include top-level v, fr, ip, op, w, h, nm, assets, and

layers. Treat op as exclusive.

  • Use purposeful easing and staging. Avoid defaulting to linear motion. Derive

easing from the behavior-based anchors in motion-taste.md (chosen by motion

behavior, focal element strongest); do not fall back to one uniform ease for

every layer.

  • Use slots for important editable values and add controls.json labels/ranges

when they improve the properties panel.

  • For SVG input, preserve the viewBox, normalize styling, watch fill rules and

intersections, and verify the result in Skottie.

  • Native Lottie text/text slots (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.

Verification

Before finishing:

1. Confirm the intended target file path is

public/projects/<project>/<scene-N>/lottie.json.

2. Validate JSON:

```bash

node -e "JSON.parse(require('fs').readFileSync('public/projects/<project>/<scene-N>/lottie.json','utf8'))"

```

3. Confirm the official player is running and the scene appears in

GET /__context.

4. Inspect pinned frames in the browser. For new scenes, check frame 0,

midpoint, and op - 1.

5. Confirm the background policy matches the use case.

6. Check for blank canvas, missing assets, unstyled shapes, wrong layer order,

bad easing, awkward timing, cropped content, text overflow, and visible SVG

artifacts.

7. Finish only when the animation renders cleanly and feels intentional.

Maintenance Evals

Do not read eval files during normal animation work. Use them only when testing

or changing this skill:

  • evals/trigger-prompts.json
  • evals/routing-prompts.json
  • evals/reference-loading-prompts.json
  • evals/output-rubric.md

Frequently asked questions

What does the text-to-lottie skill do?

Turn text prompts into polished Lottie animations for motion-heavy UI work.

How do I install text-to-lottie?

Open the “Installation” block on this page and pick your agent — Claude Code, Codex, Cursor or Gemini CLI — for ready-made commands that copy the skill folder to the right place. Or copy the prompt from the “Via assistant” tab and let the assistant review and install the skill.

Which AI models work with text-to-lottie?

Skills are plain Markdown instructions (the Agent Skills format), so text-to-lottie works with any agent that reads SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and more. The model loads the instructions only when a task matches the skill's description.

Is text-to-lottie free?

The skill is published openly by diffusionstudio under the MIT license. The skill itself costs nothing — you only pay your AI provider for the tokens you use.

Is it safe to install skills?

A skill is a set of instructions your agent will follow, so read SKILL.md and its companion files before installing. Scripts in the skill folder only run if your agent runs them — keep an eye on what it does and do not grant unnecessary permissions.

How is a skill different from an MCP server or a plugin?

An MCP server or plugin gives the model new tools — code that runs and returns a result. A skill gives it knowledge and process: how to approach a task, which steps to follow and what good output looks like. It needs no server or API key.

Related skills

All skills →
text-to-lottie A tool for creating, editing, and debugging Lottie/Bodymovin JSON animations for the Skia Skottie player. Ideal for UI microinteractions, icons, charts, logos, and professional visual effects with scene rendering support. diffusionstudio5.6k review-animations Review animation quality, timing, and motion consistency with a production-critical eye. emilkowalski49.9k improve-animations Survey a codebase's animation and motion code as a senior motion advisor, then produce prioritized audit and self-contained implementation plans. Read-only on source code - it plans improvements, it does not apply them. Use when the user asks to improve animations, audit motion, make an app feel better, or wants a roadmap of animation fixes rather than a review of a single diff. emilkowalski49.9k find-animation-opportunities Find high-conviction opportunities for useful interface motion while rejecting animation that adds noise or slows users down. emilkowalski49.9k animate Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations. emilkowalski49.9k animation-vocabulary Sharpen motion language so animation choices feel deliberate and consistent. emilkowalski49.9k