Frequently asked questions about Willow UI.
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.
Willow UI uses Ref[T] and Computed[T] for reactive state. A Ref holds a value and notifies watchers when it changes. A Computed derives a value from other refs and recomputes automatically. Bind a Ref to a slider, and moving the slider updates the ref. Change the ref from code, and the slider moves. No manual synchronization needed.
An alternative to writing UI in Go code. You define your widget tree in XML with data bindings and event handlers, and the template system wires everything to your Go controller struct. Templates support hot-reload during development and compile to binary format for production. They are entirely optional; you can build everything in pure Go.
Every widget draws its appearance from a Theme struct. Change one value and the entire UI updates. Themes control colors, borders, padding, corner radii, and font sizes across every widget type. You can override per-widget, use nine-slice image backgrounds for custom skins, and load themes from JSON.
Yes. Willow UI has a focus system with tab and arrow key navigation, and keyboard shortcuts with modifier support. UI built with Willow UI works with mouse and keyboard out of the box.
Yes. The core component library, layout system, reactive bindings, theming, and XML templates are free and open source.
Willow UI is available now. Install it with "go get github.com/devthicket/willowui@latest" and follow the quick start guide in the documentation. The source is on GitHub at github.com/devthicket/willowui.