Как реализовать progress bar?
Один спанчик поверх другого.
Переключайте значение ширины в зависимости от условия.
Удобно через кастомные свойства.

В теории даже на чистом CSS можно сотворить на основании :valid и/или :placeholder-showen

snippet
https://developer.mozilla.org/ru/docs/Web/HTML/Ele...

И в JS следите за изменениями в input и меняете значение в progress