Shimmer Animation

pub package dependency status for latest release License

Supports Null Safety

This animation widget can help you bring simple yet beautiful shimmer animations to your project with ease.

Shimmer is very widely used in loading screens or placeholder widgets throughout the development community. Therefore, having an easy to use, yet customizable widget ready to use for Android, iOS and Web, gives developers an advantage to focus on their actual functionality, let shimmer make the loading experience smoother.


An example can be found in the example directory of this repository.

A list of detailed examples can be found in this Examples Repository

Full ScreenLoading WidgetsLoading Buttons

How to use

Add shimmer_animation to pubspec.yaml of your project:

  shimmer_animation: ^2.0.0

Import it in your Dart code:

import 'package:shimmer_animation/shimmer_animation.dart';

Wrap any widget with Shimmer() widget to apply animaton:

    duration: Duration(seconds: 3), //Default value
    interval: Duration(seconds: 5), //Default value: Duration(seconds: 0)
    color: Colors.white, //Default value
    enabled: true, //Default value
    direction: ShimmerDirection.fromLTRB(),  //Default Value
    child: Container(
      color: Colors.deepPurple,


The interval property of shimmer_animation was introduced in v0.2.0 but had a bug which caused animation controller to throw a runtime exception as pointed out by @budo76 in #11

This has been patched in v0.2.1 so anyone using v0.2.0 and using interval should Upgrade Immediately


  • @required child : accepts a child Widget over which the animation is to be displayed
  • color : accepts a parameter of type Color and sets the color of the animation overlay. Default value is Colors.white
  • enabled : accepts a bool toggles animation. Default value is true
  • duration : accepts a Duration that would be the time period of animation. Default value is Duration(seconds: 3)
  • interval : accepts a Duration that would be the interval between the repeating animation. Default value is Duration(seconds: 0) i.e. no interval
  • direction : accepts a ShimmerDirection and aligns the animation accordingly. Default value is ShimmerDirection.fromLBRT()

A detailed API Reference can be found here.


MIT License.