> For the complete documentation index, see [llms.txt](https://postica.gitbook.io/binding-system-3/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://postica.gitbook.io/binding-system-3/overview/micro-ui.md).

# Micro UI

A bound field as its own control and a hexagon, with the whole binding one click away.

A bound field normally turns into a [bind row](/binding-system-3/overview/binding.md): source, path, mode, modifiers and the rest, all in the Inspector. That is the right default while you are wiring things up. Once the wiring is done, most of that row is information you no longer read, and an Inspector with dozens of bindings is mostly bind rows.

**Micro UI** draws a bound field the way a component's enabled toggle is drawn: the field keeps its own control, and the only sign of the binding is the hexagon beside its label. The whole binding opens in a popup when you click it.

<figure><img src="https://3048705056-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLUfBXR02sJ5i0MxwYbaV%2Fuploads%2FwqVPXpv4DQ1kQDitO6tH%2FScreenshot%202026-09-29%20at%2013.48.34.png?alt=media&amp;token=0bc1e84e-c550-426d-b9ff-f6b218821215" alt="" width="563"><figcaption><p>Bound fields in Micro UI: each keeps its own control, with the hexagon beside the label, its centre lit green or red</p></figcaption></figure>

It is off by default. Switch it on in **Project Settings ▸ Binding System ▸ Visualization ▸ Micro UI**, or answer yes when the [welcome screen](/binding-system-3/getting-started/welcome-screen.md) asks. Switching it rebuilds the open Inspectors.

{% hint style="info" %}
Micro UI changes how bindings are **drawn**, never how they **work**. The serialized data, the popup and everything in it are the same ones the full rows use, so a project can switch back and forth freely and nothing about any binding changes.
{% endhint %}

## The hexagon

<table><thead><tr><th width="230">Gesture</th><th>What it does</th></tr></thead><tbody><tr><td><strong>Click</strong></td><td>Opens the whole binding in a popup: the same bind row, with every menu, converter, modifier and Live Debug.</td></tr><tr><td><strong>Right click</strong></td><td>A short menu. <strong>Edit Binding…</strong> opens the popup. On a <code>Bind&#x3C;T></code> field, <strong>Unbind</strong> gives the field back its own value. On a <a href="/binding-system-3/overview/proxy-bindings.md">proxy binding</a>, <strong>Unbind (Keep Setup)</strong> is the hexagon toggle and <strong>Disable Binding</strong> removes the binding, exactly as they do on the full row.</td></tr><tr><td><strong>Hover</strong></td><td>The binding in a few lines. It opens with the binding's state and the field it binds; for a <a href="/binding-system-3/overview/proxy-bindings.md">proxy binding</a> that is the field the proxy drives, named from its path the way the Inspector names it (<code>m_Shadows.m_Type</code> reads <em>Shadows › Type</em>). Then what it links: its mode, its source, and what sits between the two (<em>2 modifiers</em>, <em>1 converter</em>). Then which value the field is showing, and whether it is editable. A binding with a problem leads with it, along with what to do about it.</td></tr></tbody></table>

The first item of the right click menu names what the binding needs: **Edit Binding…** when it works, **Fix Binding…** when it is broken, **Set Up Binding…** when it is not finished.

The hexagon says two things at once. Its **ring** says what state the binding is in, in edit mode as well as in play mode:

<table><thead><tr><th width="230">The ring</th><th>What it means</th></tr></thead><tbody><tr><td>Orange</td><td>Bound, and working.</td></tr><tr><td>Red, on a faint red wash</td><td>Not working. The check is the one the <a href="/binding-system-3/project-tools/diagnostics/validator.md">Bindings Validator</a> runs, so a missing member, a missing type or a dead source is caught before you press play.</td></tr><tr><td>An orange outline with a plus</td><td>Not finished: it has no source yet, or no path. Waiting rather than failing.</td></tr><tr><td>With a <strong>⚡</strong> beside it</td><td>A build will replace this binding with generated code. See <a href="/binding-system-3/project-tools/performance/optimized-accessors.md">Build-Time Optimized Accessors</a>.</td></tr></tbody></table>

Its **centre**, the small hexagon inside, says which value the field is showing: green for the binding's, red when the binding produced none. See [The field](#the-field).

## The field

A field bound in Micro UI shows **the value the binding produces**, after its converters and modifiers, rather than the value serialized in it. You see what the binding does without opening it.

<table><thead><tr><th width="230">The binding</th><th>The field</th></tr></thead><tbody><tr><td>Reads, or reads and writes</td><td><strong>Read only while bound.</strong> The binding sets this value, so an edit here would not last.</td></tr><tr><td>Only writes</td><td><strong>Editable.</strong> What you set is what the binding writes to its source.</td></tr></tbody></table>

The field's own serialized value is **never changed** by what is shown. Unbind it and it goes back to exactly what it held.

The small hexagon at the centre of the mark lights up to say which of the two values you are looking at:

<table><thead><tr><th width="230">The centre</th><th>What the field shows</th></tr></thead><tbody><tr><td><strong>Green</strong></td><td>The value the binding produces, right now. It turns green only once the field has actually taken the value.</td></tr><tr><td><strong>Red</strong></td><td>Its own value, because the binding could not produce one just now: its source cannot be found, its variable is not declared in the open scenes, or its pipeline threw.</td></tr><tr><td>As drawn, white on the dark skin</td><td>Its own value, for a reason that is not a fault: the binding only writes, or several objects are selected. A binding that is not finished yet shows the hexagon with a plus instead, which has no centre to light.</td></tr></tbody></table>

Hover the hexagon to read the rest: its tooltip names the value the field is showing and, for a red centre, why the binding produced none. The centre fades in and out rather than switching, and a change of colour is a cross fade. In UI Toolkit Inspectors it also pulses once when it changes colour, so a binding that stops producing a value while you work is noticed. [Performance Mode](/binding-system-3/project-tools/performance/performance-mode.md) switches it at once instead. The light is part of the mark rather than of the field, so a column of bound fields reads as a column of lights, and it looks the same whatever the field is: a number, a colour, an object, a foldout.

To show a value the binding is read through a private copy, so reading it never runs a modifier twice or disturbs one that keeps state, such as a delay or a tween. Modifiers that write somewhere else as they read, such as **Link To** and **Value Logger**, are passed over for the preview. A binding holding any other modifier of that kind keeps the field's own value instead, and the tooltip names the modifier.

## The popup

The popup is the ordinary bind row, so everything else in this documentation applies inside it unchanged. The first time it opens, a short note at its top repeats the gestures above and what the centre means; **Got it** hides it for good.

<figure><img src="https://3048705056-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLUfBXR02sJ5i0MxwYbaV%2Fuploads%2FNSBP5w5HYBd1xbwfJxPG%2FScreenshot%202026-09-29%20at%2013.50.40.png?alt=media&amp;token=f995062b-059a-4e92-aade-4c2c844806dd" alt="" width="563"><figcaption><p>The popup a Micro UI hexagon opens, with its one-time note</p></figcaption></figure>

To have the popup name the object and field it belongs to, turn on [Visualization ▸ Popup Target](/binding-system-3/reference/settings.md#visualization). Beside the field it is one more row; it earns its place when the same popup is opened from somewhere else, such as the [Dependency Graph](/binding-system-3/project-tools/diagnostics/dependency-graph.md#editing-a-binding-from-the-graph).

## What stays on full rows

Some bound fields are drawn in full even with Micro UI on:

<table><thead><tr><th width="270">Field</th><th>Why</th></tr></thead><tbody><tr><td>Fields inside a binding: modifier operands, converter fields, parameters</td><td>They are part of the binding the popup shows. A popup opening popups of its own is the heavy UI this mode avoids.</td></tr><tr><td>A component's enabled toggle, a GameObject's active toggle</td><td>They are already a hexagon alone, and draw as they always did.</td></tr><tr><td>Fields drawn by <a href="/binding-system-3/reference/integrations/odin-inspector.md">Odin Inspector</a>, <a href="/binding-system-3/reference/integrations/unitext.md">UniText</a> and other hosts that lay out their own bind row</td><td>The host decides the layout, so the full row is kept.</td></tr><tr><td>Material properties</td><td>Micro UI applies, but the field keeps showing its own value: the material Inspector does not read serialized properties. The centre therefore never turns green there; it still turns red when the binding produces nothing.</td></tr></tbody></table>

## Several objects selected

The hexagon describes the first selected object, and its tooltip says so when the others are bound differently. With several objects selected the field shows its own values, as Unity does for any multi-object edit, rather than a binding's: each object's binding has a value of its own.

## When to use it

Turn it on once the gestures are familiar and the Inspector is mostly for reading. Keep the full rows while you are learning the system, or for a session of heavy wiring: they show everything at once, and they are what the tutorials show.

Micro UI also makes large Inspectors cheaper to draw, because the bind row is never built for a field drawn this way. For the same problem with full rows kept, see [Performance Mode](/binding-system-3/project-tools/performance/performance-mode.md).

{% hint style="info" %}
**Enable All** and **Disable All** in the Visualization panel leave Micro UI alone, because turning it on draws less, not more.
{% endhint %}

## Related pages

* [The Bind Field](/binding-system-3/overview/binding.md): every control on the full row, which is what the popup shows.
* [Settings](/binding-system-3/reference/settings.md#visualization): the switch, and the other drawing options.
* [Error Visualization](/binding-system-3/project-tools/diagnostics/errors.md): what the full row shows for the problems the red ring reports.
