Skip to content
Development
Skill

/ui-uitk

Understands, edits, and generates Unity UI Toolkit UXML and USS with flex layouts. Use for requests involving UI Toolkit, UIElements, UIDocument, PanelSettings, custom elements, or UI runtime binding.

BOOST
From plugin
unity-technologies-skills
1.1k34 skills
Install
$ npx -y skills add unity-technologies/skills --skill ui-uitk --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ui-uitk

Context preview

The summary Claude sees to decide when to auto-load this skill.

Understands, edits, and generates Unity UI Toolkit UXML and USS with flex layouts. Use for requests involving UI Toolkit, UIElements, UIDocument, PanelSettings, custom elements, or UI runtime binding.

SKILL.md

ui-uitk.SKILL.md
name: ui-uitk
description: Understands, edits, and generates Unity UI Toolkit UXML and USS with flex layouts. Use for requests involving UI Toolkit, UIElements, UIDocument, PanelSettings, custom elements, or UI runtime binding.

Understand existing Unity UI Toolkit code, make targeted edits, generate new UXML/USS files, Manipulators, and handle UI runtime binding.

References

Read these as needed:

  • [references/uss-guide.md](references/uss-guide.md) — USS patterns and examples
  • [references/svg-icons.md](references/svg-icons.md) — SVG icon generation (only when generating icons)
  • [references/common-issues.md](references/common-issues.md) — Common mistakes to avoid
  • [references/ui-runtime-binding.md](references/ui-runtime-binding.md) — Patterns and guide to bind data to UI at runtime (only when requested or when bindings are involved)
  • [references/painter2d.md](references/painter2d.md) — Painter2D API for custom visuals: gradients, shapes, arcs, procedural drawing (read this whenever gradients, custom shapes, progress rings, procedural drawing, or any visual beyond what USS can express is needed)
  • [references/pointermanipulator-guide.md](references/pointermanipulator-guide.md) — Patterns and guide to create and use Manipulators (only when requested or when manipulators are involved). This helps with setting up drag and drop features or simple event handling for a Visual Element.
  • [references/custom-elements.md](references/custom-elements.md) — Custom UI Element patterns and guide to create reusable components with UXML, USS, and C#. This helps with creating complex UI components for reuse across the project.

Paths are relative to this skill's folder — read `references/uss-guide.md` directly.

Understanding

When explaining UI structure, use this format:

[ElementType] name="elementName" class="class1 class2"
├── [ChildType] name="childName"
│   └── [GrandchildType]
└── [ChildType] class="another-class"

Editing

**Common edit requests:**

| Request | Action | |---------|--------| | "Change button color" | Edit USS selector for that button | | "Add a label here" | Add element to UXML at specified location | | "Make this bigger" | Edit width/height in USS | | "Hide this element" | Add `display: none` to USS or remove from UXML | | "Rename this element" | Update `name` attribute in UXML |

**Don't over-edit:**

  • Change only what's requested
  • Preserve formatting and structure
  • Don't "improve" unrelated code
  • Don't add comments unless asked
  • For targeted changes, prefer modifying specific elements or selectors over rewriting entire files — but use judgment; if a change touches most of the file, a rewrite may be cleaner
  • Be careful not to accidentally drop existing elements, styles, or references when making edits
  • **When editing USS**, focus on the properties and selectors relevant to the request — avoid unnecessary reorganization, but restructure if the change genuinely requires it

Validation

There is no way to validate UXML or USS from outside the Editor — Unity parses these files on import and reports problems in the Console. Write the files, then have the user check the result.

**Workflow:**

1. Write the complete file to its target path in the project. Do not write partial or draft content — a half-written UXML file is a parse error the moment the Editor picks it up. 2. Ask the user to focus the Unity Editor. That triggers a reimport of the changed assets. 3. Ask them to report anything in the Console. UXML parse errors name the file and line; USS problems appear as warnings about unknown properties or selectors. 4. Fix what they report and repeat from step 1.

**Because feedback costs a user round-trip, get it right the first time:**

  • Finish all files before asking the user to check, so one reimport covers everything

rather than one per file.

  • Re-read `references/uss-guide.md` and `references/common-issues.md` before writing,

rather than after an error comes back.

  • Watch for the mistakes that survive a parse but render wrong — those will not appear

in the Console at all, so the user has to eyeball the UI. `references/common-issues.md` lists them.

Generation

When creating new UI:

**Generate only what is requested:**

| Request | Output | |---------|--------| | USS only | `.uss` file only | | UXML only | `.uxml` file only | | UI screen / menu / panel | `.uss` + `.uxml` only | | "with code" / "with logic" / "functional" | `.uss` + `.uxml` + `.cs` |

**These do NOT imply C#:**

  • "proper buttons" → well-styled Button elements
  • "currency display" → a Label element
  • "working UI" → valid UXML/USS that renders
  • "inventory screen" → visual layout only
  • "inventory system" / "equipment system" / "crafting system" → Ask: "Should items be draggable?" If yes, see `references/pointermanipulator-guide.md` for patterns

**Generation workflow:** 1. **Analyze** — Determine exactly what files are needed. No extras. 2. **Search** — Find existing USS, UXML, assets. Don't assume paths. 3. **Follow project patterns** — Match folder structure and naming conventions. 4. **Reuse** — Check for shared stylesheets. Reuse if appropriate. 5. **Write USS first** — Verify against restrictions below. 6. **Write UXML** — Reference the USS, verify structure. 7. **Write the files out complete** — never partial content; see Validation above for how errors come back and why one round of files beats several. 8. **Scene setup** — Assign PanelSettings if adding UI to scene. 9. **Data binding** — If requested, add C# script with runtime data binding patterns (see `references/ui-runtime-binding.md`). Generate the scriptable object asset if needed. Assign the asset to the UI element root in UXML or via datasource in C#.

**Color, visibility, and specification rules:**

  • **Ensure text is readable by default:** When choosing colors, ensure text contrasts with its background — but respect intentional low-contrast uses (disabled states, placeholder text, deco
Read more
Ships withunity-technologies-skills

A collection of reusable AI agent skills for Unity workflows. Compatible with Claude Code, GitHub Copilot, Cursor, Cline, and 50+ other agents.

Get the whole plugin

Other skills on unity-technologies-skills.