Get started What is Loom
Get started

What is Loom

Build Unity game UI with HTML, CSS, and Solid, driven by a typed C# bridge.

Loom renders a Vite + Solid app as a fullscreen overlay in your Unity game. Write the screens in HTML, CSS, and Solid. Your C# code supplies the data and handles button clicks through a typed bridge.

Project structure

Your UI app lives beside the Unity assets:

MyGame/
  Assets/
  Packages/
  UI/
    package.json
    vite.config.ts
    generated/       # TypeScript contract generated from C#
    src/
      index.tsx      # App startup and bridge provider
      bridge.ts      # Bridge startup and browser mocks
      App.tsx
      styles.css

The Unity package (onl.snack.loom) includes the runtime, platform plugins, Editor setup commands, and matching @loomgui/bridge and @loomgui/vite-plugin packages. You do not need to build Loom from source.

Unity and the UI

Define one bridge class in C#. Its public properties expose state, methods marked [BridgeAction] handle UI requests, and Event<T> properties send one-shot notifications. Loom generates the TypeScript contract so your Solid components can read bridge.health or call bridge.startGame().

In the Editor, Loom runs Vite for hot reload. A player loads a production UI bundle; Node.js and the dev server do not ship with the game.

Use Loom for menus, HUDs, inventories, and other screen overlays. It does not provide world-space UI, a no-code editor, or a general browser for arbitrary websites. Check Supported platforms for the supported Unity, URP, OS, and tooling versions.

Loom documentation

Search docs

Esc

Type a word or phrase to search the documentation.

Type a word or phrase to search the documentation.