• Add reverseOnRepeat (#2128)
  • Allow setting a font map for custom fonts (#2180)
  • Allow images to be rendered (#2183)


  • [BREAKING CHANGE] LottieAnimation now takes progress as a () -> Float rather than a Float. This allows Lottie to redraw without triggering a recomposition every time progress updates. For more information, refer to the Compose phase docs. The existing API will exist as deprecated for one more release but will then be removed. For the vast majority of use cases:
LottieAnimation(composition, progress)

will become:

LottieAnimation(composition, { progress })


  composition = composition,
  progress = { progress }



  • Add support for completable animations in tests (#2051)


  • You can tell Lottie to render the full animation even if it extends beyond the original composition bounds by setting clipToCompositionBounds to false.
  • Add support for dynamic text via LottieProperty.TEXT and the existing dynamic property APIs (#1995)
  • Respect Android system animator scale (include 0 for modes like battery saver) (#2000)
  • Added support for loading animations via content provider URIs (LottieCompositionSpec.ContentProvider) (#1982)
  • Fixed dynamic gradient properties (#1969).
  • Prevent infinite animations from hanging espresso tests by using the same mechanism as androidx animations (#1987)
  • Set the merge paths property before the composition to avoid building the composition layer with the wrong merge paths value and triggering a second rebuilt (#1997)


  • [BREAKING CHANGE] LottieAnimation will now default to the composition size rather than fillMaxSize() (#1892)
  • Improved the performance of loading and parsing animations (#1891)


  • No changes


  • Upgrade to Compose 1.0
  • Made LottieCompositionSpec an inline class(#1855)


  • Upgrade to Compose rc02
  • Add support for ContentScale and Alignment just like the Image composable (#1844)
  • Automatically load fonts if possible and allow setting fonts via dynamic properties (#1842)
  • Add LottieCancellationBehavior support to animateLottieCompositionAsState (#1846)
  • Allow custom cache keys/cache skipping (#1847)
  • Always respect LottieClipSpec (#1848)


Breaking Changes

LottieAnimation now takes a progress float instead of driving the animation internally. The driving of animations has been split into a new LottieAnimatable class and animateLottieCompositionAsState function. These are analogous to Jetpack's Animatable and animate*AsState functions. Properties that pertain to the animation such as speed, repeat count, and the new clip spec are part of animateLottieComposition whereas properties that are related to rendering such as enabling merge paths and setting an image asset delegate are on the LottieAnimation composable.

lottieComposition has also been renamed rememberLottieComposition.

There are overloaded version of LottieAnimation that merge the properties for convenience. Please refer to the docs for LottieAnimation, LottieAnimatable, animateLottieCompositionAsState and rememberLottieComposition for more information.

  • Added the ability to clip the progress bounds of an animation.
  • Added the ability to set and control dynamic properties.
  • Removed the existing imageAssetDelegate parameter and moved imageAssetsFolder to rememberLottieComposition. Images are now loaded from assets or decoded from the base64 string embedded in the json file during parsing and on the IO thread pool rather than upon first render on the main thread during animations. If you want to supply your own animations, call composition.images["your_image_id"].bitmap = yourBitmap. This lets you control exactly how and when the bitmaps get created and set. The previous implementation of calling a callback on every frame encouraged the incorrect behavior of doing IO tasks during the animation hot path. Check out ImagesExamplesPage.kt for usage.


  • Compatible with Jetpack Compose Beta 07


  • Update versioning scheme to match the underlying Compose version
  • Compatible with Jetpack Compose Beta 03
  • Added support for images (#1766)
  • Added the ability to control whether merge paths are enabled or not (#1744)
  • Swapped modifier application order to follow Compose guidelines (and support setting specific sizes) (#1765)


  • Add flag for merge paths to LottieAnimationState
  • Compatible with Jetpack Compose Beta 02


  • Compatible with Jetpack Compose Alpha 12


  • Jetpack Compose Alpha 9


  • Jetpack Compose Alpha 8


  • Initial release of Lottie Compose
  • Compatible with Jetpack Compose alpha 6
  • Built with Lottie 3.5.0
  • Wraps the existing renderer with Jetpack Compose friendly APIs.
  • For up to date docs on how to use it, check out the docs.