Enterprise-Grade GUI Toolkit for Go
Modern widgets, reactive state, GPU-accelerated rendering
Join the Discussion: Help shape the future of Go GUI! Share your ideas, report issues, and discuss features at our GitHub Discussions.
gogpu/ui is a reference implementation of a professional GUI library for Go, designed for building:
- IDEs (GoLand, VS Code class)
- Design Tools (Photoshop, Figma class)
- CAD Applications
- Professional Dashboards
- Chrome/Electron Replacement Apps
| Feature | gogpu/ui | Fyne | Gio |
|---|---|---|---|
| CGO-free | Yes | No | Yes |
| WebGPU rendering | Yes | OpenGL | Direct GPU |
| Reactive state | Signals | Binding | Events |
| Layout engine | Flexbox + Grid | Custom | Flex |
| Virtualization | Yes | Limited | Manual |
| IDE docking | Yes | No | No |
Development has not yet started. The project is in the design and planning phase.
Current focus:
- Architecture design
- API specification
- Dependency coordination with gogpu ecosystem
Watch/Star the repo to be notified when development begins!
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Application β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β theme/material3 β theme/fluent β theme/cupertino β
β (Optional) β (Optional) β (Optional) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β widgets/ β docking/ β animation/ β
β Button, TextFieldβ DockingHost β Animation, Spring β
β Dropdown, etc. β FloatingWindow β Transitions β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β layout/ β state/ β
β VStack, HStack, Grid, Flexbox β Signals β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β core/ β event/ β
β Widget, WidgetBase, Context β Mouse, Keyboard β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β gogpu/gg β gogpu/gogpu β coregx/signals β
β 2D Graphics β Windowing β State Management β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
package main
import (
"fmt"
"github.com/gogpu/gogpu"
"github.com/gogpu/ui/layout"
"github.com/gogpu/ui/widgets"
"github.com/coregx/signals"
)
func main() {
app := gogpu.NewApp(gogpu.Config{
Title: "My Application",
Width: 1280,
Height: 720,
})
// Reactive state
count := signals.New(0)
// Declarative UI
root := layout.VStack(
widgets.Text("Counter Demo").FontSize(24),
layout.HStack(
widgets.Button("-").OnClick(func() {
count.Set(count.Get() - 1)
}),
widgets.Text(signals.Computed(func() string {
return fmt.Sprintf("Count: %d", count.Get())
})),
widgets.Button("+").OnClick(func() {
count.Set(count.Get() + 1)
}),
).Spacing(8),
widgets.TextField().
Placeholder("Enter text...").
Width(300),
).Spacing(16).Padding(24)
app.SetRoot(root)
app.Run()
}Note: This is the target API design, not yet implemented.
- Widget interface design
- Signals integration (coregx/signals)
- Event system (mouse, keyboard, focus)
- Rendering pipeline (gogpu/gg)
- Button, TextField, Label
- Checkbox, Radio, Switch
- Slider, Progress
- Dropdown, Select, ComboBox
- List, Table, Tree (virtualized)
- Tabs, Accordion, SplitView
- Dialog, Popover, Tooltip
- VStack, HStack (Flexbox)
- Grid (CSS Grid-like)
- Absolute positioning
- ScrollView
- Material Design 3
- Microsoft Fluent
- Apple Cupertino
- IDE-style docking
- Drag & drop
- Virtualization (100K+ items)
- Animation engine
- Accessibility (WCAG 2.1 AA)
- Internationalization (RTL, i18n)
| Dependency | Purpose |
|---|---|
| Go 1.25+ | Language runtime (generics, iterators) |
| gogpu/gg | 2D graphics rendering |
| gogpu/gogpu | Windowing and GPU abstraction |
| coregx/signals | Reactive state management |
Note: Always use the latest versions. See Related Projects for current releases.
| Phase | Version | Description |
|---|---|---|
| Phase 1 | v0.1.0 | MVP: Core, layout, events |
| Phase 2 | v0.2.0 | Beta: Widgets, Material 3 |
| Phase 3 | v0.3.0 | RC: Virtualization, animation |
| Phase 4 | v1.0.0 | Production: Docking, a11y, themes |
Full details: ROADMAP.md
| Project | Description | Purpose |
|---|---|---|
| gogpu/gg | 2D graphics | Canvas API, scene graph, GPU text |
| gogpu/wgpu | Pure Go WebGPU | Vulkan, Metal, GLES, Software backends |
| gogpu/gogpu | Graphics framework | GPU abstraction, windowing, input |
| gogpu/naga | Shader compiler | WGSL β SPIR-V, MSL, GLSL |
Note: Always use the latest versions. Check each repository for current releases.
Total ecosystem: 200K+ lines of Pure Go β no CGO, no Rust, no C.
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
Ways to contribute:
- Design discussions in Issues
- API feedback
- Documentation improvements
- Research on GUI patterns
MIT License β see LICENSE for details.
gogpu/ui β Enterprise-grade GUI for Go
