[UI] Client interface overhaul: layout, hierarchy & design-system consistency #44

Closed
opened 2026-10-19 10:53:44 +02:00 by agent-claude · 2 comments
Collaborator

The current client UI (after #40/#42) has usability and visual-consistency problems. Overhaul the client HUD and menus:

  • Audit layout, hierarchy, density and readability of HUD, toolbar, inspector, panels, login and world map overlay
  • Consolidate the styling into a coherent design system (tokens, consistent panel/button components, spacing scale)
  • Keep the 16-bit SNES aesthetic but make it legible and uncluttered
  • Responsive behaviour for smaller viewports
  • No sim-core/server behaviour changes
The current client UI (after #40/#42) has usability and visual-consistency problems. Overhaul the client HUD and menus: - Audit layout, hierarchy, density and readability of HUD, toolbar, inspector, panels, login and world map overlay - Consolidate the styling into a coherent design system (tokens, consistent panel/button components, spacing scale) - Keep the 16-bit SNES aesthetic but make it legible and uncluttered - Responsive behaviour for smaller viewports - No sim-core/server behaviour changes
Author
Collaborator

Handoff: PR #45 opened (agent-claude)

Completed

  • client/index.html: restructured the HUD (top bar, viewport overlay anchors, architect dock, controls panel) and all modals. Element IDs are unchanged.
  • client/src/styles.css: rewritten as a token-based 16-bit "JRPG window" design system with responsive breakpoints at 1560, 1400, 1200, 1080, 860 and 640px.
  • client/src/ui-icons.ts (new): pixel-art SVG icons, hydrated from data-icon.
  • client/src/main.ts:
    • New central modal manager (Esc, backdrop click, one window at a time).
    • Inspectors diff their markup and use delegated events.
    • Schedule supports drag painting.
    • Strings rendered via innerHTML are now escaped.
    • Inline styles replaced with classes.

Remaining

  • Peer review by agent-gemini, then merge approval from @johnw.
  • Optional follow-up: pixel icons for item glyphs (stockpile, market and wonders still use emoji).

Gotchas

  • renderPawnInspector and renderTileInspector cache their last HTML. Anything that mutates state without changing the rendered markup won't repaint, and that's intentional.
  • Modal open state now lives in openModalId. The old marketModalOpen, allianceModalOpen and similar flags were removed.
  • The Jersey 10 font comes from Google Fonts, with Segoe UI as the fallback.
## Handoff: PR #45 opened (agent-claude) **Completed** - `client/index.html`: restructured the HUD (top bar, viewport overlay anchors, architect dock, controls panel) and all modals. Element IDs are unchanged. - `client/src/styles.css`: rewritten as a token-based 16-bit "JRPG window" design system with responsive breakpoints at 1560, 1400, 1200, 1080, 860 and 640px. - `client/src/ui-icons.ts` (new): pixel-art SVG icons, hydrated from `data-icon`. - `client/src/main.ts`: - New central modal manager (Esc, backdrop click, one window at a time). - Inspectors diff their markup and use delegated events. - Schedule supports drag painting. - Strings rendered via `innerHTML` are now escaped. - Inline styles replaced with classes. **Remaining** - Peer review by agent-gemini, then merge approval from @johnw. - Optional follow-up: pixel icons for item glyphs (stockpile, market and wonders still use emoji). **Gotchas** - `renderPawnInspector` and `renderTileInspector` cache their last HTML. Anything that mutates state without changing the rendered markup won't repaint, and that's intentional. - Modal open state now lives in `openModalId`. The old `marketModalOpen`, `allianceModalOpen` and similar flags were removed. - The Jersey 10 font comes from Google Fonts, with Segoe UI as the fallback.
Author
Collaborator

Merged to main in 6537ab3 (PR #45, approved by @johnw via Claude Code chat) and deployed to https://ricosworld.themels.online — live screenshot verified, no console errors.

Merged to main in 6537ab3 (PR #45, approved by @johnw via Claude Code chat) and deployed to https://ricosworld.themels.online — live screenshot verified, no console errors.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
game-dev/RicosWorld#44
No description provided.