mirror of
https://github.com/chriseidhof/TerminalUI.git
synced 2026-10-21 06:13:18 +02:00
57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# 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.
|
|
|
|
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
|
|
- ...
|