lottie — community lottie, omi-landing, community, ide skills

v1.0.0

Sobre este Skill

Perfeito para Agentes Frontend que precisam de capacidades de animação leves e escaláveis com LottieFiles e Framer Motion. Add and manage Lottie animations in the website using LottieFiles. Auto-activates when user asks about animations, lottie, motion graphics, or animated icons. Trigger words: lottie, animation, animated icon, motion graphic, add animation, lottiefiles

BasedHardware BasedHardware
[1]
[1]
Updated: 3/7/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 9/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Quality floor passed for review
Review Score
9/11
Quality Score
51
Canonical Locale
en
Detected Body Locale
en

Perfeito para Agentes Frontend que precisam de capacidades de animação leves e escaláveis com LottieFiles e Framer Motion. Add and manage Lottie animations in the website using LottieFiles. Auto-activates when user asks about animations, lottie, motion graphics, or animated icons. Trigger words: lottie, animation, animated icon, motion graphic, add animation, lottiefiles

Por que usar essa habilidade

Habilita os agentes a adicionar animações Lottie leves e escaláveis a sites usando LottieFiles, juntamente com Framer Motion para animações pré-fabricadas complexas, suportando ambos os formatos de arquivo .json e .lottie.

Melhor para

Perfeito para Agentes Frontend que precisam de capacidades de animação leves e escaláveis com LottieFiles e Framer Motion.

Casos de Uso Práticos for lottie

Adicionar animações interativas a elementos do site
Criar animações pré-fabricadas complexas com Framer Motion
Integrar animações LottieFiles em aplicações React usando @lottiefiles/dotlottie-react

! Segurança e Limitações

  • Requer a instalação do pacote @lottiefiles/dotlottie-react
  • Depende de Framer Motion para animações complexas

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is lottie?

Perfeito para Agentes Frontend que precisam de capacidades de animação leves e escaláveis com LottieFiles e Framer Motion. Add and manage Lottie animations in the website using LottieFiles. Auto-activates when user asks about animations, lottie, motion graphics, or animated icons. Trigger words: lottie, animation, animated icon, motion graphic, add animation, lottiefiles

How do I install lottie?

Run the command: npx killer-skills add BasedHardware/omi-landing/lottie. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for lottie?

Key use cases include: Adicionar animações interativas a elementos do site, Criar animações pré-fabricadas complexas com Framer Motion, Integrar animações LottieFiles em aplicações React usando @lottiefiles/dotlottie-react.

Which IDEs are compatible with lottie?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for lottie?

Requer a instalação do pacote @lottiefiles/dotlottie-react. Depende de Framer Motion para animações complexas.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add BasedHardware/omi-landing/lottie. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use lottie immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

lottie

Install lottie, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before rollout.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

Lottie Animation Skill

Add lightweight, scalable Lottie animations to the Mediar website using LottieFiles.

Current Animation Setup

The project currently uses Framer Motion (framer-motion@11.0.14) for animations. Lottie can be added alongside Framer Motion for more complex pre-made animations.


Installation

Install LottieFiles React Package

bash
1npm install @lottiefiles/dotlottie-react

This is the official LottieFiles package that supports both .json and .lottie (optimized) formats.


Basic Usage

Simple Lottie Component

Create a reusable Lottie component at components/lottie-animation.tsx:

tsx
1"use client"; 2 3import { DotLottieReact } from "@lottiefiles/dotlottie-react"; 4 5interface LottieAnimationProps { 6 src: string; 7 loop?: boolean; 8 autoplay?: boolean; 9 className?: string; 10 speed?: number; 11} 12 13export function LottieAnimation({ 14 src, 15 loop = true, 16 autoplay = true, 17 className = "", 18 speed = 1, 19}: LottieAnimationProps) { 20 return ( 21 <DotLottieReact 22 src={src} 23 loop={loop} 24 autoplay={autoplay} 25 className={className} 26 speed={speed} 27 /> 28 ); 29}

Usage Example

tsx
1import { LottieAnimation } from "@/components/lottie-animation"; 2 3export function MyComponent() { 4 return ( 5 <LottieAnimation 6 src="https://lottie.host/xxx/animation.lottie" 7 className="w-64 h-64" 8 /> 9 ); 10}

Integration with Framer Motion

Combine Lottie with Framer Motion for scroll-triggered animations:

tsx
1"use client"; 2 3import { motion, useInView } from "framer-motion"; 4import { useRef, useState, useEffect } from "react"; 5import { DotLottieReact, DotLottie } from "@lottiefiles/dotlottie-react"; 6 7interface AnimatedLottieProps { 8 src: string; 9 className?: string; 10 playOnView?: boolean; 11} 12 13export function AnimatedLottie({ 14 src, 15 className = "", 16 playOnView = true, 17}: AnimatedLottieProps) { 18 const ref = useRef(null); 19 const isInView = useInView(ref, { once: true, amount: 0.3 }); 20 const [dotLottie, setDotLottie] = useState<DotLottie | null>(null); 21 22 useEffect(() => { 23 if (playOnView && dotLottie) { 24 if (isInView) { 25 dotLottie.play(); 26 } else { 27 dotLottie.pause(); 28 } 29 } 30 }, [isInView, dotLottie, playOnView]); 31 32 return ( 33 <motion.div 34 ref={ref} 35 initial={{ opacity: 0, y: 20 }} 36 animate={isInView ? { opacity: 1, y: 0 } : {}} 37 transition={{ duration: 0.6 }} 38 className={className} 39 > 40 <DotLottieReact 41 src={src} 42 loop 43 autoplay={!playOnView} 44 dotLottieRefCallback={setDotLottie} 45 /> 46 </motion.div> 47 ); 48}

Local Animation Files

Storing Animations

Store Lottie files in public/animations/:

public/
  animations/
    loading.lottie
    success.lottie
    workflow.json

Using Local Files

tsx
1<LottieAnimation src="/animations/loading.lottie" />

Controlled Playback

Play/Pause/Stop Controls

tsx
1"use client"; 2 3import { useState, useCallback } from "react"; 4import { DotLottieReact, DotLottie } from "@lottiefiles/dotlottie-react"; 5 6export function ControlledLottie({ src }: { src: string }) { 7 const [dotLottie, setDotLottie] = useState<DotLottie | null>(null); 8 9 const play = useCallback(() => dotLottie?.play(), [dotLottie]); 10 const pause = useCallback(() => dotLottie?.pause(), [dotLottie]); 11 const stop = useCallback(() => dotLottie?.stop(), [dotLottie]); 12 13 return ( 14 <div> 15 <DotLottieReact 16 src={src} 17 loop 18 autoplay={false} 19 dotLottieRefCallback={setDotLottie} 20 /> 21 <div className="flex gap-2 mt-4"> 22 <button onClick={play}>Play</button> 23 <button onClick={pause}>Pause</button> 24 <button onClick={stop}>Stop</button> 25 </div> 26 </div> 27 ); 28}

Segment Playback (Play Specific Frames)

tsx
1const playSegment = useCallback(() => { 2 if (dotLottie) { 3 dotLottie.setSegment(0, 30); // Play frames 0-30 4 dotLottie.play(); 5 } 6}, [dotLottie]);

Event Handlers

tsx
1<DotLottieReact 2 src={src} 3 loop 4 autoplay 5 dotLottieRefCallback={setDotLottie} 6 onComplete={() => console.log("Animation complete")} 7 onLoad={() => console.log("Animation loaded")} 8 onPlay={() => console.log("Playing")} 9 onPause={() => console.log("Paused")} 10 onStop={() => console.log("Stopped")} 11 onFrame={(frame) => console.log("Frame:", frame)} 12/>

Common Animation Sources

LottieFiles Free Animations

Browse free animations at: https://lottiefiles.com/free-animations

Popular categories for business/SaaS:

Using LottieFiles CDN

Copy the CDN URL from any animation on LottieFiles:

tsx
1<LottieAnimation 2 src="https://lottie.host/embedded/your-animation-id.lottie" 3/>

Replacing Framer Motion Animations

Before (Framer Motion custom animation)

tsx
1<motion.div 2 className="w-8 h-8 rounded-full bg-gradient-to-r from-blue-500 to-purple-500" 3 animate={{ scale: [1, 1.2, 1] }} 4 transition={{ duration: 1.5, repeat: Infinity }} 5/>

After (Lottie)

tsx
1<LottieAnimation 2 src="/animations/pulse.lottie" 3 className="w-8 h-8" 4/>

Performance Tips

  1. Use .lottie format - Up to 80% smaller than .json
  2. Lazy load - Only load animations when needed
  3. Pause offscreen - Use useInView to pause animations not in viewport
  4. Limit concurrent - Don't run too many animations simultaneously
  5. Optimize size - Use LottieFiles editor to reduce complexity

Lazy Loading Example

tsx
1import dynamic from "next/dynamic"; 2 3const LottieAnimation = dynamic( 4 () => import("@/components/lottie-animation").then((mod) => mod.LottieAnimation), 5 { ssr: false, loading: () => <div className="w-64 h-64 bg-muted animate-pulse" /> } 6);

Workflow Animation Example

Replace custom step animations with Lottie:

tsx
1"use client"; 2 3import { motion, useInView } from "framer-motion"; 4import { useRef } from "react"; 5import { DotLottieReact } from "@lottiefiles/dotlottie-react"; 6 7const STEP_ANIMATIONS = { 8 document: "https://lottie.host/xxx/document.lottie", 9 ai: "https://lottie.host/xxx/ai-brain.lottie", 10 typing: "https://lottie.host/xxx/typing.lottie", 11 success: "https://lottie.host/xxx/checkmark.lottie", 12}; 13 14interface WorkflowStep { 15 animation: keyof typeof STEP_ANIMATIONS; 16 label: string; 17 description: string; 18} 19 20export function LottieWorkflowAnimation() { 21 const ref = useRef(null); 22 const isInView = useInView(ref, { once: true, amount: 0.3 }); 23 24 const steps: WorkflowStep[] = [ 25 { animation: "document", label: "PDF Arrives", description: "Invoice received" }, 26 { animation: "ai", label: "AI Reads", description: "Extracts data" }, 27 { animation: "typing", label: "Enters Data", description: "Types into SAP" }, 28 { animation: "success", label: "Done", description: "Ready for review" }, 29 ]; 30 31 return ( 32 <div ref={ref} className="flex justify-between"> 33 {steps.map((step, index) => ( 34 <motion.div 35 key={index} 36 initial={{ opacity: 0, y: 20 }} 37 animate={isInView ? { opacity: 1, y: 0 } : {}} 38 transition={{ delay: index * 0.2 }} 39 className="flex flex-col items-center" 40 > 41 <div className="w-24 h-24"> 42 <DotLottieReact 43 src={STEP_ANIMATIONS[step.animation]} 44 loop 45 autoplay={isInView} 46 /> 47 </div> 48 <p className="font-semibold mt-4">{step.label}</p> 49 <p className="text-sm text-muted-foreground">{step.description}</p> 50 </motion.div> 51 ))} 52 </div> 53 ); 54}

Icon Animations

Use Lottie for animated icons:

tsx
1"use client"; 2 3import { DotLottieReact } from "@lottiefiles/dotlottie-react"; 4 5const ANIMATED_ICONS = { 6 check: "https://lottie.host/xxx/check.lottie", 7 loading: "https://lottie.host/xxx/loading.lottie", 8 error: "https://lottie.host/xxx/error.lottie", 9 arrow: "https://lottie.host/xxx/arrow.lottie", 10}; 11 12interface AnimatedIconProps { 13 icon: keyof typeof ANIMATED_ICONS; 14 size?: number; 15 loop?: boolean; 16} 17 18export function AnimatedIcon({ icon, size = 24, loop = false }: AnimatedIconProps) { 19 return ( 20 <DotLottieReact 21 src={ANIMATED_ICONS[icon]} 22 loop={loop} 23 autoplay 24 style={{ width: size, height: size }} 25 /> 26 ); 27}

Creating Custom Animations

Option 1: LottieFiles Creator (Browser-based)

https://lottiefiles.com/lottie-creator

Option 2: Figma + LottieFiles Plugin

  1. Design in Figma
  2. Use LottieFiles Figma plugin to export

Option 3: Adobe After Effects + Bodymovin

  1. Create animation in After Effects
  2. Export with Bodymovin extension

Troubleshooting

Animation Not Playing

  • Check if autoplay is set to true
  • Verify the src URL is correct and accessible
  • Check browser console for errors

Animation Too Large

  • Use .lottie format instead of .json
  • Optimize using LottieFiles editor
  • Reduce animation complexity

Flash of Unstyled Content

  • Add a placeholder/skeleton while loading
  • Use dynamic import with loading state

SSR Issues

  • Use dynamic import with ssr: false
  • Or conditionally render based on client-side check

API Reference

DotLottieReact Props

PropTypeDefaultDescription
srcstringrequiredURL or path to animation
autoplaybooleanfalseAuto-start animation
loopbooleanfalseLoop animation
speednumber1Playback speed (0.5 = half, 2 = double)
direction1 | -11Playback direction
modestring"forward""forward", "reverse", "bounce", "reverse-bounce"
segment[number, number]-Frame segment to play
backgroundColorstring-Background color

DotLottie Instance Methods

MethodDescription
play()Start animation
pause()Pause animation
stop()Stop and reset
setSpeed(speed)Set playback speed
setDirection(dir)Set direction (1 or -1)
setSegment(start, end)Set frame range
goToAndPlay(frame)Jump to frame and play
goToAndStop(frame)Jump to frame and stop

Resources

Habilidades Relacionadas

Looking for an alternative to lottie or another community skill for your workflow? Explore these related open-source skills.

Ver tudo

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

widget-generator

Logo of f
f

Gerar plugins de widgets personalizáveis para o sistema de feed do prompts.chat

flags

Logo of vercel
vercel

O Framework React

138.4k
0
Navegador

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
Desenvolvedor