Skip to content
vchelaruPublic

About

Flexible layout tool for creating UI on any platform

Topics

Resources

Stars

650 stars

Watchers

8 watching

Forks

Latest commit

 

History

8,112 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gum-logo-normal-512
A general purpose UI layout tool built on object-oriented principles.

Join the chat Twitter Activity
Gum UI | AlternativeTo

Gum tool

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
DarkPro theme
DarkPro
Bubblegum theme
Bubblegum
Neon theme
Neon
Retro 95 theme
Retro 95
Forest Glade theme
Forest Glade
Editor theme
Editor

See the full theme gallery and usage →

Tutorials and documentation can be found here:

https://docs.flatredball.com/gum/

Alt

Star History

Gum GitHub stars over time

Open the interactive chart to compare Gum with other MonoGame UI libraries, switch to a log scale, and download the data. It is built and updated daily by kaltinril/gum_stats.

Contributors

Need Help?

The fastest way to get help is to ask in our Discord: https://discord.gg/uQSam6w36d

You can also post an issue: https://github.com/vchelaru/Gum/issues

You can also check the docs: https://docs.flatredball.com/gum/

Installation

Gum's runtimes are published to NuGet. Install the package for your platform. All packages share the same version number, so they stay in sync.

Platform Runtime Shapes
MonoGame NuGet NuGet
KNI NuGet NuGet
raylib NuGet Built-in
Maui NuGet Built-in
Silk.NET NuGet Built-in
Stride NuGet Built-in
Unity (experimental) Unity Package Manager git URL https://github.com/vchelaru/Gum.git#upm, plus SkiaGameRendering (setup) Built-in
FNA NuGet — (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 NuGet
SkiaSharp: the Skia renderer that Maui, Silk.NET, Stride, and Unity build on NuGet

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/

About

Flexible layout tool for creating UI on any platform

Topics

Resources

Stars

650 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages