⚠️ DisclaimerWORK IN PROGRESS. I'm not even sure anything will ever work. Help is appreciated.
Lottie is the format for describing vector animations. Read more about Lottie animations on lottie.github.io and Wikipedia.
This project is the re-work of the airbnb/lottie-web library, which has not been maintained for a while. Primary goal of lotea is to revive the original library, i.e. fix the following problems:
- Poor web workers support.
- Poor documentation.
- Poor TypeScript support.
- Old-style JavaScript, unnecessary polyfills, code smells.
- Non-friendly bundling for modern frontend tooling.
- Security issue with
eval(lottie-web#2828).
- Setup workflow (bundler, linter, CI/CD, etc.), publish to npm.
- Re-implement web workers support, improve performance.
- Avoid using
eval. Either by re-implementing or by dropping support of expressions. - Create comprehensive documentation.
- Gradually migrate to TypeScript.
- Add unit testing, coverage reporting, regression tests, etc.
Below you will find the summary of great alternatives to this library, but here are key features that might be relevant to your use-case:
- Fine-grained Lottie features export — to bundle only necessary code.
- SVG-renderer — to do things like using
currentColorin the animation. - Written in JavaScript, not C++ — 🤷♂️.
There are 4 major open-source projects that implement Lottie rendering. (AFAIK, I may be wrong!)
- Created at Airbnb.
- Written in JavaScript.
- The very first Lottie renderer.
- Powers old LottieFiles' lottie-player and lottie-react.
- Created at Samsung.
- Written in C++.
- Used by all Telegram clients (iOS, WebK, WebA, etc.).
- Created by Hermet Park (ex-Samsung engineer, contributor of
Samsung/rlottie). - Written in C++.
- Powers new LottieFiles' dotlottie-rs, dotlottie-web, dotlottie-react, etc.
- Created at Google.
- Written in C++.