A general purpose UI layout tool built on object-oriented principles.
Specifically it supports:
Inheritance
Object instances
Default/overriding variables
States (categorized and uncategorized)
Incredibly flexible layout engine
Gum exports to human-readable JSON, and can be extended either using MEF or by modifying the source code directly.
Beautiful UI, styled in one line
Gum Forms controls look clean by default, and a single line of code restyles every control with a built-in theme — same UI, completely different look. Pick one of the shipped themes or author your own.
DarkProTheme.Apply(GraphicsDevice); // one line — every control restyled
Unity Package Manager git URL https://github.com/vchelaru/Gum.git#upm, plus SkiaGameRendering (setup)
Built-in
FNA
— (not supported)
Shapes is the recommended way to draw rectangles, circles, and other primitives in Gum. On MonoGame and KNI it ships as a separate add-on package (install it alongside the runtime); on the other platforms it’s built into the runtime.
Sokol is no longer published. Gum.sokol versions up to 2026.9.2.1 remain on NuGet and still work, but receive no further updates: the backend depends on Sokol.NET, which is not actively maintained and whose submodule tree broke git pull for the Gum repo. The source still lives at Runtimes/SokolGum/ and builds against a hand-cloned Sokol.NET — see its README.
Core libraries
Use these to build Gum into your own runtime or renderer.
Library
NuGet
GumCommon: layout, GraphicalUiElement, and Forms logic, with no rendering or input of its own
SkiaSharp: the Skia renderer that Maui, Silk.NET, Stride, and Unity build on
Gum produces general-purpose XML, so it can be used in virtually any C# environment. Beyond the packages listed above, integrations also exist for environments such as FlatRedBall, Meadow, WPF, and Avalonia. For integration details, or for using GumCommon to integrate with your own runtime, see the main documentation: https://docs.flatredball.com/gum/
评论