gui_toolkit A fast, native, immediate-mode GUI toolkit in Odin: Direct3D 11 on Windows, Vulkan on Linux.

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.

Getting started