Popularity
4.1
Growing
Activity
7.0
Growing
369
7
48

Programming language: JavaScript
License: MIT License
Latest version: v1.1.0

react-lottie-player alternatives and similar libraries

Based on the "Framework bindings / integrations" category.
Alternatively, view react-lottie-player alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of react-lottie-player or a related project?

Add another 'Framework bindings / integrations' Library

README

Fully declarative React Lottie player

Inspired by several existing packages wrapping lottie-web for React, I created this package because I wanted something that just works and is easy to use. None of the alternatives properly handle changes of props like playing/pausing/segments. This lead to lots of hacks to get the animations to play correctly.

react-lottie-player is a complete rewrite using hooks ๐ŸŽฃ for more readable code, easy to use, seamless and fully declarative control of the lottie player.

Tests NPM JavaScript Style Guide

Features

Install

npm install --save react-lottie-player

Usage

import React from 'react'

import Lottie from 'react-lottie-player'
// Alternatively:
// import Lottie from 'react-lottie-player/dist/LottiePlayerLight'

import lottieJson from './my-lottie.json'

export default function Example() {
  return (
    <Lottie
      loop
      animationData={lottieJson}
      play
      style={{ width: 150, height: 150 }}
    />
  )
}

Example

๐ŸŽ› Live demo

[๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป Example code](example/src/App.js)

Lazy loading example

const MyComponent = () => {
  const [animationData, setAnimationData] = useState();

  useEffect(() => {
    import('./animation.json').then(setAnimationData);
  }, []);

  if (!animationData) return <div>Loading...</div>;
  return <Lottie animationData={animationData} />;
}

Imperative API (ref)

const lottieRef = useRef();

useEffect(() => {
  console.log(lottieRef.current.currentFrame);
}, [])

return <Lottie ref={lottieRef} />;

See also #11

LottiePlayerLight

The default lottie player uses eval. If you don't want eval to be used in your code base, you can instead import react-lottie-player/dist/LottiePlayerLight. For more discussion see #39.

Lottie animation track scrolling div

See [example/App.js](example/src/App.js) (ScrollTest) in live example.

Resize mode: cover

If you want the animation to fill the whole container, you can pass this prop. See also #55:

<Lottie rendererSettings={{ preserveAspectRatio: 'xMidYMid slice' }} />

API

See [PropTypes](src/props.js) and lottie-web.

Releasing

  • Commit & wait for CI tests
  • np

Credits

License

MIT ยฉ mifi


Made with โค๏ธ in ๐Ÿ‡ณ๐Ÿ‡ด

More apps by mifi.no

Follow me on GitHub, YouTube, IG, Twitter for more awesome content!


*Note that all licence references and agreements mentioned in the react-lottie-player README section above are relevant to that project's source code only.