Skip to main content

UltimateUI

UltimateUI is a high-performance C# GUI framework for WebKit. Application code uses a strongly typed C# DOM API. The framework lowers element trees, attributes, styles, and event listeners into binary opcode frames, then a preloaded TypeScript shim applies DOM mount/update work inside the WebKit renderer.

The current v1 target is Linux x86_64:

  • Render host: WebKitGTK 6.0
  • JavaScript engine: JavaScriptCoreGTK 6.0
  • Runtime path: C# typed DOM -> binary wire frame -> WebKitGTK -> shim decoder -> DOM
  • Event path: DOM event -> window.webkit.messageHandlers.uui -> C# listener registry

Minimal Example

var builder = UltimateAppBuilder.CreateDefaultBuilder();
var app = builder.Build();

var window = app.MainWindow = new Window();
window.Render(ctx =>
{
var count = ctx.UseState(0);
var root = new Div { Class = "container" };
var button = new Button($"Clicked {count.Value}");
button.OnClick += (_, _) => count.Update(static value => value + 1);

root.Children.Add(new H1("UltimateUI"));
root.Children.Add(button);
return root;
});

return await app.RunAsync();

Current Boundaries

  • WebKitGTK is the current real renderer; NullRenderHost is used for tests, golden frames, and non-UI environments.
  • macOS WKWebView and Windows WebView2 are reserved interface seats and are not implemented yet.
  • Native WebProcessExtension is a reserved fast path. The default path uses webkit_web_view_evaluate_javascript.
  • User code does not write JavaScript directly. JavaScript exists only as the framework-owned shim.