text-to-lottie

작성자: diffusionstudio

사용자가 로컬 스키아 플레이어에서 렌더링되는 Lottie(Bodymovin) JSON 애니메이션을 제작합니다. 사용자가 Lottie 애니메이션을 생성, 편집, 수정하거나 "애니메이션"을 로드해 달라고 요청할 때 사용하세요.

npx skills add https://github.com/diffusionstudio/lottie --skill text-to-lottie

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 intentReferences to read when present
Any new/edit/fix Lottie scenereferences/player-contract.md
JSON structure, keyframes, slots, shapes, assetsreferences/lottie-spec-map.md
Logo animationreferences/recipe-logo.md, references/motion-taste.md, references/design-taste.md
Typography, title, quote, text revealreferences/recipe-typography.md, references/design-taste.md, references/motion-taste.md
Lower third, name tag, caption bar, overlayreferences/recipe-lower-thirds.md, references/design-taste.md, references/motion-taste.md
Loader, icon, spinner, badge animationreferences/recipe-loaders-icons.md, references/motion-taste.md
Success, error, warning, completion, empty statereferences/recipe-loaders-icons.md, references/design-taste.md, references/motion-taste.md
UI microinteractionreferences/recipe-ui-microinteractions.md, references/design-taste.md, references/motion-taste.md
Generic "animate this SVG" or SVG-to-Lottiereferences/recipe-svg-animation.md, references/svg-compatibility.md, references/motion-taste.md
Camera follow, pan, zoom, parallax, scene motionreferences/recipe-camera-scene-motion.md, references/design-taste.md, references/motion-taste.md
Diagram, technical line animation, callout, flow tracereferences/recipe-diagram-technical.md, references/design-taste.md, references/motion-taste.md
Data, stats, KPIs, charts, metrics, dashboard figuresreferences/recipe-data-stats.md, references/design-taste.md, references/motion-taste.md
Product launch, feature announcement, social promoreferences/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 grammarreferences/chapterization-transition-grammar.md, references/motion-taste.md
Glow, glass, metal, gradient, fill, bubble/burst effectsreferences/recipe-visual-effects.md, references/design-taste.md, references/motion-taste.md
SVG input inside logo/icon/UI/lower-third workThe task recipe plus references/svg-compatibility.md
Starter brief or reusable project directionreferences/recipe-starter-projects.md, references/design-taste.md, references/motion-taste.md
Any "premium", "clean", "minimal", "modern", "sleek", or "polished" qualifierreferences/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:

    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

관련 스킬

critique
google-gemini
저장소 스크립트와 GitHub Actions 워크플로우를 감사하고 수정하여 기술적 견고성과 보안을 보장하는 전문성.
troubleshooting-astro-deployments
astronomer
Astronomer 프로덕션 배포를 Astro CLI로 문제 해결합니다. 배포 문제 조사, 프로덕션 로그 확인, 실패 분석 시 사용하거나…
capture-api-response-test-fixture
vercel
API 응답 테스트 픽스처를 저장하고 관리하여 제공자 파싱 검증을 수행합니다. 픽스처는 제공자 패키지 내 __fixtures__ 하위 폴더에 기존 예제에 문서화된 명명 규칙을 따라 구성됩니다. generateText(원시 응답을 콘솔에 기록하고 픽스처에 복사)와 streamText(includeRawChunks 및 saveRawChunks 헬퍼를 사용하여 스트리밍 청크 캡처) 두 가지 테스트 패턴을 지원합니다. 크기 제약으로 인해 의미 보존 절단이 필요한 경우를 제외하고는 실제 제공자 응답을 저장하는 것을 권장합니다...
investigating-replay
posthog
사용자가 "이 세션에서 무슨 일이 있었나요?"라고 묻거나 조사할 녹음/세션 ID를 제공하면, 각 항목을 따로 요청하게 하지 않고 모든 관련 맥락을 병렬로 수집합니다.
encore-go-service
encoredev
Encore Go로 서비스를 구조화하세요.
nemo-relay-instrument-calls
nvidia
애플리케이션 도구 호출 및 LLM/제공자 호출을 NeMo Relay 범위와 관리형 실행 API로 래핑합니다.
ux-theming
microsoft
VS Code 테마 설정, 색상 토큰, 위젯 스타일, 포커스 표시기 및 고대비 테마 지원. 색상 등록 시, 테마로 위젯 스타일 지정 시 사용…
jetson-memory-audit
nvidia
Jetson DRAM/NvMap 사용량을 측정하고, 실시간 감사 데이터를 통해 메모리 회수 전후를 검증합니다.