← ClaudeAtlas

menu-ui-managerlisted

Architecture blueprint for game menus and screen frameworks: central routers, layered screen stacks, declarative contracts, hub navigation, multi-input focus, pause, transitions, settings, rebinding, modal APIs, UI architecture, performance, accessibility, and menu feel. Use when designing menus, pause screens, settings, UI navigation, screen stacks, or when gamepad focus dies, back buttons misbehave, menus leak input, or UI hurts frame rate.
Firzus/agent-skills · ★ 1 · Web & Frontend · score 72
Install: claude install-skill Firzus/agent-skills
# Menu / UI Manager Build the menu framework of a game: screens, navigation, focus, pause, settings, modals — plus the UI architecture, accessibility, and feel that surround them. References: Genshin (Paimon hub, shortcut wheel), Lyra/CommonUI (the layer-stack reference), Persona 5 (motion identity), Dead Space (diegetic UI), TLOU2/GoW Ragnarök (accessibility). Excluded (separate skills): the HUD layer (`hud-system`), screen business logic (inventory systems, quest data). ## The architecture rule **One central router owns layered screen stacks; screens declare contracts and never navigate or touch global state themselves.** ``` Router: Push / Pop / Replace / PopTo / Clear ← the ONLY navigation API Layers (priority order): Game(HUD) < GameMenu < Menu < Modal Input rule: the highest layer with an active screen gets input; else gameplay. Back rule: B/Esc pops the top of the highest active stack. One implementation. ScreenContract { inputConfig, pausesGame, hidesHUD, backdrop, initialFocus, cachePolicy } // applied by the router on push, reverted on pop ``` Screen lifecycle: **Create → Activate → Deactivate → Destroy** — a covered screen is deactivated, not destroyed; its state (scroll, focus) survives until popped back. ## Reference map | File | Covers | | --- | --- | | [router-focus.md](./router-focus.md) | The router (push/pop, layers, back, the contract diff), multi-input focus management (the always-focused invariant, focus memory, mouse+pad hyb