Welcome to gui_toolkit
A fast, native, immediate-mode GUI toolkit in Odin. You describe the interface in code on every frame; it keeps the state between frames and draws with its own renderer: Direct3D 11 on Windows, Vulkan on Linux.
Get started - Source on GitHub
Windows 10+ · Linux (X11, Wayland) · MIT
Features
- Immediate mode, retained state: Build the interface every frame with plain procedures
- Its own renderer: Rounded rects, shadows, gradients, blurs and backdrops, masks, layers, transforms, Slug text from outlines (hinted when small), video
- Text done properly: DirectWrite on Windows, or the native backend everywhere (Fontations, HarfRust, ICU4X)
- Widgets: Fields and editors (wrapped, highlighted, secret), menus, pickers with fuzzy matching, virtualized tables and trees, splitters, tabs, dialogs, toasts, popovers, charts, drag and drop, find in page
- The platform: Integrated title bars with snap layouts, DPI, IME, clipboard, file dialogs, tray icons, single instance, accessibility through AccessKit
- Tested: Windowless tests with pixel comparisons on WARP, every package through the WebGPU backend, a Linux job
Start
As a submodule
Add it to your project and point a collection at it; examples/hello is a window in a few lines.
odin build src -collection:gt=ext/gui_toolkit
Built with it
opencode native, a desktop client for opencode (Windows and Linux), and Wren, a web browser.