I've started work on a new project called Textual.
Textual is (or will be) a TUI framework using Rich as a renderer. It's still very early days, but ultimately the goal is to have something which you can uses to build a Text User Interface with little to no boiler-plate.
It is async powered. Each "widget" runs in an async task and communicates via a message queue. This should allow the UI to remain responsive even when the app is doing work.
Feel free to check out the code, but since Textual is very much a work in progress, you can expect glitches. I'm going to document progress here.
Mouse hover, focus, and scrolling.
Added key bindings and actions. Video demontrates binding a key to toggle a widget in the layout.
Fixed slow scrolling. It turns out that I was parsing and rendering the Markdown every refresh. Not that the cache works, scrolling is much smoother.
Also implemented a new scrollbar using block characters for more granularity.