A way to build TUI apps with a layout system and API that's similar to SwiftUI
terminal-ui
A way to build TUI 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. 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)
- Alignment
- GeometryReader
- Border
- Color (so far we only support 16 colors)
- FixedFrame
- FlexibleFrame
- HStack
- Overlay
- Background
- ZStack
- Text
- Padding (In progress)
- Add tests
- 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 ofBuiltinView
) - 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
- …
- Custom
Similar Projects:
Inspiration: