Personally, I would opt for not modifying the DOM heavily and push more of the work into CSS making use of different DOM structure and data attributes instead of just classes. Also CSS pseudo element will save you a lot of DOM footprint in some cases and the combination will result in quicker performance.
Also the use way in which you build a progress bar, what exactly is happening there?
https://medium.com/because-we-love-software/126cfe0fa698
I don't know if I agree with all of his points but he does make me think twice before I copy a trendy design.