FlowUI Documentation¶
FlowUI is a Go desktop UI framework and component library built on Gio. It combines a typed MVU application model with reusable components, declarative styles, window management, asynchronous effects, and deterministic UI tests.

Reading path¶
| Order | Page | What it covers |
|---|---|---|
| 1 | Getting started | Install and run your first window |
| 2 | Core concepts | Model, messages, keys, and ownership |
| 3 | MVU and messages | Update, View, Cmd, and subscriptions |
| 4 | Layout | Containers, constraints, and grids |
| 5 | Styling and themes | Tokens, parts, states, and fonts |
| 6 | Components | Public component families |
| 7 | Forms and controlled state | Inputs, selection, and open state |
| 8 | Commands and subscriptions | Effects, cancellation, and errors |
| 9 | Overlays and popups | Menus, popovers, modals, and portals |
| 10 | Custom components | Composition and custom layout |
| 11 | Multiple windows | Application lifecycle and window state |
| 12 | Animation | Transitions, tweens, springs, and timelines |
| 13 | Testing | Harness and application tests |
| 14 | FAQ | Common questions and troubleshooting |
| 15 | Gantt chart | Tasks, dependencies, and editing |
| 16 | Component screenshots | Visual reference for the examples |
| 17 | Node graph | Nodes, ports, edges, and a controlled viewport |
Repository map¶
| Purpose | Location |
|---|---|
| Public package | github.com/qianniancn/flowui/ui |
| Runnable examples | examples/ |
| Go API reference | pkg.go.dev |
The guide targets application developers and uses only the public ui package.
The internal/ tree is implementation detail.
Current versions¶
This documentation matches Go 1.26.2 and Gio v0.10.1. The single-window entry
point is ui.Run(Program); use ui.Application when the process owns multiple
windows or a longer lifecycle.