Runtime/UI/Public/UITheme.h file

UITheme: the engine's theme.

One style sheet (Trinyx/assets/ui/trinyx.ggss): the engine's colours as tokens, layered over the built-in sheet so the built-in widgets use them, plus the styles of the engine's own tools. A game that wants the engine look applies it; a game with its own look layers its own sheet on top, or leaves the theme out.

GGUI::StyleTable styles;
UITheme::Apply(styles);                  // the built-in sheet, with the theme over it
styles.SetSheet("game", ...);            // the game's own, over both
UITheme::Watch(host, styles);            // development: hot reload the theme's file

The sheet is compiled in, so it works without the file.

Namespaces

namespace GGUI
namespace UITheme