Skip to main content

Lottie

Apresentação

O componente Lottie é responsável por exibir animações Lottie em sua aplicação. Ele utiliza a biblioteca @lottiefiles/react-lottie-player para renderizar animações vetoriais de forma eficiente e interativa.

Quando usar

  • Para exibir animações vetoriais
  • Para criar elementos de loading
  • Para adicionar ilustrações animadas
  • Para implementar micro-interações
  • Para criar animações de transição
  • Para exibir animações de sucesso/erro

Forma básica de uso

import { Lottie } from 'eitri-luminus';

// Animação básica
<Lottie
src="/animations/loading.json"
autoPlay
loop
/>

// Animação com tamanho personalizado
<Lottie
src="/animations/success.json"
width={200}
height={200}
speed={1.5}
/>

// Animação com estilo personalizado
<Lottie
src="/animations/error.json"
className="custom-animation"
style={{ backgroundColor: '#f0f0f0' }}
/>

// Animação sem loop
<Lottie
src="/animations/notification.json"
loop={false}
autoPlay={true}
/>

Propriedades

PropriedadeTipoDescrição
srcstringURL ou caminho do arquivo de animação Lottie
autoPlaybooleanDefine se a animação deve iniciar automaticamente (padrão: true)
loopbooleanDefine se a animação deve repetir (padrão: true)
speednumberVelocidade da animação (padrão: 1)
heightstring | numberAltura do container da animação
widthstring | numberLargura do container da animação
styleobjectEstilos inline para o container da animação
classNamestringClasses CSS adicionais para o container
idstringIdentificador único do componente

Heranças

O componente Lottie herda todas as propriedades comuns da biblioteca através da interface CommonProps, que inclui:

  • Propriedades de estilo (margin, padding, etc)
  • Propriedades de layout (flex, grid, etc)
  • Propriedades de posicionamento
  • Propriedades de acessibilidade
  • Propriedades de identificação (id, data-e)

Métodos via Ref

O componente Lottie expõe métodos públicos que podem ser acessados através de uma ref:

import { useRef } from 'react';
import { Lottie } from 'eitri-luminus';

function MyComponent() {
const lottieRef = useRef<Lottie>(null);

const handlePlay = () => {
lottieRef.current?.play();
};

const handlePause = () => {
lottieRef.current?.pause();
};

const handleStop = () => {
lottieRef.current?.stop();
};

const handleSpeedChange = (speed: number) => {
lottieRef.current?.setSpeed(speed);
};

return (
<>
<Lottie
ref={lottieRef}
src="/animations/loading.json"
autoPlay={false}
loop={true}
/>
<button onClick={handlePlay}>Play</button>
<button onClick={handlePause}>Pause</button>
<button onClick={handleStop}>Stop</button>
<button onClick={() => handleSpeedChange(2)}>2x Speed</button>
</>
);
}

Métodos Disponíveis

MétodoTipoDescrição
play()voidReproduz a animação
pause()voidPausa a animação
stop()voidPara a animação
setSpeed(speed: number)voidDefine a velocidade da animação
goToFrame(frame: number)voidVai para um frame específico
getCurrentFrame()numberRetorna o frame atual
getTotalFrames()numberRetorna o número total de frames
isPlaying()booleanRetorna se a animação está reproduzindo

Observações

  • O componente utiliza a biblioteca @lottiefiles/react-lottie-player
  • Suporta arquivos de animação no formato JSON
  • É possível controlar a reprodução através das props
  • O componente é responsivo por padrão
  • Recomenda-se usar para animações vetoriais leves
  • Ideal para micro-interações e feedback visual
  • Pode ser combinado com outros componentes para criar interfaces mais ricas
  • Suporta personalização através de classes CSS e estilos inline
  • Métodos via ref disponíveis para controle programático da animação