Structs UI

You are being asked to build something, not to play. This skill routes you to the reference material for making an interface that looks like Structs and a client that behaves like one.

Everything below is verified against structs-webapp, the flagship client — not inferred from the API surface. When a doc and that codebase disagree, the codebase wins.

Not this skill? If you want to build structs — the in-game machines — that is structs-building. If you want to use the Desktop MCP tools, that is TOOLS.md.

When to use it

Decide these first

Decision Guidance
UI or client? Visuals → the SUI pages. Chain, events, work → the client pages. Most real projects need both
Scaling model The game renders at scale(2) above 1152px. At 1× SUI is half size. Settle this before writing markup — retrofitting is painful. ui/
Which SUI JS Import each class directly with .js. Never import SUI.js outside a bundler — it has an extensionless import that 404s and takes the module down. ui/runtime
Serving assets SUI’s URLs are root-absolute. From a subpath, every icon vanishes silently. Serve at root or rewrite. ui/gotchas
Extend or build fresh Adding to Structs Desktop is usually cheaper than a new app. client/desktop-extensions

Five rules that make it look like Structs

  1. Nothing is rounded. Hard edges, 1–2px borders, border-radius: 0.
  2. Emphasis is colour and case, never weight. Font weight is 500 everywhere.
  3. Chrome is uppercase 8px ExtremeHazard; content is 16px DirectiveZero.
  4. Colour comes from tokens and is semantic. Teal is you, red is the enemy, amber is warning, gold is third parties. Never a hex literal.
  5. Density over whitespace. This is an operations console, not a landing page.

And one that saves an hour: never invent an icon. There are 67 glyph icons and 29 sprite icons. If the concept has no glyph, use a text label — no emoji, no inline SVG.

Where to go

Interfacedevelop/ui/

Need Page
Colours, spacing, z-index, type tokens
The two icon inventories icons
Markup contracts for every component components
Steppers, tooltips, the drawer runtime
Why the layout is broken gotchas
Keeping a multi-page console coherent patterns
Dashboard, form, menu, HUD, assembled recipes
Runnable starter files examples

Clientdevelop/client/

Need Page
The three-channel architecture index
State, factories, the string-number trap state-and-data
Wallet, signing queue, charge gating actions-and-signing
Proof-of-work: hashing, difficulty, workers work-and-pow
Real-time events and all 26 listeners realtime-grass
PFP compositing, struct art, Lottie rendering-entities
Ambits, tiles, fog of war map
Adding an MCP tool or board page desktop-extensions

Contextrepos (which repository to read, and which wins) · frontend-architecture (the webapp’s MVVM layer) · maintenance (how these pages stay true)

Traps, in the order you will hit them

Before you call it done

Full checklist: ui/patterns.