UI engine for Unity 6 · URP

Real HTML & CSS,
native to Unity.

Author game UI the way the web does — flexbox, grid, gradients, crisp SDF text — rendered straight through your render pipeline. And because it's real web markup, AI already speaks it fluently: describe a screen, get a polished UI.

Start building ▸
1767 layout tests 0 B steady-state alloc Chrome-audited AI-native authoring
main-menu.html
flexgridSDF text
Play ▸
Why Weva

Everything you'd reach for on the web — in your game.

Real CSS layout

Flexbox, Grid, positioning, the full cascade — implemented to spec and continuously audited against Chrome.

Crisp SDF text

TextMeshPro-quality glyphs at any size and weight, with kerning, fallback chains, and emoji.

Figma → Weva WIP

Pull frames straight from Figma into live HTML/CSS with a fidelity checker that diffs the render.

URP-native render

Gradients, rounded corners, shadows, and backdrop blur composited through your own render pipeline.

Zero-alloc steady state

Pooled boxes and cached cascade keep per-frame allocation at zero. 60fps UI that doesn't stutter the GC.

Data binding & input

Bind C# straight to the DOM, with keyboard, pointer, and gamepad focus navigation out of the box.

1767
layout tests, all green
0 B
GC alloc per frame
100%
C#, no native plugins
URP
first-class render path
Built for the AI era

AI is great at web UI. Now that's your game UI.

Models are astonishingly good at designing beautiful interfaces in HTML/CSS — it's the dialect they know best. Weva renders that exact dialect natively in Unity: prompt a screen, paste it in, hit Play. No translation layer, no scene-graph wiring.

  • Hot-reload your .html / .css
  • One WevaDocument component per screen
  • Preview in your browser — it renders the same in-game
hud.css
.hud {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
}
.health {
  background: linear-gradient(90deg,#16c784,#36e0ff);
  border-radius: 999px;
}

Build your game's UI the way you build the web.

Drop in the package, point a WevaDocument at your HTML, hit Play.