Documentation
Guides for building desktop applications with Viva: the programming model, components, packaging, and what each platform supports today.
Start
Concepts
Guides
Windows and the status area
Window styles, a custom title bar, several windows, asking before a window closes, and an icon in the menu bar or tray.
Handling input
Pointer, keyboard, shortcuts, scrolling and focus, with a complete example you can drag, type into and scroll.
Text input and forms
How an application-owned text.Editor connects to the platform's text system, with a working form field.
Drawing and layout
Coordinates, slicing space with rows, columns and grids, and painting rectangles, text, icons and paths.
Declarative layout
Describe a page with rows, columns, padding and growth instead of coordinates; the flex package lays it out.
Theming and fonts
Light and dark themes, overriding tokens, control density, reduced motion and fixed-pitch fonts.
Dialogs, menus and popups
Layers, focus scopes and dismissal, with a dropdown menu that closes on an outside press and a modal dialog.
Components
Use the catalog directly, or copy a component's Go source into your project and own it.
System integration
Clipboard, file dialogs, notifications, secrets and the rest of the operating system, and how failures are reported.