home / skills / a5c-ai / babysitter / unity-ui-toolkit

This skill helps Unity UI Toolkit developers design runtime and editor interfaces with UXML, USS, and custom visuals for responsive, data-bound UIs.

npx playbooks add skill a5c-ai/babysitter --skill unity-ui-toolkit

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
2.3 KB
---
name: unity-ui-toolkit
description: Unity UI Toolkit skill for runtime UI development, USS styling, UXML templates, and custom visual elements.
allowed-tools: Read, Grep, Write, Bash, Edit, Glob, WebFetch
---

# Unity UI Toolkit Skill

UI Toolkit development for Unity runtime and editor interfaces.

## Overview

This skill provides capabilities for building user interfaces using Unity's UI Toolkit, including UXML templates, USS styling, and custom visual elements.

## Capabilities

### UXML Templates
- Create UXML document structure
- Define reusable templates
- Implement data binding
- Handle template inheritance

### USS Styling
- Write USS stylesheets
- Implement responsive layouts
- Create theme variants
- Handle hover/focus states

### Visual Elements
- Build custom visual elements
- Implement manipulators
- Handle input events
- Create animations

### Data Binding
- Bind to data sources
- Implement MVVM patterns
- Handle list views and collections
- Create reactive UI

## Prerequisites

- Unity 2021.3+
- UI Toolkit package (built-in)

## Usage Patterns

### UXML Template

```xml
<ui:UXML xmlns:ui="UnityEngine.UIElements">
    <ui:VisualElement class="container">
        <ui:Label name="health-label" text="Health: 100" />
        <ui:ProgressBar name="health-bar" value="100" />
        <ui:Button name="heal-button" text="Heal" />
    </ui:VisualElement>
</ui:UXML>
```

### USS Stylesheet

```css
.container {
    flex-direction: column;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.8);
}

#health-bar {
    height: 20px;
    margin: 5px 0;
}

#heal-button:hover {
    background-color: #4CAF50;
}
```

### C# Binding

```csharp
public class HealthUI : MonoBehaviour
{
    [SerializeField] private UIDocument uiDocument;
    private ProgressBar healthBar;

    void Start()
    {
        var root = uiDocument.rootVisualElement;
        healthBar = root.Q<ProgressBar>("health-bar");
        root.Q<Button>("heal-button").clicked += OnHealClicked;
    }

    void OnHealClicked() { /* Handle heal */ }
}
```

## Best Practices

1. Use USS for styling over inline styles
2. Create reusable UXML templates
3. Implement proper event handling
4. Test across resolutions
5. Use UI Builder for visual editing

## References

- [UI Toolkit Documentation](https://docs.unity3d.com/Manual/UIElements.html)

Overview

This skill provides practical tooling and patterns for building runtime and editor UIs with Unity UI Toolkit. It covers UXML templates, USS styling, custom VisualElement components, manipulators, and data binding patterns to create responsive, themeable interfaces. The focus is on reusable templates, clear styling separation, and integrating UI with game logic.

How this skill works

The skill inspects UI requirements and generates UXML structures and USS stylesheets that follow flexbox-like layout rules. It scaffolds custom VisualElement classes and manipulators in C# to handle input, events, and animations. It also outlines data-binding approaches and MVVM-style wiring for list views, reactive updates, and UI document integration at runtime.

When to use it

  • Building runtime HUDs, menus, or in-game panels using UI Toolkit instead of legacy IMGUI.
  • Creating editor tools and inspector windows that need custom controls and consistent styling.
  • Prototyping reusable UXML templates and theme variants for multiple screen resolutions.
  • Implementing interactive VisualElement components with custom input handling or animations.

Best practices

  • Keep styling in USS files and prefer class/ID selectors for reuse over inline styles.
  • Design UXML templates as composable fragments to enable inheritance and reuse.
  • Use UI Builder for rapid layout, then refine generated UXML/USS for performance.
  • Expose C# properties and use binding patterns (or simple event wiring) for reactive updates.
  • Test UI at multiple resolutions and with various scale factors to ensure responsiveness.

Example use cases

  • HUD with health, mana, and stamina using a reusable UXML template and USS themes.
  • Custom list view showing inventory items with data binding and virtualization.
  • Editor window with custom manipulators for dragging and resizing elements.
  • Themed UI skin system with light/dark USS variants applied at runtime.

FAQ

Which Unity versions are supported?

Use Unity 2021.3 or later with the built-in UI Toolkit package for full compatibility.

Should I use USS or inline styles?

Prefer USS for maintainability and reuse. Reserve inline styles for small, dynamic tweaks managed in code.