设计与多媒体

Structs UI

试用

Building interfaces and clients in the Structs universe — dashboards, forms, menus, HUDs, and companion apps using SUI, the design system the game itself is built with. Use when asked to build, style, or extend any Structs UI, or when writing client code that signs transactions, computes proof-of-work, or consumes GRASS events. This is about building software, not playing the game.

它能做什么

Building interfaces and clients in the Structs universe — dashboards, forms, menus, HUDs, and companion apps using SUI, the design system the game itself is built with. Use when asked to build, style, or extend any Structs UI, or when writing client code that signs transactions, computes proof-of-work, or consumes GRASS events. This is about building software, not playing the game.

技能文档

Structs UI: dashboards, forms, and HUDs

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

  • Building a dashboard, form, menu, HUD, or companion app for Structs.
  • Styling anything so it reads as part of the Structs universe.
  • Writing client code that signs transactions, computes proof-of-work, or listens to GRASS.
  • Extending Structs Desktop with a new MCP tool or board page.

Decide these first

DecisionGuidance
UI or client?Visuals → the SUI pages. Chain, events, work → the client pages. Most real projects need both
Scaling modelThe game renders at scale(2) above 1152px. At 1× SUI is half size. Settle this before writing markup — retrofitting is painful. ui/
Which SUI JSImport 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 assetsSUI's URLs are root-absolute. From a subpath, every icon vanishes silently. Serve at root or rewrite. ui/gotchas
Extend or build freshAdding 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/

NeedPage
Colours, spacing, z-index, typetokens
The two icon inventoriesicons
Markup contracts for every componentcomponents
Steppers, tooltips, the drawerruntime
Why the layout is brokengotchas
Keeping a multi-page console coherentpatterns
Dashboard, form, menu, HUD, assembledrecipes
Runnable starter filesexamples

Clientdevelop/client/

NeedPage
The three-channel architectureindex
State, factories, the string-number trapstate-and-data
Wallet, signing queue, charge gatingactions-and-signing
Proof-of-work: hashing, difficulty, workerswork-and-pow
Real-time events and all 26 listenersrealtime-grass
PFP compositing, struct art, Lottierendering-entities
Ambits, tiles, fog of warmap
Adding an MCP tool or board pagedesktop-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

  • Assets don't resolve. Icons and form art vanish with no console error. Check document.fonts.check('16px Structicons') first, always.
  • Everything is centred. body { text-align: center } is inherited by everything; only eleven rules re-assert left. Left-align data surfaces explicitly.
  • A flex item won't shrink. min-width: auto is the default. word-break does nothing about it — you need min-width: 0.
  • Alert severity colours the icon but not the text. The text hard-sets --text-body. Four CSS rules fix it; they are in sui-patch.css.
  • Copy the typos. --from-input-height-content and sui-message-system-model-frame-center are the real names.
  • Two transactions at once gives account sequence mismatch. Serialise — one in flight, one per block. Don't track sequence numbers.
  • Charge gates actions. currentBlock - (lastActionBlock + 1). Hold the queue until the confirmed last-action height has loaded, or the client will think it has infinite charge and empty its queue into one block.
  • Proof-of-work is cheaper if you wait. Difficulty decays with anchor age. Initiate early, complete later.
  • Numbers arrive as strings. Normalise once at the boundary. The reference client is inconsistent about this; don't copy that part.

Before you call it done

  • Every colour from a token, every icon from the real inventories
  • Form controls unclassed inside label.sui-input-text; checkbox container is a ``
  • tabular-nums on numeric cells, min-width: 0 on flex items with long text
  • Empty, loading and error states share one component and look different from each other
  • Sweep for overflow at your narrowest width — jsdom won't catch it, only a browser will
  • Keyboard focus is visible somewhere (SUI removes the default and adds nothing back)
  • Transaction failures reach the operator — the reference client's settled event has no listeners, so failures are silent by default

Full checklist: ui/patterns.

相关技能

带新智能体完成 Structs 从密钥创建到首批建筑上线的入驻流程。

39 次安装

Earning and trading in Structs — selling energy via providers, buying capacity via agreements, allocations, reactor staking economics, the guild Central Bank (mint/redeem/convert), and token transfers. Use when you want to monetize surplus energy, shop for an energy agreement, set provider pricing, stake Alpha into a reactor for capacity, mint/redeem/convert guild tokens, or send tokens. For just keeping your own structs powered, see structs-energy.

端到端管理 Structs 公会——加入、设置权限、审核 UGC、运营中央银行。

36 次安装

Permissions, address management, and delegation in Structs. Use when granting/revoking permissions on objects or addresses, registering additional signing keys, managing multi-address accounts, or setting up minimum-permission delegate agents (mining bot, defense watcher, co-pilot). Covers the full 25-bit permission model and delegation recipes for multi-agent play.

Intelligence gathering in Structs — scouting players, planets, guilds, and the galaxy before you act. Use when assessing a raid target, checking a planet's defenses and Command Ship status, profiling an opponent, surveying the galaxy, or refreshing competitive intel. Persists findings to memory/intel/ so they survive context resets.

通过预编译发布产物或 Go 1.23+ 的 Makefile 构建,在 Linux 或 macOS 上安装 structsd 链端二进制。

47 次安装