Skip to content

Declarative views. Render on demand.

A Go GUI framework for Windows, macOS, and Linux. Declarative views meet retained updates in an event-driven runtime, with CGO-free builds, multiple windows, and typed components, layouts, and themes.

DXUI logo

Start here

One main.go.
One desktop window.

Compose components and handle lifecycle events through a typed Go API. This complete program takes a window from creation to shutdown.

  1. Set upInstall Go 1.25+, create a module, and add DXUI.
  2. Describe the UICompose text, containers, and buttons in the Run builder.
  3. Run and interactRun go run . and click Close to exit.
View setup and running instructions
main.goComplete example
go
package main

import (
	"github.com/dxui-org/dxui"
	"log"
)

func main() {
	app := dxui.NewApp(dxui.AppOptions{
		Background: dxui.RGBA(248, 250, 252, 255),
		Title:      "Hello dxui",
		Width:      640,
		Height:     400,
	})
	if err := app.Run(func() dxui.View {
		return dxui.Box(
			dxui.BoxProps{
				Gap: 16,
				Style: dxui.Style{
					Padding: dxui.Padding(24),
				},
			},
			dxui.Label("Hello, dxui!"),
			dxui.TextButton(dxui.ButtonProps{
				OnPress: app.Close,
			}, "Close"),
		)
	}); err != nil {
		log.Fatal(err)
	}
}

Learn at your pace

From getting started to looking it up.

Common tasks

What are you building?

© 2026 DXUI · MIT