Each particle has to extend Particle and override this method: void paint(Canvas canvas, Size size, progress, seed)

Canvas is the canvas you can paint on The size is the bounding box of the the enclosing widget Progress is a double between 0 and 1, it reflects the progress in the animation The seed is an int value generated once for every tap. When dealing with randoms, initialize your Random with that seed (so every frame is synced)

Features

*Highly customizable (Don't like my particle effects? Make your own with little effort!) *Very easy to use *A lot of premade particles

Getting started

Each particle has to extend Particle and override this method: void paint(Canvas canvas, Size size, progress, seed)

Canvas is the canvas you can paint on The size is the bounding box of the the enclosing widget Progress is a double between 0 and 1, it reflects the progress in the animation The seed is an int value generated once for every tap. When dealing with randoms, initialize your Random with that seed (so every frame is synced)

PimpedButton(
  particle: DemoParticle(),
  pimpedWidgetBuilder: (context, controller) {
    return FloatingActionButton(onPressed: () {
      controller.forward(from: 0.0);
    },);
  },
);```

## Additional information

TODO: Tell users more about the package: where to find more information, how to 
contribute to the package, how to file issues, what response they can expect 
from the package authors, and more.