How to Build a Textual Progress Bar for CLI and Terminal Apps
I find textual interfaces extremely interesting and I'm trying to figure out how some common components can be creates
this is the time of a progress bar

to create a textual progress bar we need to understand two simple concepts
you can control where the cursor Is programmatically
There are ANSI escapes code to cancel the entire screen or the current line (\r)
One way to achieve this is to start a loop and on every iteration print the special escape code \r that will clear the line at the cursor position and then print one of the following to simulate a progress
[. ]
[.. ]
[... ]
[.... ]
[..... ]
[...... ]
[....... ]
[........ ]
[.........]In this example, I'll be using Node.js
async function main() {
/* using 20 to make the progress bar length 20 charactes, multiplying by 5 below to arrive to 100 */
for (let i = 0; i setTimeout(res, ms))
}This was relatively simple but with somecustom colorscan have a huge impact in the UX of a tool, especially it takes some time to complete and there is no other feedback for the user that everything is going ok
full code available on the repo ongithub