Skip to main content

Reactive Unity UI.
Built in C#.

A reactive UI library for Unity. Compose native uGUI components, bind them to typed state, and let Pine handle updates and cleanup.

One source.
A living interface.

Read state inside a binding. Change it from a callback. Pine tracks the relationship.

Build the counter →
Counter.cs
using Pine;
using UI = Pine.Pine;

var count = UI.Source(0);

using var mount = UI.Mount(() => UI.Column(
UI.Label(() => $"Count: {count.Value}"),
UI.Button("Increment", () => count.Value++)
));

Typed reactivity

Sources, derived values, effects, batching, and contexts. Explicit typed state and scoped bindings.

Native Unity UI

Compose uGUI and TextMeshPro components. Create the Canvas and input host from code.

Owned lifetimes

Scopes own bindings, callbacks, branches, and animations. Dispose a mount to release its UI.

Build something with Pine

Build a reactive game HUDCreate dynamic Unity UI listsBind Unity UI to C# stateAnimate Unity UI with springs