Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chriseidhof/TerminalUI


https://github.com/chriseidhof/TerminalUI

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# terminal-ui

A way to build [TUI](https://en.wikipedia.org/wiki/Text-based_user_interface) apps with a layout system and API that's similar to SwiftUI.

This was just a proof of concept. [SwiftTUI](https://github.com/rensbreur/SwiftTUI) looks a lot more complete and supported.

We reimplemented parts of the SwiftUI layout system in the Swift Talk series [SwiftUI Layout Explained](https://talk.objc.io/collections/swiftui-layout-explained). This tries to stay as close to that as possible.

A specific goal is to keep the layout behavior as close to SwiftUI as possible. So most SwiftUI programs should "just work" here as well.

Implementation Status

- Views (in random order)
- [x] Alignment
- [x] GeometryReader
- [x] Border
- [x] Color (so far we only support 16 colors)
- [x] FixedFrame
- [x] FlexibleFrame
- [x] HStack
- [x] Overlay
- [x] Background
- [x] ZStack
- [x] Text
- [x] Padding (In progress)
- [ ] Add tests
- [x] VStack
- [ ] Progress
- [ ] ScrollView
- [ ] List
- [ ] Button
- [ ] Switch
- [ ] Custom Alignment Guides
- [ ] Layout Priorities
- More ideas (lower priority)
- [ ] Tree View (similar to outlines)
- [ ] Menus
- [ ] Navigation? (Not sure if this is a good idea, but could be fun to try)
- State/Lifecycle/Interactivity
- [ ] Custom `View` structures (I think we can build this on top of `BuiltinView`)
- [ ] Environment (should be easy)
- [ ] Preferences
- [ ] State/Binding/ObservedObject
- [ ] Focus (we should have some way for a control to be in focus, and )
- [ ] Interaction (nothing is interactive yet)
- [ ] Animations
- [ ] ...

Similar Projects:

- https://github.com/migueldeicaza/TermKit
- https://github.com/migueldeicaza/gui.cs

Inspiration:

- https://github.com/aristocratos/bashtop
- https://github.com/rothgar/awesome-tuis
- ...