A UI component library for Go, built on the Willow display tree
Willow UI gives you a full set of themed, interactive widgets built on the Willow scene graph. Buttons, inputs, sliders, tabs, panels, lists, and more. Write game UI in Go with reactive data binding and optional XML templates.



Willow UI builds on Willow's scene graph. You get all of Willow's rendering features plus a full widget toolkit.
Read the full guide →Typed Go widgets with reactive bindings. No raw image ops, no manual layout math.
If you've built UIs in Unity or Godot, Willow UI will make sense. A component library for game UIs.



No raw image management, no shader calls, no manual layout math. Willow UI components are typed Go structs with clear APIs. Build a reactive counter in under 10 lines of Go.
Ref[T] and Computed[T] keep your widget text, values, and visibility in sync with your game state. Two-way binding, derived values, and array watchers with low framework overhead.
A single Theme struct controls colors, borders, padding, and corner radii across every widget and visual state. Swap themes at runtime. Override per-component when you need to.
Define layouts in XML with hot-reload to see changes in real time, no recompile needed. Readable, declarative markup that keeps UI structure separate from logic. Compile to binary for production when you ship.
In-game menus, HUDs, and settings screens
Cross-platform desktop apps and utilities
Character sheets, stat panels, and data-driven displays
Native tools and editor interfaces
Level editors and debug tool panels
Apps with reactive data binding and live-updating views
Define your layouts in declarative XML with reactive data binding, conditional visibility, and event handlers. Hot-reload to see changes instantly without recompiling.
Willow UI is a component library for building game user interfaces in Go. It sits on top of the Willow scene graph and provides buttons, sliders, text inputs, panels, tabs, lists, and dozens of other widgets. It includes a layout system, reactive data binding, theming, and optional XML templates.
Yes. Willow UI is built on Willow's display tree. Every widget is a node in the scene graph. This means UI elements participate in the same rendering pipeline as your game graphics: same draw ordering, same batching, same coordinate system.
There is no DOM, no CSS, no browser engine. Willow UI draws everything directly with GPU-accelerated 2D rendering inside your game loop. Layout, styling, and hit testing are all custom implementations designed for 60 FPS game rendering, not document layout. If you need a settings menu running at full frame rate alongside your game, this is what Willow UI is for.
Buttons, text inputs, sliders, checkboxes, toggles, radio buttons, tabs, panels, accordions, lists, data tables, color pickers, calendar selectors, time pickers, tooltips, popovers, toasts, menu bars, context menus, toolbars, nav drawers, scroll panels, and more. See the documentation for the full catalog.
Get up and running in minutes. Check out the docs, explore examples, or jump straight into the code.