Agent Native

text-to-lottie

Creates and edits Lottie/Bodymovin JSON animations for the Skia Skottie player, handling text reveals, SVG animations, logos, loaders, UI interactions…

by diffusionstudioCommunityNot reviewed

Community author

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
License
MIT (permissive)
Pin
3c72912pinned Oct 9, 2026
Context cost
about 2,400 tokenswhen the skill loads
GitHub stars
5,550on diffusionstudio/lottie
Scripts
None found

What it does

“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.”
The author's description, from SKILL.md

Generated summary from the skill's own text

Creates and edits Lottie/Bodymovin JSON animations for the Skia Skottie player, handling text reveals, SVG animations, logos, loaders, UI interactions, diagrams, data visualizations, and motion effects. The skill routes tasks to specialized recipe references, validates output in the official player, and applies design defaults for professional, restrained motion work.

When to use it

  • Animate logos, icons, loaders, or state feedback animations
  • Create title sequences, typography reveals, or lower-third overlays
  • Build UI microinteractions, diagrams, or data-driven visualizations
  • Convert SVG files to Lottie with camera motion or visual effects

When not to

  • Need a custom viewer outside the official Skia Skottie player
  • Requiring multiple formats beyond Lottie JSON output

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add diffusionstudio/lottie --skill text-to-lottie

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install diffusionstudio/lottie text-to-lottie@3c72912fad543897f90045ed4d355813837927fc

Installs the commit we checked (3c72912).

Copy by hand

Download the folder at 3c72912 and put it in .claude/skills/text-to-lottie for Claude Code and in .agents/skills/text-to-lottie for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 3c72912

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "text-to-lottie" by diffusionstudio.

Source, pinned to commit 3c72912fad543897f90045ed4d355813837927fc:
https://github.com/diffusionstudio/lottie/tree/3c72912fad543897f90045ed4d355813837927fc/skills/text-to-lottie

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/text-to-lottie/ for Claude Code and .agents/skills/text-to-lottie/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/diffusionstudio/text-to-lottie

SKILL.md at the pin

---
name: text-to-lottie
description: 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.
---

# 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`

From diffusionstudio/lottie at 3c72912, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at 3c72912

Files

23 files, 143 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 3c72912
  • all-images-ai-automation

    This skill automates All Images AI operations by discovering and executing tools through Composio's All Images AI toolkit via Rube MCP.

    by ComposioOfficial publisher

    Agents not labelled yet · about 710 tokens · pinned 6 days ago

  • remotion-best-practices

    This skill routes the agent through Remotion's specialized knowledge bases for video creation, editing, and deployment.

    by RemotionOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 920 tokens · pinned 6 days ago

  • remotion-best-practices

    This skill routes the agent to specialized Remotion sub-skills based on the user's task, covering video creation, project setup, React markup, maps…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago

  • remotion-captions

    This skill enables video caption workflows including transcribing audio to generate captions, displaying captions in videos, and importing captions from SRT…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 220 tokens · pinned 6 days ago

  • remotion-captions

    This skill enables the agent to work with captions in Remotion videos by transcribing audio to generate captions, displaying them in videos, and importing…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 270 tokens · pinned 6 days ago

  • remotion-create

    This skill scaffolds a new Remotion video project, opens the browser-based Studio for live preview, and guides composition development using React markup.

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 680 tokens · pinned 6 days ago

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use