Macro Deck UI
Plugins can bring their own interface
Plugins are not limited to adding actions and variables. Macro Deck has its own declarative UI framework for C#: you describe a view once as a tree of components, and Macro Deck renders it wherever it is needed, as a deck widget, a configuration screen, a folder view or a modal dialog.
var muted = new UiState<bool>(false);
var tile = new UiButton
{
Key = "mute",
Justify = UiComponentJustify.Center,
Background = UiValue.From(() => muted.Value ? "#ff3b30" : "#2c2c2e"),
Events = [UiEventHandler.On(UiComponentEvents.Press, () => muted.Value = !muted.Value)],
Children = [new UiTextRun
{
Key = "label",
Text = UiText.From(() => muted.Value ? "Muted" : "Mute"),
Size = 0.14,
}],
};
var view = new UiView(request.Surface, tile);

Macrogotchi shows how far that goes. This open-source plugin keeps a virtual pet on your deck, with stat bars, a pixel-art sprite drawn from colored cells and six buttons, all in one widget.
Views are built from Macro Deck UI components such as stacks, grids, charts, gauges and sliders rather than embedded web pages, so they fit in with the rest of your deck.






