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

45 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M62 共享组件库(唯一出口)
> 状态:**唯一组件库**(2026-09-13,W3/M62-A 冻结)。新页面与新视觉规则
> 只能从这里取组件;页面私有 `StyleBoxFlat`、自绘边框、临时颜色在共享
> 组件存在时禁止使用(`AGENTS.md` UI Restoration Memory)。
> 逐页现状与迁移顺序见 `docs/runtime/M62_PAGE_CONSISTENCY_MATRIX.md`。
## 1. 基础层(所有页面共用)
| 组件 | 路径 | 契约 |
| --- | --- | --- |
| 设计令牌 | `runtime/foundation/ui_tokens.gd`(`ABGUI_Tokens`) | 颜色、字号角色(micro 11 / label 14 / body 16 / heading 22 / title 30 画布单位)、`font_size(role, text_scale)`;文字一律走令牌 |
| 标签/命令/提示工厂 | `runtime/ui/shared/ui_factory.gd` | `label(value, role, text_scale, color)`、`command_button(...)`、`notice_surface(...)`、`attach_icon(...)` |
| 引擎图标 | `runtime/ui/shared/ui_icon.gd` | 全部由引擎绘制;`tone="light"`=深墨(浅底)、`tone="dark"`=象牙白(深底) |
| 九宫格工厂 | `runtime/ui/shared/asset_chrome.gd` | 生成素材的九宫格:按比例边距、角不拉伸 |
| 槽位适配 | `runtime/ui/shared/m52_market_slots.gd` | Market 卡片/账本的比例槽位(固定设计画布坐标) |
## 2. 手绘材质层(现行族)
| 组件 | 路径 | 用途与状态 |
| --- | --- | --- |
| `ABGPageChrome` | `runtime/ui/shared/page_chrome.gd` | **唯一可交互材质出口**:`header_band`、`card`(信息面)、`command_plate`(secondary/primary/disabled/utility)、`dock_band`、`warning_icon`、`pip`。材质分工:木牌=可交互,羊皮纸=信息 |
| `ABGMarketChrome` | `runtime/ui/shared/market_chrome.gd` | Market 专用:`resource`、`ledger_action`、`ledger_cost`、`trait_chip`、`cost_strip`、`compact_label`、`compact_cost` 等;仅 Market 及其模块可用 |
| Market/接口模块 | `runtime/ui/m52/*`(`market_header`、`resource_status_group`、`footer_nav`、`recruit_card`、`candidate_ledger`、`profession_module`、`detail_copy`、`trait_module`、`cost_module`、`identity_module`、`action_dock`、`portrait_module`) | 组件契约见 `docs/runtime/M52_SHARED_UI_RULES.md`(含内框/文字槽实测) |
| Guild 模块 | `runtime/ui/m52/guild_*`(header、resource_status、contract_board、member_card) | M53 引入;**契约待测**(`M62-I01`),W5 Guild 迁移时并入现行族 |
| 墨迹检查 | `runtime/tools/ui_ink_check.gd` | 测试基建:标签槽宽/行高、标签—图标相交、标签—越出承载面;每个页面探针必须接入 |
## 3. 将退役(W5 迁移后删除)
| 旧层 | 路径 | 现状 |
| --- | --- | --- |
| `ABGEntryChrome` | `runtime/entry/entry_chrome.gd` | 8 个视图仍在使用(见矩阵);新页面禁止再用 |
| `P91Widgets` | `runtime/ui/widgets.gd` | 基础期辅助;仅遗留调用 |
| 页面私有 chrome | 各 `*_page_view.gd` 内的 `StyleBoxFlat`/自绘 | 6 个视图仍有;随 W5 逐页替换 |
## 4. 使用规则(新增,强制)
1. 文字与数值一律引擎渲染,字号走 `ABGUI_Tokens.font_size(role, text_scale)`;
画布倍率由视图统一计算(如 `_market_type_scale()`),组件不得各算一套。
2. 承载文字的标签槽必须等于材质的**可见内框**(端帽/饰边之外);异形开口
必须实测(先定目标墨迹带再反推槽位,渲染后实测复核)。
3. 同一组件内禁止"固定 px 与比例混用";文字槽锚在兄弟图标边界之外。
4. 每个槽位必须有最长线上文案(中英)用例,并由墨迹检查覆盖。
5. 页面不得叠加第二层同类边框/徽章;状态色只用共享严重度色对。