Rich / textual let you stream a terminal pane to a browser over a websocket, you could then embed that in a webview, use a PWA, or use Electron to display it in app form.
Please let me know if someone actually tries this!
When FoxPro made the transition to being graphical with Visual FoxPro, I'm pretty sure it took xbase programs that worked on consoles and made them work as a graphical application. Stuff like '@ 10, 10 SAY "First name:" that was originally written to display the string "First name:" on the 11th row (first one starts at 0) and 11th column of the terminal would now be translated into proportional pixel units graphically.