Next

1. Install using your favorite package manager:

pnpm add @dotlottie/player-component
yarn install @dotlottie/player-component
npm install @dotlottie/player-component

2. Wrapping the component for client-side

For ease of use, it's best to create a component to wrap the dotLottie player for client-side use only.

//dotlottiePlayer.tsx
'use client'

import '@dotlottie/player-component'
import { PlaybackOptions } from '@dotlottie/player-component'

export interface PlayerProps {
  src: string,
  playbackOptions?: PlaybackOptions,
  controls?: boolean
}

export default function Player(props: PlayerProps) {
  return (
    <div>
      <dotlottie-player
        src={props.src}
        autoplay={props.playbackOptions?.autoplay}
        defaultTheme={props.playbackOptions?.defaultTheme}
        direction={props.playbackOptions?.direction}
        hover={props.playbackOptions?.hover}
        intermission={props.playbackOptions?.intermission}
        loop={props.playbackOptions?.loop}
        playMode={props.playbackOptions?.playMode}
        speed={props.playbackOptions?.speed}
        controls={props.controls}>
      </dotlottie-player>
    </div>
  )
}

3. Usage in app

import Player from "./player";

declare global {
  namespace JSX {
    interface IntrinsicElements {
      'dotlottie-player': any;
    }
  }
}

export default function Home() {
  return (
    <main>
      <div>
        <Player
          src="[...].lottie"
          controls
        />

// Animation from public asset folder
// Adding playback options will override manifest playback options
        <Player
          src="monster.lottie"
          playbackOptions={{
            direction: 1,
            speed: 1,
            autoplay: true,
            playMode: 'bounce'
          }}
          controls
        />
      </div>
    </main>
  )
}

Last updated