How do I customize the progress bar?

If you wish to replace the built-in progress bar, you need to listen to the onChange event. Its callback’s argument will be a file object for regular widgets or a group object for multiple widgets. Then, you need to listen to the progress event and change your progress bar in according to a current uploadProgress.

The following installProgressBar function does all that. It receives the two arguments: widget instance and progress bar DOM element. Everything else runs on CSS, animation included.

See a complete code snippet here.