Гуглится легко
https://codepen.io/alvaromontoro/pen/LYjZqzP далее касаемо по времени сколько займёт анимация зависит от бэка, в том смысле, что пока ответ приходит от сервера, прогресс может остановиться на пару секунд на каком то значение, а далее уже идти дальше, как то так, вы можете просто сделать тайминг через css как заглушку, далее бэк должен разобраться, а чтобы блок скрывался достигнув 100% пропишите скрипт с условием если 100 то там display none, как то так, пробуйте