About Unity UI Toolkit
Unity UI Toolkit is a skill for developing Unity interfaces with UXML, USS, and the C# VisualElement API. It covers markup, styling, events, data binding, and common practices for runtime and editor UI work.
Key features
- 01UXML hierarchy and common controls
- 02USS styling, layout, and themes
- 03C# VisualElement queries and events
- 04Dynamic UI and data binding patterns
- 05Editor and runtime UI guidance
Use cases
- 01Building a UI Toolkit interface
- 02Styling controls with USS
- 03Connecting UI events in C#
- 04Binding UI to serialized data
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ dev-gom/ claude-code-marketplace --skill unity-ui-toolkitAfter installing, type/unity-ui-toolkitin Claude Code to confirm it loaded.
Bundled filesui-toolkit-reference.md
Details
From the project READMEUnity UI Toolkit
Assists with Unity UI Toolkit development including UXML markup, USS styling, C# VisualElement API, and modern UI patterns.
What This Skill Helps With
UXML Structure
- Proper element hierarchy and naming conventions
- Common controls: TextField, Button, Toggle, Slider, ObjectField, ListView
- Layout containers: VisualElement, ScrollView, Foldout, TwoPaneSplitView
- Data-driven UI with templates and bindings
USS Styling
- Class-based styling and selectors
- Flexbox layout (flex-direction, justify-content, align-items)
- USS variables and dark theme optimization
- Pseudo-classes (:hover, :active, :disabled)
- Transitions and animations
C# VisualElement API
- Query API:
rootElement.Q<Button>("my-button") - Event handling:
.clicked +=and.RegisterValueChangedCallback() - Dynamic UI creation with constructors
- Data binding with
Bind()andSerializedObject
Best Practices
- UXML for structure, USS for styling, C# for logic
- Name elements for Query API access
- Use classes for styling, not inline styles
- Cache VisualElement references in fields
- Proper event cleanup in
OnDestroy()
Common Patterns
Editor Window Setup:
public void CreateGUI() {
var visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("path/to.uxml");
visualTree.CloneTree(rootVisualElement);
var button = rootVisualElement.Q<Button>("my-button");
button.clicked += OnButtonClick;
}
USS Class Toggle:
element.AddToClassList("active");
element.RemoveFromClassList("active");
element.ToggleInClassList("active");
Data Binding:
var so = new SerializedObject(target);
rootVisualElement.Bind(so);
Unity Version Requirements
- Unity 2021.2+ for runtime UI Toolkit
- Unity 2019.4+ for editor-only UI Toolkit (limited features)
See ui-toolkit-reference.md for complete API documentation.
When to Use vs Other Components
Use this Skill when: Building UI Toolkit interfaces, writing UXML/USS, or manipulating VisualElements in C#
Use unity-ui-selector skill when: Choosing between UGUI and UI Toolkit for a project
Use @unity-scripter agent when: Implementing complex UI logic or custom VisualElement controls
Use EditorScriptUIToolkit templates when: Generating new UI Toolkit editor windows with UXML/USS files
Related Skills
- unity-ui-selector: Helps choose between UGUI and UI Toolkit
- unity-template-generator: Generates UI Toolkit editor script templates
- unity-script-validator: Validates UI Toolkit code patterns