Files
aetherbound-guild/docs/runtime/M46_UI_CONSISTENCY_BASELINE.md
T

62 lines
3.7 KiB
Markdown

# M46 MVP UI Consistency — Baseline Inventory
## Evidence identity
- M46 activation source: `a10b3d2b52ecc12415d32ff0cd4cecf6e9a7c41c`
- Runtime comparison source: `b40e5dd12b2470d3ee47102d2a9c95804684ade7`
- Scope: normal `100%` landscape at `760x360`, `844x390` and `1280x720`,
`zh_CN` and `en`; `130%` is supplemental and non-blocking.
- Existing runtime references: M31 MVP normal-render audit, M41 Market View
audit, M43 Guild View audit, M44 Company View audit and M45 Contract Return
audit. No product/runtime code changed for this baseline.
## Current component inventory
| Area | Current implementation | Baseline finding |
| --- | --- | --- |
| Page boundary | 14 MVP `PageView` classes inherit `ABGPageView` | Shared ownership boundary is present |
| Command buttons | Eight Views use `make_company_button()` / `ABGEntryChrome`; six Views construct local `Button` + `StyleBoxFlat` controls | Semantic variants exist, but visual implementation is split |
| Frames | `initial_company_scene_frame`, `content_scene_frame`, Guild rails, Market/Risk static masters and Battle HUD | Page-family composition is intentionally different; frame primitives are not fully shared |
| Typography | Base `make_label()` uses `NotoSansSC`; Market, Guild, Party, Readiness and Risk each add local size helpers | Font family is shared, scale/spacing tokens can drift |
| Icons | `ABGEntryChrome` draws owned icons; Market/Risk and some legacy paths still use Unicode glyphs or local textures | Icon family is mixed |
| Shared foundation | `ABGUI_Tokens`, `ABGSharedButton`, `P91Widgets` exist | `ABGSharedButton`/tokens are not yet the runtime source for most MVP controls; `P91Widgets` is historical |
| Legacy entry pages | Title, Initial Company, Settings, Dismissal and Equipment retain EntryShell builders | They share some helpers but are not on the same passive-View factory path |
## Page-family review
- **Company / Result / Recovery family**: strongest consistency. Angular
navy/gold/ivory command chrome, shared back/primary/secondary semantics and
matching framed composition.
- **Guild family**: approved illustrated desk, top/bottom rails and circular
destination medallions. The composition is intentionally unique but should
reuse the same semantic icon and state language.
- **Market / Recruit family**: accepted static masters and field-attached
controls. The master is correct, but rounded custom buttons, tiny local text
scales and Unicode badges diverge from the shared command chrome.
- **Party / Readiness family**: shared field/line grammar and palette, with
local command styles and local text-size helpers.
- **Risk family**: parchment/card composition is intentional; command and
status styling still needs to align with the global focus, disabled and icon
grammar.
- **Battle family**: field HUD is intentionally specialized. Result,
Knockout, Reward and Recovery should remain aligned with the Company command
family rather than inherit the live HUD geometry.
## Baseline verdict
The MVP currently has a coherent visual identity but not one reusable UI skin.
The earliest repair boundary is **cross-page command/icon/type consistency**,
not gameplay, routing, Save/Receipt behavior or page composition. M46-B may
therefore add shared presentation primitives; M46-C must migrate only the
repeated controls and preserve all frozen hit rectangles, node names and
explicit intents.
## Frozen invariants
- No gameplay, economy, content, localization semantics, Save/Receipt or route
changes.
- No static-master repaint, asset generation or pixel-art treatment.
- No mass `entry_shell.gd` rewrite or full Router extraction.
- Normal `100%` remains the blocking scope; `130%` remains supplemental.
- `.uid`, `.import` and `prototype_incremental/` remain untouched.