cfbe052242
- Replace the 14 rem sticky sidebar (and its mobile <select> twin)
with a single sticky icon-popup trigger pinned to the top-right
corner of the report column. Trigger shows `≡` followed by the
currently active section title (CSS-clamped with text-overflow:
ellipsis so long RU titles cannot bloat the button). Click opens
an anchored popover on desktop and a fixed bottom-sheet on
<768.98 px (mirrors lib/active-view/map-toggles.svelte).
- Each menuitem closes the popover and scrolls the matching
`<section id="report-<slug>">` into view. The scroll is deferred
one animation frame so the surface unmount + restoreFocus's
focus restoration on the (sticky) trigger commit first; otherwise
the focus call could cancel the just-started smooth/instant
scroll under desktop Chromium and WebKit.
- Drop the in-report "Back to map" button — the same affordance
lives in the app-shell view menu (tests/e2e/game-shell.spec.ts
covers it).
- Tighten the report grid to a single flex column so the section
body now occupies the full container width.
- i18n: remove game.report.back_to_map and
game.report.toc.mobile_label; add game.report.toc.open and
game.report.toc.close (mirrors game.map.toggles.open/close).
- Tests: Vitest report-toc.test.ts rewritten for the new icon-popup
contract; Playwright report-sections.spec.ts switches the anchor
loop to trigger → menuitem and adds a mobile bottom-sheet
assertion; game-shell-stubs.test.ts no longer asserts the
back-to-map button on the report orchestrator.
- Docs: ui/docs/report-view.md (TOC + i18n + test seams) and
docs/FUNCTIONAL{,_ru}.md §6.4 updated. The stale SvelteKit
Snapshot reference (the route file was removed by the single-URL
app-shell) is dropped at the same time.
Refs: #52 (#43 umbrella).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
UI client — topic docs
Deeper, topic-based documentation for the Galaxy web/cross-platform UI
client, beyond what fits in ../README.md. Each file
describes how one area works (current state); the staged build history
lives in ../PLAN.md, the active web finalization in
../PLAN-finalize.md, and deferred work in
../ROADMAP.md.
Foundation & platform
- design-system.md — the design tokens (colour / spacing / typography), the light/dark theming mechanism, and the component migration conventions.
- a11y.md — the WCAG 2.2 AA approach: axe + keyboard test gates, the shared a11y primitives, coverage by area, and the map-canvas alternative.
- error-state-ux.md — the central error surface
(taxonomy → translated/actionable messages), the shared
ViewStateplaceholder, the selected-planet ring, and bottom-sheet dismissal. - navigation.md — routes, the sidebar tabs, and the state-preservation rules across view/tab switches.
- storage.md — the
KeyStoreandCacheabstractions and their web (IndexedDB) implementations. - game-state.md — decoding the FlatBuffers report into
GameReportand theGameState/ rendered-report stores. - sync-protocol.md — order-draft sync, turn cutoff, conflict handling, and auto-pause.
- events.md — the signed push channel and event handling.
- calc-bridge.md — the
pkg/calc→ WASM → TypeScript bridge, with the live function surface and parity rules. - wasm-toolchain.md — building
ui/coretocore.wasmwith TinyGo. - pwa-strategy.md — the installable/offline PWA: the native service worker, manifest, icons, and the Playwright PWA gate.
- testing.md — the UI test layers (Vitest + Playwright).
Auth & lobby
- auth-flow.md — device keypair, email-code login, and request signing on the client.
- lobby.md — the lobby/game-list UI and membership flows.
Map & active views
- renderer.md — the PixiJS map renderer contract (world model, hit-test, torus / no-wrap).
- order-composer.md — the order tab and the optimistic order overlay.
- report-view.md — the Reports view.
Tools & inspectors
- calculator-ux.md — the ship-class calculator (design + goal-seek + planet build + reach circles + modernization).
- science-designer-ux.md — the science designer.
- ship-group-actions.md — ship-group inspector actions (move, send, upgrade, …).
- cargo-routes-ux.md — cargo-route composition and reach filtering.
Combat & comms
- battle-viewer-ux.md — the battle viewer.
- diplomail-ui.md — the diplomatic-mail view.
Localisation
- i18n.md — the localisation mechanism and translation bundles.