zenolith-ui/zenolith
The GUI engine to end them all! Mirror of https://git.mzte.de/zenolith/zenolith
Zenolith is my attempt at a retained-mode, platform-agnostic, zig-native GUI engine.
Warning: Zenolith is in an extremely early stage! Many important features such as text editing are not yet implemented. Expect breaking changes!
Zenolith is mirrored on GitHub to make it easier to discover, however, this mirror is read-only! Do not open issues or pull requests on GitHub! All development happens on MZTE Git.
Pull requests are always welcome! If you'd like to fix a bug, improve documentation or implement a feature on the TODO list below, go ahead! If you'd like to suggest a new feature or design change, please open an issue first to discuss it!
All commits must follow Conventional Commits!
Painter API
Rectangles
Textures
Text
Multi-Color chunks
Multi-Font chunks
Triangles
Matrix Transformations?
Drawing of partial widgets
stencils?
Widgets
Box (FlowBox-like algorithm)
Button
Label
Word Wrapping
Character Wrapping
Ellipsization
Text Edit
Single Line
Multi Line
Tabbed Pane
Split Pane
Scrolled Pane
Focus System
Theming
Built-in themes
Layout overflow handling
Logo
Treevents (Tree-Bound, downwards events)
Backevents (Tree-Bound, upwards events)
Platform events (Platform event loop events)
Wrap Backevents
Attreebutes (Tree-Bound, inhereted widget properties)
Documentation
In-Code
Book
Examples
CI/CD
SDL2 Backend
Mach Backend
TUI Backend
WASM Backend
Lazy rendering of subtrees