diff --git a/AGENTS.md b/AGENTS.md
index bfd327a..1bff11f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -55,7 +55,8 @@ Windows 上的 Dota 2 **天梯选将识别**工具:用 GSI 感知选将阶段
| `data/hero_fear_overrides.json` | 英雄→害怕装备手工加减(合并进 item_fears) |
| `data/hero_abilities.json` | 英雄技能与机制汇总(由 `fetch_hero_abilities.py` 生成) |
| `data/hero_item_fears.json` | 英雄怕的装备(规则推导;预览「怕」行) |
-| `web/relations/` | 关系只读预览页静态资源 |
+| `web/relations/` | 关系只读预览页静态资源(`index.html` / `app.js` / `style.css` / `router.js`) |
+| `web/relations/router.js` | Hash 路由:`parseHash` / `serializeHash` / `installRouter` / `syncStateToUrl`;状态↔URL 双向同步(顶层标签 / 英雄 + 子标签 / 物品 / 版本 / 标签筛选 / 搜索) |
| `templates/cdn/` | 全英雄 CDN 模板(需提交或由脚本生成) |
| `templates/roles/` / `templates/modes/` | 位置 / 模式辅助模板 |
| `assets/role_icons/` | Valve 选人筛选角色图标(`filter_*`,品红 chroma 去黑边) |
@@ -131,6 +132,7 @@ python evaluate.py
- 代码标识符、日志、错误信息、注释用**英文**;用户可见摘要可用中文。
- 改匹配阈值或裁切时,用 `evaluate.py` / 标注帧验证,并更新 `CHANGELOG.md` 与必要时的 `DESIGN.md`。
- 改 GSI cfg 时同步核对 `gsi_setup.py` 与 Dota `gamestate_integration` 目录。
+- 改预览路由形态(URL 段 / query 参数 / 默认值)时同步 `web/relations/router.js`(`parseHash` / `serializeHash`)与 `app.js` 的 `applyPatch` 校验;新增可路由状态维度时在两处都加,并在 `syncStateToUrl` 调用点(含搜索 debounce)接好。Hash 路由不命中后端,`serve_relations.py` 无需改;`export_relations_site.py` 的导出文件列表须含 `router.js`。
- 改 `data/heroes.json` 结构时同步 `grid.py`(依赖 `attr` / `name_loc`);`roles` 供 `overlay.py` 使用;`aliases` 为中文口语/俗称(勿与 `name_loc` 重复),重跑 `fetch_cdn_templates.py` 会按 `key` 合并保留;`tags` 为中文定位(核心/辅助/…/幻象,由 `roles`+幻想系推导),仅关系预览筛选用;基础属性/血蓝等数值字段供关系预览详情条,勿塞机制文案。
- 不要重新引入 real 模板双层库、`cdn_penalty`、`build_library.py`。
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 06dffc8..9a3665f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -45,6 +45,21 @@
不再被牵连出滚轮;压缩参数行距使典型技能在高屏零滚轮(无头 Chrome + CDP 实测
`scrollHeight == clientHeight` 验证)。整块宽度上限 1000→1320px、视频 700→820px、
详情列 720→760px。
+- 关系预览顶栏左上角新增 Dota 2 logo +「上分帝」标题(`assets/ui_icons/dota2_logo.png`
+ 透明 emblem),经 `/ui-icon/` 路由与静态导出统一分发;窄屏自动隐藏标题或整组标识,
+ 不影响居中分页布局。
+- 关系预览新增 **Hash 路由**:顶层标签(英雄 / 物品 / 版本)、选中英雄 + 详情子标签
+ (技能 / 核心装备 / 被克装备 / 版本变更)、物品页选中物品、版本页选中版本均同步进
+ URL;英雄页的定位标签筛选与搜索框文本以 query 参数(`?tags=核心,辅助&q=axe`)进
+ URL。形态如 `#/heroes/axe/core`、`#/items/black_king_bar`、`#/patches/7.41`
+ (`#/patches` = 最新版,序列化时省略与最新同名的版本号)。刷新保状态、可分享 /
+ 深度链接、浏览器前进后退还原;搜索框 300ms debounce + `replaceState`(不刷历史栈),
+ 标签筛选用 `replaceState`,其余离散选择用 `pushState`。坏链接(未知英雄 / 物品 /
+ 版本)优雅降级为丢弃该项。新增 `web/relations/router.js`(`parseHash` /
+ `serializeHash` / `installRouter`),`app.js` 在 `main()` 装载并首屏 `applyUrlToState`;
+ `export_relations_site.py` 静态导出列表补入 `router.js`,静态站点深度链接同样可用
+ (可部署 GitHub Pages,无需 rewrite)。Hash 路由不命中后端路径,`serve_relations.py`
+ 零改动。
### Fixed
diff --git a/DESIGN.md b/DESIGN.md
index 5a594dc..3c8880e 100644
--- a/DESIGN.md
+++ b/DESIGN.md
@@ -229,6 +229,14 @@ Dota 2 (-gamestateintegration)
- **展示**:网格左上角青色方标 + 名次 1/2/3(区别于 Plus 右上三角)。
- **预览**:`serve_relations.py` 仿选将网格只读查看;数据手改 `data/relations.json` 或从 xlsx 导入。
另有顶级 **物品** 页(基础/升级,网格↔竖式布局),目录见 `data/item_shop.json`。
+- **预览 Hash 路由**:状态(顶层标签 / 选中英雄 + 详情子标签 / 选中物品 / 选中版本 /
+ 标签筛选 / 搜索)双向同步进 URL(`#/heroes/axe/core?tags=核心&q=axe` 等)。选 Hash
+ 而非 Path 路由:静态导出(GitHub Pages)无需 rewrite、`serve_relations.py` 零改动、
+ 相对路径子站亦可用。写 URL 用 `history.pushState`/`replaceState`(静默,不触发
+ `hashchange`,无回环);前进/后退靠 `hashchange` 监听重 parse + 校验 + render。
+ 搜索 debounce 300ms + `replaceState` 防刷历史栈;坏链接丢弃该项不崩。路由逻辑集中在
+ `web/relations/router.js`,`app.js` 只在 `main()` 装 `installRouter` + 各 state 变更点
+ 调 `syncStateToUrl`。
- **不做**:避用标、Steam 登录页、爬 Dotabuff;关系**不**写入 `data/heroes.json`。
---
diff --git a/README.md b/README.md
index 21a6481..fd78d08 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,8 @@ python fetch_patches.py # 近一年版本日志 + 详情 → data/patches
python serve_relations.py # 只读预览 http://127.0.0.1:8765(改 JSON 后刷新)
```
+预览页带 **Hash 路由**:`#/heroes/axe/core`、`#/items/black_king_bar`、`#/patches/7.41`(`#/patches` = 最新);英雄页的定位标签筛选与搜索框也进 URL(`?tags=核心&q=axe`)。刷新保状态、可分享 / 深度链接、浏览器前进后退还原。`python export_relations_site.py` 导出的静态站点同样支持深度链接(可部署 GitHub Pages)。
+
仿局内选将四列网格(图标来自 [dota2.com/heroes](https://www.dota2.com/heroes) 竖版裁切):点英雄高亮克制 / 被克制 / 搭档,下方显示定位,并以标签页切换 **技能**(可点选魔晶/神杖升级与天赋树)、**核心装备**、**被克装备**、**版本变更**(该英雄近一年各版本改动)。
英雄页上方网格固定高度;点选技能 / 核心装备 / 被克装备后,详情显示在下方(装备含合成,非弹窗)。
diff --git a/assets/ui_icons/dota2_logo.png b/assets/ui_icons/dota2_logo.png
new file mode 100644
index 0000000..01a06f8
Binary files /dev/null and b/assets/ui_icons/dota2_logo.png differ
diff --git a/docs/climperor-web.pen b/docs/climperor-web.pen
index 4820569..b558da6 100644
--- a/docs/climperor-web.pen
+++ b/docs/climperor-web.pen
@@ -3,16 +3,9912 @@
"children": [
{
"type": "frame",
- "id": "bi8Au",
+ "id": "Mhuag",
"x": 0,
"y": 0,
- "name": "Frame",
+ "name": "Heroes · 技能",
"clip": true,
- "width": 800,
- "height": 600,
- "fill": "#FFFFFF",
- "layout": "none"
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "TjlJr",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "pCwiB",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "ZMcJR",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "X5SNP",
+ "name": "TabHeroesLabel",
+ "fill": "$text",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "wEtGa",
+ "name": "TabItems",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "HnSxF",
+ "name": "TabItemsLabel",
+ "fill": "$muted",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "500",
+ "letterSpacing": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "NfNuS",
+ "name": "HeroToolbar",
+ "width": "fill_container",
+ "gap": 10,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "tYaCd",
+ "name": "Filter 全部",
+ "fill": "#5EC8FF24",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF8C",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "UUjlk",
+ "name": "FilterLabel 全部",
+ "fill": "$text",
+ "content": "全部",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Zxhmo",
+ "name": "Filter 核心",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "zfdx0",
+ "name": "FilterLabel 核心",
+ "fill": "$muted",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "HNkKt",
+ "name": "Filter 辅助",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "f6u8y",
+ "name": "FilterLabel 辅助",
+ "fill": "$muted",
+ "content": "辅助",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Frixg",
+ "name": "Filter 爆发",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "gM6kn",
+ "name": "FilterLabel 爆发",
+ "fill": "$muted",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "lSO6Z",
+ "name": "Filter 逃生",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "HrFIN",
+ "name": "FilterLabel 逃生",
+ "fill": "$muted",
+ "content": "逃生",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "asixx",
+ "name": "Filter 推进",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "fqxdA",
+ "name": "FilterLabel 推进",
+ "fill": "$muted",
+ "content": "推进",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "B75zNd",
+ "name": "Filter 先手",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "tnYWG",
+ "name": "FilterLabel 先手",
+ "fill": "$muted",
+ "content": "先手",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "peD9U",
+ "name": "Filter 控制",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Du8ao",
+ "name": "FilterLabel 控制",
+ "fill": "$muted",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "exgWE",
+ "name": "Filter 耐久",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "w6C9Cy",
+ "name": "FilterLabel 耐久",
+ "fill": "$muted",
+ "content": "耐久",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "x8Jkxp",
+ "name": "Filter 幻象",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "HRZjD",
+ "name": "FilterLabel 幻象",
+ "fill": "$muted",
+ "content": "幻象",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "N1PKbb",
+ "name": "Search",
+ "width": 200,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 9,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "LMKGn",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "sy1Qa",
+ "name": "SearchPlaceholder",
+ "fill": "$muted",
+ "content": "搜索英雄或简称",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "j7IY3",
+ "name": "HeroBoard",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 18,
+ "padding": [
+ 10,
+ 16,
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "v28fjF",
+ "name": "Col 力量",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "XuPqa",
+ "name": "Head 力量",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "HtYBe",
+ "name": "AttrDot 力量",
+ "fill": "#E07A7A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "lz8Bf",
+ "name": "AttrLabel 力量",
+ "fill": "$text",
+ "content": "力量",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "wVvnb",
+ "name": "Row 力量 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "A4qQ3W",
+ "name": "HeroCell 力量 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "gXh6a",
+ "name": "HeroCell 力量 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ZIWqY",
+ "name": "HeroCell 力量 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "f3qIz",
+ "name": "HeroCell 力量 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "p2KG0",
+ "name": "HeroCell 力量 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Nkoxd",
+ "name": "Row 力量 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "HNtAd",
+ "name": "HeroCell 力量 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "jXiIB",
+ "name": "HeroCell 力量 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LQsck",
+ "name": "HeroCell 力量 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "nZFY6",
+ "name": "HeroCell 力量 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "aAk61",
+ "name": "HeroCell 力量 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "bN2t2",
+ "name": "Row 力量 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "TdcTQ",
+ "name": "HeroCell 力量 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "A1Rav",
+ "name": "HeroCell 力量 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "hlpDW",
+ "name": "HeroCell 力量 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "c3gl28",
+ "name": "HeroCell 力量 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Xwztk",
+ "name": "HeroCell 力量 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "f0D6j",
+ "name": "Row 力量 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "egmHp",
+ "name": "HeroCell 力量 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "AOM0G",
+ "name": "HeroCell 力量 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "CWsLi",
+ "name": "HeroCell 力量 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "TepAR",
+ "name": "HeroCell 力量 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "OjMkM",
+ "name": "HeroCell 力量 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "azeAF",
+ "name": "Col 敏捷",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "nQYDl",
+ "name": "Head 敏捷",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "gy7UV",
+ "name": "AttrDot 敏捷",
+ "fill": "#5EC87A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "a3HopP",
+ "name": "AttrLabel 敏捷",
+ "fill": "$text",
+ "content": "敏捷",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "YwOQB",
+ "name": "Row 敏捷 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "JkiYF",
+ "name": "HeroCell 敏捷 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "M0olPv",
+ "name": "HeroCell 敏捷 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "CXoL2",
+ "name": "HeroCell 敏捷 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "p0j8yf",
+ "name": "HeroCell 敏捷 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "V4FGEP",
+ "name": "HeroCell 敏捷 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "pvker",
+ "name": "Row 敏捷 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "rvlEy",
+ "name": "HeroCell 敏捷 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Ji2zc",
+ "name": "HeroCell 敏捷 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "YISW7",
+ "name": "HeroCell 敏捷 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ZeWDt",
+ "name": "HeroCell 敏捷 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "x4xrgr",
+ "name": "HeroCell 敏捷 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ofYxX",
+ "name": "Row 敏捷 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "JuVjl",
+ "name": "HeroCell 敏捷 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "KwyMY",
+ "name": "HeroCell 敏捷 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "H2yLXD",
+ "name": "HeroCell 敏捷 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Emhyb",
+ "name": "HeroCell 敏捷 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "U7DVb",
+ "name": "HeroCell 敏捷 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "iuydE",
+ "name": "Row 敏捷 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "lj3VZ",
+ "name": "HeroCell 敏捷 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "srOj2",
+ "name": "HeroCell 敏捷 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ohSsJ",
+ "name": "HeroCell 敏捷 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "BsfaM",
+ "name": "HeroCell 敏捷 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "MrDY6",
+ "name": "HeroCell 敏捷 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "z5eVy",
+ "name": "Col 智力",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Y1Ihc",
+ "name": "Head 智力",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "UZBOw",
+ "name": "AttrDot 智力",
+ "fill": "#6EB6FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "Ca6nm",
+ "name": "AttrLabel 智力",
+ "fill": "$text",
+ "content": "智力",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "D943OU",
+ "name": "Row 智力 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "b3Lr2",
+ "name": "HeroCell 智力 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "U0hEN3",
+ "name": "HeroCell 智力 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "yijjC",
+ "name": "HeroCell 智力 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Z6s6I8",
+ "name": "HeroCell 智力 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "eemVl",
+ "name": "Row 智力 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "czodG",
+ "name": "HeroCell 智力 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "O5TbO",
+ "name": "HeroCell 智力 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#1A3048",
+ "cornerRadius": 2,
+ "stroke": "$accent",
+ "strokeWidth": 2
+ },
+ {
+ "type": "frame",
+ "id": "El1jW",
+ "name": "HeroCell 智力 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "hguK8",
+ "name": "HeroCell 智力 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Euaif",
+ "name": "Row 智力 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "ltQV2",
+ "name": "HeroCell 智力 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "SI0DJ",
+ "name": "HeroCell 智力 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "VjwB9",
+ "name": "HeroCell 智力 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "o6ZFYV",
+ "name": "HeroCell 智力 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ctt8D",
+ "name": "Row 智力 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "hLZOJ",
+ "name": "HeroCell 智力 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "JOEIh",
+ "name": "HeroCell 智力 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "t2qdY",
+ "name": "HeroCell 智力 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "BdQb0",
+ "name": "HeroCell 智力 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Trwxf",
+ "name": "Col 全才",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "SpkFp",
+ "name": "Head 全才",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "r8rWh",
+ "name": "AttrDot 全才",
+ "fill": "#7EC8FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "oE6py",
+ "name": "AttrLabel 全才",
+ "fill": "$text",
+ "content": "全才",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ij5HU",
+ "name": "Row 全才 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "f7XxYn",
+ "name": "HeroCell 全才 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "c8gDm5",
+ "name": "HeroCell 全才 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "EPn7K",
+ "name": "HeroCell 全才 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "h92eZ",
+ "name": "Row 全才 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "FltSX",
+ "name": "HeroCell 全才 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "yJvIk",
+ "name": "HeroCell 全才 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "RnWsY",
+ "name": "HeroCell 全才 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "mVzAJ",
+ "name": "Row 全才 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "TkOHe",
+ "name": "HeroCell 全才 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ZjF2Q",
+ "name": "HeroCell 全才 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "TfiC1",
+ "name": "HeroCell 全才 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "k70LV",
+ "name": "Row 全才 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "I150sf",
+ "name": "HeroCell 全才 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "tAVs0",
+ "name": "HeroCell 全才 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "XLKHO",
+ "name": "HeroCell 全才 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "EiHzl",
+ "name": "DetailPanel",
+ "width": "fill_container",
+ "height": 320,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 16,
+ 16,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "h9m2Mv",
+ "name": "DetailHead",
+ "width": "fill_container",
+ "gap": 12,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "yxXOl",
+ "name": "HeroName",
+ "fill": "$text",
+ "content": "宙斯",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650",
+ "letterSpacing": 0.5
+ },
+ {
+ "type": "frame",
+ "id": "i2mde",
+ "name": "RoleChips",
+ "gap": 6,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Y16zv",
+ "name": "Chip 核心",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "U7cf9",
+ "name": "ChipLabel 核心",
+ "fill": "$text",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "vVeWg",
+ "name": "Chip 爆发",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "hpt50",
+ "name": "ChipLabel 爆发",
+ "fill": "$text",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Aixyu",
+ "name": "Chip 控制",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "wfBPm",
+ "name": "ChipLabel 控制",
+ "fill": "$text",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "xpN22",
+ "name": "DetailTabs",
+ "width": "fill_container",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "children": [
+ {
+ "type": "frame",
+ "id": "jpI2Y",
+ "name": "DTab 技能",
+ "stroke": "$accent",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "NEUt2",
+ "name": "DTabLabel 技能",
+ "fill": "$text",
+ "content": "技能",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "X9qM4l",
+ "name": "DTab 核心装备",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "DisCZ",
+ "name": "DTabLabel 核心装备",
+ "fill": "$muted",
+ "content": "核心装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "e0uu59",
+ "name": "DTab 被克装备",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Q2A2Y",
+ "name": "DTabLabel 被克装备",
+ "fill": "$muted",
+ "content": "被克装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "XeRe5",
+ "name": "SkillsBody",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 18,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Lk9is",
+ "name": "SkillSide",
+ "width": 280,
+ "layout": "vertical",
+ "gap": 12,
+ "children": [
+ {
+ "type": "frame",
+ "id": "SAcOn",
+ "name": "SkillIcons",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "gsOEj",
+ "name": "SkillIcon 0",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#E8EEF7",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "p2W6q1",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 0",
+ "fill": "#2A3A52",
+ "width": 48,
+ "height": 48
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "xkpiH",
+ "name": "SkillIcon 1",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "EVXSk",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 1",
+ "fill": "#2A3A52",
+ "width": 48,
+ "height": 48
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "rHYBa",
+ "name": "SkillIcon 2",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "t2tpy",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 2",
+ "fill": "#2A3A52",
+ "width": 48,
+ "height": 48
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "u5jnY7",
+ "name": "SkillIcon 3",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "DX3J9",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 3",
+ "fill": "#2A3A52",
+ "width": 48,
+ "height": 48
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "HffNx",
+ "name": "SkillIcon 4",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "Snq5c",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 4",
+ "fill": "#1E3A5C",
+ "width": 48,
+ "height": 48
+ },
+ {
+ "type": "frame",
+ "id": "BO3ce",
+ "x": 28,
+ "y": 30,
+ "name": "Aghs 4",
+ "width": 18,
+ "height": 14,
+ "fill": "#3C8CE6",
+ "cornerRadius": 3,
+ "justifyContent": "center",
+ "alignItems": "center"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "h9Kfv",
+ "name": "SkillIcon 5",
+ "width": 48,
+ "height": 48,
+ "fill": "#00000059",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1,
+ "layout": "none",
+ "children": [
+ {
+ "type": "rectangle",
+ "id": "uf3SO",
+ "x": 0,
+ "y": 0,
+ "name": "SkillFill 5",
+ "fill": "#1E3A5C",
+ "width": 48,
+ "height": 48
+ },
+ {
+ "type": "frame",
+ "id": "GWwQS",
+ "x": 28,
+ "y": 30,
+ "name": "Aghs 5",
+ "width": 18,
+ "height": 14,
+ "fill": "#5AB4E6",
+ "cornerRadius": 3,
+ "justifyContent": "center",
+ "alignItems": "center"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Txcd4",
+ "name": "SkillInfo",
+ "width": "fill_container",
+ "fill": "#00000047",
+ "cornerRadius": 8,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "gap": 8,
+ "padding": 12,
+ "children": [
+ {
+ "type": "frame",
+ "id": "SkjlU",
+ "name": "SkillInfoHead",
+ "width": "fill_container",
+ "gap": 12,
+ "children": [
+ {
+ "type": "frame",
+ "id": "c6XJKZ",
+ "name": "BigSkillIcon",
+ "width": 56,
+ "height": 56,
+ "fill": "#2A3A52",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD247",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "GdU7K",
+ "name": "SkillTitles",
+ "width": 180,
+ "layout": "vertical",
+ "gap": 3,
+ "children": [
+ {
+ "type": "text",
+ "id": "w0LR1",
+ "name": "SkillName",
+ "fill": "$text",
+ "content": "弧形闪电",
+ "fontFamily": "Geist",
+ "fontSize": 16,
+ "fontWeight": "650"
+ },
+ {
+ "type": "text",
+ "id": "lp94E",
+ "name": "SkillDispel",
+ "fill": "$bad",
+ "content": "可被驱散:可驱散",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "mahZt",
+ "name": "SkillDesc",
+ "fill": "#E8EEF7E0",
+ "textGrowth": "fixed-width",
+ "width": "fill_container",
+ "content": "释放一道弧形闪电,弹射攻击附近的敌人,造成魔法伤害。",
+ "lineHeight": 1.5,
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "P5hpdU",
+ "name": "TalentTree",
+ "width": "fill_container",
+ "height": "fill_container",
+ "stroke": "$line",
+ "strokeWidth": {
+ "top": 1
+ },
+ "layout": "vertical",
+ "gap": 8,
+ "padding": [
+ 10,
+ 0,
+ 0,
+ 0
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "TS1RA",
+ "name": "TalentLabel",
+ "fill": "$muted",
+ "content": "天赋",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "hdrgc",
+ "name": "Talent 25",
+ "width": "fill_container",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "F4cpKN",
+ "name": "TalentL 25",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "dhQ22",
+ "name": "TalentLT 25",
+ "fill": "#E8EEF7DB",
+ "content": "+40 智力",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "oLPcB",
+ "name": "TalentLv 25",
+ "fill": "$accent",
+ "content": "25",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "650"
+ },
+ {
+ "type": "frame",
+ "id": "kLVCP",
+ "name": "TalentR 25",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "BDYcC",
+ "name": "TalentRT 25",
+ "fill": "#E8EEF7DB",
+ "content": "+1.5% 施法距离",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "sqcnw",
+ "name": "Talent 20",
+ "width": "fill_container",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "LwRsG",
+ "name": "TalentL 20",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "h6imQU",
+ "name": "TalentLT 20",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 A",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "z8YNrN",
+ "name": "TalentLv 20",
+ "fill": "$accent",
+ "content": "20",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "650"
+ },
+ {
+ "type": "frame",
+ "id": "NBBxa",
+ "name": "TalentR 20",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "yhiE4",
+ "name": "TalentRT 20",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 B",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "D9Czk",
+ "name": "Talent 15",
+ "width": "fill_container",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "qUcEG",
+ "name": "TalentL 15",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "XUTBg",
+ "name": "TalentLT 15",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 A",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "alB0x",
+ "name": "TalentLv 15",
+ "fill": "$accent",
+ "content": "15",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "650"
+ },
+ {
+ "type": "frame",
+ "id": "g1ukbb",
+ "name": "TalentR 15",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "BjUQC",
+ "name": "TalentRT 15",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 B",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "GVMPn",
+ "name": "Talent 10",
+ "width": "fill_container",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "YU9sV",
+ "name": "TalentL 10",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Tx2mm",
+ "name": "TalentLT 10",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 A",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "tb5Ja",
+ "name": "TalentLv 10",
+ "fill": "$accent",
+ "content": "10",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "650"
+ },
+ {
+ "type": "frame",
+ "id": "esEDs",
+ "name": "TalentR 10",
+ "width": "fill_container",
+ "fill": "#00000038",
+ "cornerRadius": 6,
+ "stroke": "#8CAAD229",
+ "strokeWidth": 1,
+ "padding": [
+ 6,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "puBvH",
+ "name": "TalentRT 10",
+ "fill": "#E8EEF7DB",
+ "content": "天赋加成 B",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "iybbI",
+ "x": 1520,
+ "y": 0,
+ "name": "Heroes · 核心装备",
+ "clip": true,
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "C02Jf",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "flZDI",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "wBbZI",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "TIFRq",
+ "name": "TabHeroesLabel",
+ "fill": "$text",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "V3YJzt",
+ "name": "TabItems",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "SF9kP",
+ "name": "TabItemsLabel",
+ "fill": "$muted",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "500",
+ "letterSpacing": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "E0iXw",
+ "name": "HeroToolbar",
+ "width": "fill_container",
+ "gap": 10,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "zGtvz",
+ "name": "Filter 全部",
+ "fill": "#5EC8FF24",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF8C",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "GApxC",
+ "name": "FilterLabel 全部",
+ "fill": "$text",
+ "content": "全部",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gfvQ5",
+ "name": "Filter 核心",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "m0u2X",
+ "name": "FilterLabel 核心",
+ "fill": "$muted",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ngErC",
+ "name": "Filter 辅助",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "n5bcD2",
+ "name": "FilterLabel 辅助",
+ "fill": "$muted",
+ "content": "辅助",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "h9NJrY",
+ "name": "Filter 爆发",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "SEZ2T",
+ "name": "FilterLabel 爆发",
+ "fill": "$muted",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "oPSGd",
+ "name": "Filter 逃生",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "v5lun",
+ "name": "FilterLabel 逃生",
+ "fill": "$muted",
+ "content": "逃生",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "PCWDN",
+ "name": "Filter 推进",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Q1Yux",
+ "name": "FilterLabel 推进",
+ "fill": "$muted",
+ "content": "推进",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "KwvRW",
+ "name": "Filter 先手",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "E3G7ia",
+ "name": "FilterLabel 先手",
+ "fill": "$muted",
+ "content": "先手",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "IF7rJ",
+ "name": "Filter 控制",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "AYQXi",
+ "name": "FilterLabel 控制",
+ "fill": "$muted",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "lisYb",
+ "name": "Filter 耐久",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "NZlFt",
+ "name": "FilterLabel 耐久",
+ "fill": "$muted",
+ "content": "耐久",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Izu33",
+ "name": "Filter 幻象",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "v0fzC",
+ "name": "FilterLabel 幻象",
+ "fill": "$muted",
+ "content": "幻象",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "UBg16",
+ "name": "Search",
+ "width": 200,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 9,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "x4ys4g",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "m7KYE",
+ "name": "SearchPlaceholder",
+ "fill": "$muted",
+ "content": "搜索英雄或简称",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "uDikC",
+ "name": "HeroBoard",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 18,
+ "padding": [
+ 10,
+ 16,
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "onZ0O",
+ "name": "Col 力量",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "TUaJa",
+ "name": "Head 力量",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "U8SxdV",
+ "name": "AttrDot 力量",
+ "fill": "#E07A7A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "jTUAI",
+ "name": "AttrLabel 力量",
+ "fill": "$text",
+ "content": "力量",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ifHm1",
+ "name": "Row 力量 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "MtTGs",
+ "name": "HeroCell 力量 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "pebnh",
+ "name": "HeroCell 力量 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "F0f94u",
+ "name": "HeroCell 力量 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "GjLD5",
+ "name": "HeroCell 力量 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "qxswQ",
+ "name": "HeroCell 力量 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "XVKBB",
+ "name": "Row 力量 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "zNDuf",
+ "name": "HeroCell 力量 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Cz1Aw",
+ "name": "HeroCell 力量 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "J0Nqf",
+ "name": "HeroCell 力量 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "NCEza",
+ "name": "HeroCell 力量 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "CILe5",
+ "name": "HeroCell 力量 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ezfnM",
+ "name": "Row 力量 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "o8u4MQ",
+ "name": "HeroCell 力量 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "A3Hw6",
+ "name": "HeroCell 力量 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "BHNf0",
+ "name": "HeroCell 力量 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "EOKTd",
+ "name": "HeroCell 力量 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LhRL0",
+ "name": "HeroCell 力量 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "e6VeS",
+ "name": "Row 力量 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "HOyv9",
+ "name": "HeroCell 力量 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "FPQiL",
+ "name": "HeroCell 力量 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "byRKI",
+ "name": "HeroCell 力量 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "OBeh3",
+ "name": "HeroCell 力量 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "XxoNY",
+ "name": "HeroCell 力量 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "dbIcb",
+ "name": "Col 敏捷",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "i2kWLh",
+ "name": "Head 敏捷",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "xKjFV",
+ "name": "AttrDot 敏捷",
+ "fill": "#5EC87A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "OhpRR",
+ "name": "AttrLabel 敏捷",
+ "fill": "$text",
+ "content": "敏捷",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "RCS1b",
+ "name": "Row 敏捷 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "kRcrQ",
+ "name": "HeroCell 敏捷 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "SodA2",
+ "name": "HeroCell 敏捷 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "qRslg",
+ "name": "HeroCell 敏捷 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "MpX7L",
+ "name": "HeroCell 敏捷 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "wMuCv",
+ "name": "HeroCell 敏捷 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "DQO1Y",
+ "name": "Row 敏捷 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Kfzxi",
+ "name": "HeroCell 敏捷 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "RU4Sd",
+ "name": "HeroCell 敏捷 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "o9YtIi",
+ "name": "HeroCell 敏捷 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Voc4i",
+ "name": "HeroCell 敏捷 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "F8hoT",
+ "name": "HeroCell 敏捷 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "k75QUB",
+ "name": "Row 敏捷 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "VXokR",
+ "name": "HeroCell 敏捷 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "gm42v",
+ "name": "HeroCell 敏捷 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "vhQ2Y",
+ "name": "HeroCell 敏捷 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "aOdRO",
+ "name": "HeroCell 敏捷 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "MXrrM",
+ "name": "HeroCell 敏捷 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "mYYTa",
+ "name": "Row 敏捷 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "EbVZh",
+ "name": "HeroCell 敏捷 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ZxzTk",
+ "name": "HeroCell 敏捷 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "A7BEQu",
+ "name": "HeroCell 敏捷 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Js7cw",
+ "name": "HeroCell 敏捷 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "AsHAx",
+ "name": "HeroCell 敏捷 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "qqLyE",
+ "name": "Col 智力",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Rq3vq",
+ "name": "Head 智力",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "pxD7t",
+ "name": "AttrDot 智力",
+ "fill": "#6EB6FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "LQoEd",
+ "name": "AttrLabel 智力",
+ "fill": "$text",
+ "content": "智力",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "n4zbl",
+ "name": "Row 智力 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "XDL8z",
+ "name": "HeroCell 智力 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "E5akV",
+ "name": "HeroCell 智力 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LnF9B",
+ "name": "HeroCell 智力 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ibj9f",
+ "name": "HeroCell 智力 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "fsARc",
+ "name": "Row 智力 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "AQbmN",
+ "name": "HeroCell 智力 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "n7340",
+ "name": "HeroCell 智力 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#1A3048",
+ "cornerRadius": 2,
+ "stroke": "$accent",
+ "strokeWidth": 2
+ },
+ {
+ "type": "frame",
+ "id": "kjSd2",
+ "name": "HeroCell 智力 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Jjcib",
+ "name": "HeroCell 智力 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "o5oNIs",
+ "name": "Row 智力 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "ZboDt",
+ "name": "HeroCell 智力 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "E6xDag",
+ "name": "HeroCell 智力 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "PpvoI",
+ "name": "HeroCell 智力 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "KMF4S",
+ "name": "HeroCell 智力 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "zYrC1",
+ "name": "Row 智力 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "baNGE",
+ "name": "HeroCell 智力 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "MeZ8V",
+ "name": "HeroCell 智力 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "sAOOs",
+ "name": "HeroCell 智力 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "cAuZ6",
+ "name": "HeroCell 智力 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gRZPy",
+ "name": "Col 全才",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "bJobg",
+ "name": "Head 全才",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "VS1Z1",
+ "name": "AttrDot 全才",
+ "fill": "#7EC8FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "yNHpt",
+ "name": "AttrLabel 全才",
+ "fill": "$text",
+ "content": "全才",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ThdGI",
+ "name": "Row 全才 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "HgaPf",
+ "name": "HeroCell 全才 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "akI6w",
+ "name": "HeroCell 全才 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "zwZtg",
+ "name": "HeroCell 全才 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "R4dde",
+ "name": "Row 全才 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "nsmLZ",
+ "name": "HeroCell 全才 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "r6smIw",
+ "name": "HeroCell 全才 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "tqS13",
+ "name": "HeroCell 全才 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "wkBo4",
+ "name": "Row 全才 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "L2k0OX",
+ "name": "HeroCell 全才 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "kVHVl",
+ "name": "HeroCell 全才 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "DeGSX",
+ "name": "HeroCell 全才 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "LjoBn",
+ "name": "Row 全才 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Ettll",
+ "name": "HeroCell 全才 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "E6e5y0",
+ "name": "HeroCell 全才 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "sjulu",
+ "name": "HeroCell 全才 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "fnAqs",
+ "name": "DetailPanel",
+ "width": "fill_container",
+ "height": 320,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 16,
+ 16,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "PFAFs",
+ "name": "DetailHead",
+ "width": "fill_container",
+ "gap": 12,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "KLOPf",
+ "name": "HeroName",
+ "fill": "$text",
+ "content": "宙斯",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650",
+ "letterSpacing": 0.5
+ },
+ {
+ "type": "frame",
+ "id": "D23uu",
+ "name": "RoleChips",
+ "gap": 6,
+ "children": [
+ {
+ "type": "frame",
+ "id": "M8QWt",
+ "name": "Chip 核心",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "wd4rQ",
+ "name": "ChipLabel 核心",
+ "fill": "$text",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "uHtbQ",
+ "name": "Chip 爆发",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "yaY3T",
+ "name": "ChipLabel 爆发",
+ "fill": "$text",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "NXY9d",
+ "name": "Chip 控制",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "pF92U",
+ "name": "ChipLabel 控制",
+ "fill": "$text",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "SoZOY",
+ "name": "DetailTabs",
+ "width": "fill_container",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "children": [
+ {
+ "type": "frame",
+ "id": "qNcaQ",
+ "name": "DTab 技能",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "b4Be2g",
+ "name": "DTabLabel 技能",
+ "fill": "$muted",
+ "content": "技能",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ltsLo",
+ "name": "DTab 核心装备",
+ "stroke": "$accent",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "l2hpr",
+ "name": "DTabLabel 核心装备",
+ "fill": "$text",
+ "content": "核心装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "vnHKn",
+ "name": "DTab 被克装备",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "tRDSm",
+ "name": "DTabLabel 被克装备",
+ "fill": "$muted",
+ "content": "被克装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "xZYR5",
+ "name": "CoreBody",
+ "width": "fill_container",
+ "height": "fill_container",
+ "layout": "vertical",
+ "gap": 12,
+ "children": [
+ {
+ "type": "text",
+ "id": "RopPO",
+ "name": "CoreHint",
+ "fill": "$muted",
+ "content": "该英雄常用核心成品(OpenDota 热度)",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "ilPma",
+ "name": "CoreIcons",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "GBB2k",
+ "name": "CoreItem 黑皇杖",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "dTVaM",
+ "name": "CoreIcon 黑皇杖",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "jNVfR",
+ "name": "CoreName 黑皇杖",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "黑皇杖",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "MednQ",
+ "name": "CoreItem 阿哈利姆神杖",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "R4ubN",
+ "name": "CoreIcon 阿哈利姆神杖",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "LKHS7",
+ "name": "CoreName 阿哈利姆神杖",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "阿哈利姆神杖",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "h5prw",
+ "name": "CoreItem 闪烁匕首",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "BnkTL",
+ "name": "CoreIcon 闪烁匕首",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "vw8kO",
+ "name": "CoreName 闪烁匕首",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "闪烁匕首",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "o1snP",
+ "name": "CoreItem 原力法杖",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "Z0gLNd",
+ "name": "CoreIcon 原力法杖",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "pkp0U",
+ "name": "CoreName 原力法杖",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "原力法杖",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ec2jE",
+ "name": "CoreItem 以太透镜",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "K96nl",
+ "name": "CoreIcon 以太透镜",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "TB5yx",
+ "name": "CoreName 以太透镜",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "以太透镜",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "tSUcI",
+ "name": "CoreItem 玲珑心",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "A9NTe",
+ "name": "CoreIcon 玲珑心",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "WMHKO",
+ "name": "CoreName 玲珑心",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "玲珑心",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "l8C7v1",
+ "name": "CoreItem 刷新球",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "z445MT",
+ "name": "CoreIcon 刷新球",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "Jb221",
+ "name": "CoreName 刷新球",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "刷新球",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "iPAdY",
+ "name": "CoreItem 紫怨",
+ "width": 64,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "kSlAq",
+ "name": "CoreIcon 紫怨",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "OM7vW",
+ "name": "CoreName 紫怨",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 64,
+ "content": "紫怨",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "wIDWk",
+ "x": 3040,
+ "y": 0,
+ "name": "Heroes · 被克装备",
+ "clip": true,
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "rDxct",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "gesVU",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "Auk8k",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "dAW8N",
+ "name": "TabHeroesLabel",
+ "fill": "$text",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "OBb4s",
+ "name": "TabItems",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "t1V5M",
+ "name": "TabItemsLabel",
+ "fill": "$muted",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "500",
+ "letterSpacing": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "aV7jH",
+ "name": "HeroToolbar",
+ "width": "fill_container",
+ "gap": 10,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "R14pR",
+ "name": "Filter 全部",
+ "fill": "#5EC8FF24",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF8C",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Vzaue",
+ "name": "FilterLabel 全部",
+ "fill": "$text",
+ "content": "全部",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "F1KH9",
+ "name": "Filter 核心",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "pXoyB",
+ "name": "FilterLabel 核心",
+ "fill": "$muted",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "euveM",
+ "name": "Filter 辅助",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "sT2xK",
+ "name": "FilterLabel 辅助",
+ "fill": "$muted",
+ "content": "辅助",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "i2FPl",
+ "name": "Filter 爆发",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "wT8AM",
+ "name": "FilterLabel 爆发",
+ "fill": "$muted",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Hketl",
+ "name": "Filter 逃生",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "tI2Up",
+ "name": "FilterLabel 逃生",
+ "fill": "$muted",
+ "content": "逃生",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "t9UeNB",
+ "name": "Filter 推进",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "zr0Qr",
+ "name": "FilterLabel 推进",
+ "fill": "$muted",
+ "content": "推进",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "RDDOQ",
+ "name": "Filter 先手",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "kiwZd",
+ "name": "FilterLabel 先手",
+ "fill": "$muted",
+ "content": "先手",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Mu17u",
+ "name": "Filter 控制",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "v2AQG",
+ "name": "FilterLabel 控制",
+ "fill": "$muted",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gRlbf",
+ "name": "Filter 耐久",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "QHCRU",
+ "name": "FilterLabel 耐久",
+ "fill": "$muted",
+ "content": "耐久",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "GZ8fO",
+ "name": "Filter 幻象",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "Z5AWg",
+ "name": "FilterLabel 幻象",
+ "fill": "$muted",
+ "content": "幻象",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "n6yF7",
+ "name": "Search",
+ "width": 200,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 9,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "pbPmt",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "Sve6G",
+ "name": "SearchPlaceholder",
+ "fill": "$muted",
+ "content": "搜索英雄或简称",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "UFd7B",
+ "name": "HeroBoard",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 18,
+ "padding": [
+ 10,
+ 16,
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "AJ5mX",
+ "name": "Col 力量",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "o6yzLj",
+ "name": "Head 力量",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "YtrYh",
+ "name": "AttrDot 力量",
+ "fill": "#E07A7A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "b3mme2",
+ "name": "AttrLabel 力量",
+ "fill": "$text",
+ "content": "力量",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "KOlS0",
+ "name": "Row 力量 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "EJG4s",
+ "name": "HeroCell 力量 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "xojQf",
+ "name": "HeroCell 力量 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "fjIBM",
+ "name": "HeroCell 力量 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "NfSHd",
+ "name": "HeroCell 力量 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "k1fZL",
+ "name": "HeroCell 力量 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "EQ2tP",
+ "name": "Row 力量 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "A1SmYh",
+ "name": "HeroCell 力量 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "JgAAD",
+ "name": "HeroCell 力量 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "O8Z9pw",
+ "name": "HeroCell 力量 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Nbkpa",
+ "name": "HeroCell 力量 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Ey0o2",
+ "name": "HeroCell 力量 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "iIl2J",
+ "name": "Row 力量 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "puBmN",
+ "name": "HeroCell 力量 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "A3OqCl",
+ "name": "HeroCell 力量 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "p7Q31F",
+ "name": "HeroCell 力量 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "H9KrUZ",
+ "name": "HeroCell 力量 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "vb3Ig",
+ "name": "HeroCell 力量 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "bJnr6",
+ "name": "Row 力量 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "WAAFG",
+ "name": "HeroCell 力量 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "J4amD",
+ "name": "HeroCell 力量 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "CizQL",
+ "name": "HeroCell 力量 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "UcSvO",
+ "name": "HeroCell 力量 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "PGd3O",
+ "name": "HeroCell 力量 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Tqcbh",
+ "name": "Col 敏捷",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "FSIu5",
+ "name": "Head 敏捷",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "b2aG7",
+ "name": "AttrDot 敏捷",
+ "fill": "#5EC87A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "r5Itb",
+ "name": "AttrLabel 敏捷",
+ "fill": "$text",
+ "content": "敏捷",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "m7hvI",
+ "name": "Row 敏捷 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Vmt5v",
+ "name": "HeroCell 敏捷 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Uvq1i",
+ "name": "HeroCell 敏捷 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "SU9ge",
+ "name": "HeroCell 敏捷 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "nQYA6",
+ "name": "HeroCell 敏捷 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "W0CUH",
+ "name": "HeroCell 敏捷 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "kLfSg",
+ "name": "Row 敏捷 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "AMmZH",
+ "name": "HeroCell 敏捷 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "gdaB1",
+ "name": "HeroCell 敏捷 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ooOc0",
+ "name": "HeroCell 敏捷 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "gduS9",
+ "name": "HeroCell 敏捷 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "GFDVY",
+ "name": "HeroCell 敏捷 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "CWk9I",
+ "name": "Row 敏捷 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "x8tPVQ",
+ "name": "HeroCell 敏捷 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "p1S27",
+ "name": "HeroCell 敏捷 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "nDZVR",
+ "name": "HeroCell 敏捷 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "TTv4m",
+ "name": "HeroCell 敏捷 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "N3r8DO",
+ "name": "HeroCell 敏捷 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "XxUtn",
+ "name": "Row 敏捷 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "sgJGS",
+ "name": "HeroCell 敏捷 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LgeLR",
+ "name": "HeroCell 敏捷 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "mi7Ap",
+ "name": "HeroCell 敏捷 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "lQIjq",
+ "name": "HeroCell 敏捷 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "r9Mtk",
+ "name": "HeroCell 敏捷 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "qLPoN",
+ "name": "Col 智力",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "qJ9lI",
+ "name": "Head 智力",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "yAqBi",
+ "name": "AttrDot 智力",
+ "fill": "#6EB6FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "j3ytq",
+ "name": "AttrLabel 智力",
+ "fill": "$text",
+ "content": "智力",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "sOtFH",
+ "name": "Row 智力 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "thHQY",
+ "name": "HeroCell 智力 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "jI1kO",
+ "name": "HeroCell 智力 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Y6DFN",
+ "name": "HeroCell 智力 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "qowwH",
+ "name": "HeroCell 智力 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "STidN",
+ "name": "Row 智力 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "gXM79",
+ "name": "HeroCell 智力 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "VhKyk",
+ "name": "HeroCell 智力 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#1A3048",
+ "cornerRadius": 2,
+ "stroke": "$accent",
+ "strokeWidth": 2
+ },
+ {
+ "type": "frame",
+ "id": "z6iea",
+ "name": "HeroCell 智力 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Z60Vsk",
+ "name": "HeroCell 智力 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "djJHz",
+ "name": "Row 智力 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "DnUgw",
+ "name": "HeroCell 智力 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "eQK4W",
+ "name": "HeroCell 智力 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "BEdUO",
+ "name": "HeroCell 智力 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "W5gJl",
+ "name": "HeroCell 智力 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Pg0BI",
+ "name": "Row 智力 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "xOnp0",
+ "name": "HeroCell 智力 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "aanD9",
+ "name": "HeroCell 智力 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "O38RR",
+ "name": "HeroCell 智力 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "CNQGZ",
+ "name": "HeroCell 智力 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gmJpT",
+ "name": "Col 全才",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "jySCm",
+ "name": "Head 全才",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "oe4RB",
+ "name": "AttrDot 全才",
+ "fill": "#7EC8FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "L1Yykp",
+ "name": "AttrLabel 全才",
+ "fill": "$text",
+ "content": "全才",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "p1sxn",
+ "name": "Row 全才 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Mebnf",
+ "name": "HeroCell 全才 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "G3MBS",
+ "name": "HeroCell 全才 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "XAgua",
+ "name": "HeroCell 全才 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "VKTWy",
+ "name": "Row 全才 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "NhAQU",
+ "name": "HeroCell 全才 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "UzSDP",
+ "name": "HeroCell 全才 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "nKRZv",
+ "name": "HeroCell 全才 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "fiKfk",
+ "name": "Row 全才 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "nlzPR",
+ "name": "HeroCell 全才 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "FwZ9N",
+ "name": "HeroCell 全才 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "fpZqO",
+ "name": "HeroCell 全才 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gGwOo",
+ "name": "Row 全才 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "o12VD1",
+ "name": "HeroCell 全才 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "DAtqU",
+ "name": "HeroCell 全才 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "DTKl1",
+ "name": "HeroCell 全才 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "XQezc",
+ "name": "DetailPanel",
+ "width": "fill_container",
+ "height": 320,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 16,
+ 16,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "aPHJk",
+ "name": "DetailHead",
+ "width": "fill_container",
+ "gap": 12,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "vHe18",
+ "name": "HeroName",
+ "fill": "$text",
+ "content": "宙斯",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650",
+ "letterSpacing": 0.5
+ },
+ {
+ "type": "frame",
+ "id": "k51haB",
+ "name": "RoleChips",
+ "gap": 6,
+ "children": [
+ {
+ "type": "frame",
+ "id": "jI191",
+ "name": "Chip 核心",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "TmDCb",
+ "name": "ChipLabel 核心",
+ "fill": "$text",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Ur0N9",
+ "name": "Chip 爆发",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "p5iUyX",
+ "name": "ChipLabel 爆发",
+ "fill": "$text",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "AcmNv",
+ "name": "Chip 控制",
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF59",
+ "strokeWidth": 1,
+ "padding": [
+ 3,
+ 10
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "E0Tbmc",
+ "name": "ChipLabel 控制",
+ "fill": "$text",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "hG7fc",
+ "name": "DetailTabs",
+ "width": "fill_container",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "children": [
+ {
+ "type": "frame",
+ "id": "dMzRE",
+ "name": "DTab 技能",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "sn3nn",
+ "name": "DTabLabel 技能",
+ "fill": "$muted",
+ "content": "技能",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "NA4Nz",
+ "name": "DTab 核心装备",
+ "stroke": "#00000000",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "M21WIN",
+ "name": "DTabLabel 核心装备",
+ "fill": "$muted",
+ "content": "核心装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "500",
+ "letterSpacing": 0.5
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "aY73o",
+ "name": "DTab 被克装备",
+ "stroke": "$accent",
+ "strokeWidth": {
+ "bottom": 2
+ },
+ "padding": [
+ 8,
+ 18
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "FkhKe",
+ "name": "DTabLabel 被克装备",
+ "fill": "$text",
+ "content": "被克装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 0.5
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "HrlcR",
+ "name": "FearsBody",
+ "width": "fill_container",
+ "height": "fill_container",
+ "layout": "vertical",
+ "gap": 12,
+ "children": [
+ {
+ "type": "text",
+ "id": "qmEl0",
+ "name": "FearsHint",
+ "fill": "$muted",
+ "content": "对局中需重点防范的克制装备",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "qvMDu",
+ "name": "FearList",
+ "gap": 10,
+ "children": [
+ {
+ "type": "frame",
+ "id": "QWTM8",
+ "name": "Fear 黑皇杖",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "m1RZCN",
+ "name": "FearIcon 黑皇杖",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "sXHth",
+ "name": "FearName 黑皇杖",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "黑皇杖",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "IaHPe",
+ "name": "FearReason 黑皇杖",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "减益免疫",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "n87JR",
+ "name": "Fear 林肯法球",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "DXiy5",
+ "name": "FearIcon 林肯法球",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "MmNj6",
+ "name": "FearName 林肯法球",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "林肯法球",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "dpD86",
+ "name": "FearReason 林肯法球",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "格挡指向技能",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "LReod",
+ "name": "Fear 莲花罩",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "zkdJ7",
+ "name": "FearIcon 莲花罩",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "v6adwV",
+ "name": "FearName 莲花罩",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "莲花罩",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "yYmUt",
+ "name": "FearReason 莲花罩",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "反弹技能",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "nNsZX",
+ "name": "Fear 净魂之刃",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "eTJTG",
+ "name": "FearIcon 净魂之刃",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "DfDn9",
+ "name": "FearName 净魂之刃",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "净魂之刃",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "S2qGwl",
+ "name": "FearReason 净魂之刃",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "驱散增益",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Turoq",
+ "name": "Fear 散华",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "U5yrZ",
+ "name": "FearIcon 散华",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "B5ASdT",
+ "name": "FearName 散华",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "散华",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "gwhIv",
+ "name": "FearReason 散华",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "状态抗性",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "WZQVC",
+ "name": "Fear 幻影斧",
+ "width": 96,
+ "layout": "vertical",
+ "gap": 6,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "N6BoWM",
+ "name": "FearIcon 幻影斧",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#E07A2F99",
+ "strokeWidth": 1
+ },
+ {
+ "type": "text",
+ "id": "JBWRf",
+ "name": "FearName 幻影斧",
+ "fill": "$text",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "幻影斧",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 12,
+ "fontWeight": "600"
+ },
+ {
+ "type": "text",
+ "id": "QkXj3",
+ "name": "FearReason 幻影斧",
+ "fill": "$bad",
+ "textGrowth": "fixed-width",
+ "width": 96,
+ "content": "规避单体",
+ "textAlign": "center",
+ "fontFamily": "Geist Mono",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ONn5f",
+ "x": 0,
+ "y": 1040,
+ "name": "Heroes · 未选中",
+ "clip": true,
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "zwQFg",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "stroke": "$line",
+ "strokeWidth": {
+ "bottom": 1
+ },
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "vN8yF",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "hwoYb",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "cYDtd",
+ "name": "TabHeroesLabel",
+ "fill": "$text",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "apyhR",
+ "name": "TabItems",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "iQS5C",
+ "name": "TabItemsLabel",
+ "fill": "$muted",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "500",
+ "letterSpacing": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "niCx8",
+ "name": "HeroToolbar",
+ "width": "fill_container",
+ "gap": 10,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "WjL7p",
+ "name": "Filter 全部",
+ "fill": "#5EC8FF24",
+ "cornerRadius": 999,
+ "stroke": "#5EC8FF8C",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "SfUBS",
+ "name": "FilterLabel 全部",
+ "fill": "$text",
+ "content": "全部",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "V6og6p",
+ "name": "Filter 核心",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "RApKI",
+ "name": "FilterLabel 核心",
+ "fill": "$muted",
+ "content": "核心",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "JwslN",
+ "name": "Filter 辅助",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "PSAP0",
+ "name": "FilterLabel 辅助",
+ "fill": "$muted",
+ "content": "辅助",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "g9x0F",
+ "name": "Filter 爆发",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "G723nJ",
+ "name": "FilterLabel 爆发",
+ "fill": "$muted",
+ "content": "爆发",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "FyrYX",
+ "name": "Filter 逃生",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "y4RJ6y",
+ "name": "FilterLabel 逃生",
+ "fill": "$muted",
+ "content": "逃生",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "vvkFw",
+ "name": "Filter 推进",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "patW4",
+ "name": "FilterLabel 推进",
+ "fill": "$muted",
+ "content": "推进",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "lcvaY",
+ "name": "Filter 先手",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "jBTWm",
+ "name": "FilterLabel 先手",
+ "fill": "$muted",
+ "content": "先手",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "T0MDe",
+ "name": "Filter 控制",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "GfXHu",
+ "name": "FilterLabel 控制",
+ "fill": "$muted",
+ "content": "控制",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Ep3js",
+ "name": "Filter 耐久",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "ei6kp",
+ "name": "FilterLabel 耐久",
+ "fill": "$muted",
+ "content": "耐久",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "rql2n",
+ "name": "Filter 幻象",
+ "fill": "#FFFFFF0A",
+ "cornerRadius": 999,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "iCgmc",
+ "name": "FilterLabel 幻象",
+ "fill": "$muted",
+ "content": "幻象",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "500"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "SgKnz",
+ "name": "Search",
+ "width": 200,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 9,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "l4YmWm",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "K0bcSr",
+ "name": "SearchPlaceholder",
+ "fill": "$muted",
+ "content": "搜索英雄或简称",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "gQKqJ",
+ "name": "HeroBoard",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 18,
+ "padding": [
+ 10,
+ 16,
+ 8,
+ 16
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "H4H2cf",
+ "name": "Col 力量",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "USRDP",
+ "name": "Head 力量",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "X1vub",
+ "name": "AttrDot 力量",
+ "fill": "#E07A7A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "j92uOc",
+ "name": "AttrLabel 力量",
+ "fill": "$text",
+ "content": "力量",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "xIIqP",
+ "name": "Row 力量 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "wF1o2",
+ "name": "HeroCell 力量 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "mSnC3",
+ "name": "HeroCell 力量 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "y1dnXO",
+ "name": "HeroCell 力量 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "FjSGo",
+ "name": "HeroCell 力量 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "JYrp0",
+ "name": "HeroCell 力量 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "fTqn8",
+ "name": "Row 力量 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "wniNK",
+ "name": "HeroCell 力量 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Qov8k",
+ "name": "HeroCell 力量 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LK4yF",
+ "name": "HeroCell 力量 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Uphha",
+ "name": "HeroCell 力量 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Vk46z",
+ "name": "HeroCell 力量 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "X5Wyn1",
+ "name": "Row 力量 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "PLtTD",
+ "name": "HeroCell 力量 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Y6CaYr",
+ "name": "HeroCell 力量 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "QEGjp",
+ "name": "HeroCell 力量 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "mM26d",
+ "name": "HeroCell 力量 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "igwKJ",
+ "name": "HeroCell 力量 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "etfFu",
+ "name": "Row 力量 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "k2a9E7",
+ "name": "HeroCell 力量 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "HNiJ9",
+ "name": "HeroCell 力量 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "XZppd",
+ "name": "HeroCell 力量 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "hLGQz",
+ "name": "HeroCell 力量 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "M0pJk5",
+ "name": "HeroCell 力量 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "g363a",
+ "name": "Col 敏捷",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "mvQ00",
+ "name": "Head 敏捷",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "yw42H",
+ "name": "AttrDot 敏捷",
+ "fill": "#5EC87A",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "IsDQ0",
+ "name": "AttrLabel 敏捷",
+ "fill": "$text",
+ "content": "敏捷",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "R3ZICX",
+ "name": "Row 敏捷 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "UktyC",
+ "name": "HeroCell 敏捷 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "q7SO1",
+ "name": "HeroCell 敏捷 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "aedSu",
+ "name": "HeroCell 敏捷 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "QCQZr",
+ "name": "HeroCell 敏捷 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "PCKzs",
+ "name": "HeroCell 敏捷 0-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Z9cArK",
+ "name": "Row 敏捷 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "fGNZe",
+ "name": "HeroCell 敏捷 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "YJfwc",
+ "name": "HeroCell 敏捷 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "k40eU9",
+ "name": "HeroCell 敏捷 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "A4CGu",
+ "name": "HeroCell 敏捷 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "t8f20",
+ "name": "HeroCell 敏捷 1-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "AjodG",
+ "name": "Row 敏捷 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "F4kS8",
+ "name": "HeroCell 敏捷 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "rDH5t",
+ "name": "HeroCell 敏捷 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LnuCC",
+ "name": "HeroCell 敏捷 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "K6n9Es",
+ "name": "HeroCell 敏捷 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "bg55B",
+ "name": "HeroCell 敏捷 2-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "dyMFx",
+ "name": "Row 敏捷 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "WWWjb",
+ "name": "HeroCell 敏捷 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Ec9Tb",
+ "name": "HeroCell 敏捷 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "En3iY",
+ "name": "HeroCell 敏捷 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Wtsl5",
+ "name": "HeroCell 敏捷 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "jmRMr",
+ "name": "HeroCell 敏捷 3-4",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Zsiei",
+ "name": "Col 智力",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "knBEQ",
+ "name": "Head 智力",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "azjz2",
+ "name": "AttrDot 智力",
+ "fill": "#6EB6FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "f3BvB",
+ "name": "AttrLabel 智力",
+ "fill": "$text",
+ "content": "智力",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "HZSqM",
+ "name": "Row 智力 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "J6CnuA",
+ "name": "HeroCell 智力 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "i9tg5l",
+ "name": "HeroCell 智力 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "QaWD7",
+ "name": "HeroCell 智力 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "fqifF",
+ "name": "HeroCell 智力 0-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "cYOwg",
+ "name": "Row 智力 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "bdnk7",
+ "name": "HeroCell 智力 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "rXmKk",
+ "name": "HeroCell 智力 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#1A3048",
+ "cornerRadius": 2,
+ "stroke": "$accent",
+ "strokeWidth": 2
+ },
+ {
+ "type": "frame",
+ "id": "OllY7",
+ "name": "HeroCell 智力 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "YDORd",
+ "name": "HeroCell 智力 1-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "E59OXn",
+ "name": "Row 智力 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Xm9WM",
+ "name": "HeroCell 智力 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "LWnCS",
+ "name": "HeroCell 智力 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "L27hs",
+ "name": "HeroCell 智力 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "PNH7I",
+ "name": "HeroCell 智力 2-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ORV0B",
+ "name": "Row 智力 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "E0tab",
+ "name": "HeroCell 智力 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "u5GvN",
+ "name": "HeroCell 智力 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "eXutg",
+ "name": "HeroCell 智力 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "garJY",
+ "name": "HeroCell 智力 3-3",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "nyLms",
+ "name": "Col 全才",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "frame",
+ "id": "d00d0A",
+ "name": "Head 全才",
+ "gap": 8,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "ellipse",
+ "id": "l8TGAF",
+ "name": "AttrDot 全才",
+ "fill": "#7EC8FF",
+ "width": 14,
+ "height": 14
+ },
+ {
+ "type": "text",
+ "id": "QHZBV",
+ "name": "AttrLabel 全才",
+ "fill": "$text",
+ "content": "全才",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600",
+ "letterSpacing": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "SIDqS",
+ "name": "Row 全才 0",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "rJYQr",
+ "name": "HeroCell 全才 0-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "Grs7A",
+ "name": "HeroCell 全才 0-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "qCzoi",
+ "name": "HeroCell 全才 0-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "BOLEP",
+ "name": "Row 全才 1",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "uzeEB",
+ "name": "HeroCell 全才 1-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "ceBld",
+ "name": "HeroCell 全才 1-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "qysZx",
+ "name": "HeroCell 全才 1-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "S0QZHZ",
+ "name": "Row 全才 2",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "tmGPd",
+ "name": "HeroCell 全才 2-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "MrvDy",
+ "name": "HeroCell 全才 2-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "O3DmZS",
+ "name": "HeroCell 全才 2-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "lzTUE",
+ "name": "Row 全才 3",
+ "width": "fill_container",
+ "gap": 3,
+ "children": [
+ {
+ "type": "frame",
+ "id": "E2p4n",
+ "name": "HeroCell 全才 3-0",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "UtQPw",
+ "name": "HeroCell 全才 3-1",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ },
+ {
+ "type": "frame",
+ "id": "gfJ5F",
+ "name": "HeroCell 全才 3-2",
+ "width": "fill_container",
+ "height": 48,
+ "fill": "#0A0E14",
+ "cornerRadius": 2,
+ "stroke": "#00000000"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "RvRLx",
+ "name": "DetailPanel",
+ "width": "fill_container",
+ "height": 120,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "padding": [
+ 20,
+ 16
+ ],
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "JAi0Q",
+ "name": "EmptyHint",
+ "fill": "$muted",
+ "content": "点击英雄查看定位、技能、核心装备与被克装备",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "normal",
+ "letterSpacing": 0.5
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "QkC0T",
+ "x": -500,
+ "y": 0,
+ "name": "设计说明",
+ "width": 420,
+ "height": 280,
+ "fill": "#111822",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "layout": "vertical",
+ "gap": 10,
+ "padding": 20,
+ "children": [
+ {
+ "type": "text",
+ "id": "ebEBq",
+ "name": "NoteTitle",
+ "fill": "$text",
+ "content": "上分帝 · Web 预览稿",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650"
+ },
+ {
+ "type": "text",
+ "id": "rPiNh",
+ "name": "NoteBody",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 380,
+ "content": "屏幕清单:\n1) Heroes·技能 / 核心装备 / 被克装备 — 底部分页\n2) Heroes·未选中 — 空状态骨架\n3) Items·网格 / 竖式 — 布局 toggle\n\n底部详情:名称+定位固定;内容区三标签切换。\n被克装备展示图标+名称+短理由。\n确认后按此稿改 web/relations 实现。",
+ "lineHeight": 1.55,
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "CCijS",
+ "x": 1520,
+ "y": 2080,
+ "name": "Items · 竖式",
+ "clip": true,
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "yD3s3",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "EPme0",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "Y2PB8v",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "oNGIe",
+ "name": "LHeroes",
+ "fill": "$muted",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "S1IDm",
+ "name": "TabItems",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "SIvRR",
+ "name": "LItems",
+ "fill": "$text",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "TdaP0",
+ "name": "ItemToolbar",
+ "width": "fill_container",
+ "gap": 16,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "HzNeQ",
+ "name": "ShopSubs",
+ "children": [
+ {
+ "type": "frame",
+ "id": "qGqOd",
+ "name": "SubBasic",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 20
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "lK9AY",
+ "name": "LBasic",
+ "fill": "$text",
+ "content": "基础物品",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "lP5r3",
+ "name": "SubUp",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 20
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "m2vAk0",
+ "name": "LUp",
+ "fill": "$muted",
+ "content": "升级物品",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "CpwuP",
+ "name": "LayoutToggle",
+ "width": 58,
+ "height": 34,
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 6,
+ "stroke": "#5EC8FF73",
+ "strokeWidth": 1,
+ "gap": 6,
+ "padding": [
+ 0,
+ 6
+ ],
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "v8wp6l",
+ "name": "IconGrid",
+ "width": 16,
+ "height": 16,
+ "icon": "layout-grid",
+ "library": "lucide",
+ "fill": "#8FA3BC59"
+ },
+ {
+ "type": "icon",
+ "id": "gGwKV",
+ "name": "IconCols",
+ "width": 16,
+ "height": 16,
+ "icon": "columns-3",
+ "library": "lucide",
+ "fill": "$text"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "MHciZ",
+ "name": "Search",
+ "width": 180,
+ "height": 36,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 0,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "R5Zep",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "L4FU6",
+ "name": "SearchPh",
+ "fill": "$muted",
+ "content": "搜索物品",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "WOxfm",
+ "name": "ShopBoardCols",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 12,
+ "padding": [
+ 16,
+ 24
+ ],
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "AwjUh",
+ "name": "Col 消耗品",
+ "width": 52,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "fkrdG",
+ "name": "ColHead 消耗品",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 52,
+ "content": "消耗品",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "QrW6F",
+ "name": "VItem 消耗品 0",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Sb7B5",
+ "name": "VItem 消耗品 1",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "FSRoq",
+ "name": "VItem 消耗品 2",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "jyAiT",
+ "name": "VItem 消耗品 3",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "GUTbO",
+ "name": "VItem 消耗品 4",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "yCiJw",
+ "name": "VItem 消耗品 5",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Y6wJZj",
+ "name": "VItem 消耗品 6",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Enr0U",
+ "name": "VItem 消耗品 7",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "UqaKZ",
+ "name": "VItem 消耗品 8",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "L3RjWu",
+ "name": "VItem 消耗品 9",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "e46JD",
+ "name": "Col 属性",
+ "width": 52,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "aMSv9",
+ "name": "ColHead 属性",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 52,
+ "content": "属性",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "WkZpe",
+ "name": "VItem 属性 0",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "GFS5p",
+ "name": "VItem 属性 1",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "eaAPH",
+ "name": "VItem 属性 2",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "vTwse",
+ "name": "VItem 属性 3",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "UXNsa",
+ "name": "VItem 属性 4",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "YhcIM",
+ "name": "VItem 属性 5",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "UoOur",
+ "name": "VItem 属性 6",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "P4rHLA",
+ "name": "VItem 属性 7",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "WHmpn",
+ "name": "VItem 属性 8",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "G0u6wf",
+ "name": "VItem 属性 9",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "LFHPn",
+ "name": "VItem 属性 10",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "thg0J",
+ "name": "Col 装备",
+ "width": 52,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "zqwSM",
+ "name": "ColHead 装备",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 52,
+ "content": "装备",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "epobG",
+ "name": "VItem 装备 0",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "qTVMZ",
+ "name": "VItem 装备 1",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "H7Vzlz",
+ "name": "VItem 装备 2",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "fZDsd",
+ "name": "VItem 装备 3",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "e0coO",
+ "name": "VItem 装备 4",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "K3at8E",
+ "name": "VItem 装备 5",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "PKUZO",
+ "name": "VItem 装备 6",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "oaPZf",
+ "name": "VItem 装备 7",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "TlaqE",
+ "name": "VItem 装备 8",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "wKtdA",
+ "name": "VItem 装备 9",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "cQQXY",
+ "name": "VItem 装备 10",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "SFULM",
+ "name": "VItem 装备 11",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Ej1Oj",
+ "name": "Col 其他",
+ "width": 52,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "CZWzy",
+ "name": "ColHead 其他",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 52,
+ "content": "其他",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "s88rUu",
+ "name": "VItem 其他 0",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "EjqhD",
+ "name": "VItem 其他 1",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "X04P8t",
+ "name": "VItem 其他 2",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "mKthY",
+ "name": "VItem 其他 3",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "R9pNz",
+ "name": "VItem 其他 4",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "X01UC",
+ "name": "VItem 其他 5",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "vKClT",
+ "name": "VItem 其他 6",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "EEiYW",
+ "name": "VItem 其他 7",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Zshjy",
+ "name": "VItem 其他 8",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "e3wi6x",
+ "name": "VItem 其他 9",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "cN02B",
+ "name": "VItem 其他 10",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "zvTZH",
+ "name": "Col 神秘商店",
+ "width": 52,
+ "layout": "vertical",
+ "gap": 4,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "T8BEv",
+ "name": "ColHead 神秘商店",
+ "fill": "$muted",
+ "textGrowth": "fixed-width",
+ "width": 52,
+ "content": "神秘商店",
+ "textAlign": "center",
+ "fontFamily": "Geist",
+ "fontSize": 11,
+ "fontWeight": "normal"
+ },
+ {
+ "type": "frame",
+ "id": "vKcAE",
+ "name": "VItem 神秘商店 0",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "ANJXR",
+ "name": "VItem 神秘商店 1",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "gdKfq",
+ "name": "VItem 神秘商店 2",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "s5Z9YX",
+ "name": "VItem 神秘商店 3",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "OniAt",
+ "name": "VItem 神秘商店 4",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "l8sZ6",
+ "name": "VItem 神秘商店 5",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "yZCGp",
+ "name": "VItem 神秘商店 6",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "pbURX",
+ "name": "VItem 神秘商店 7",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "vgV0v",
+ "name": "VItem 神秘商店 8",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "NCy8V",
+ "name": "VItem 神秘商店 9",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "nzV8g",
+ "name": "VItem 神秘商店 10",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "ziDf6",
+ "name": "VItem 神秘商店 11",
+ "width": 48,
+ "height": 36,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "kb1kp",
+ "name": "ItemDetail",
+ "width": "fill_container",
+ "height": 110,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "gap": 14,
+ "padding": [
+ 16,
+ 20
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "qRduF",
+ "name": "SelIcon",
+ "width": 64,
+ "height": 48,
+ "fill": "#1A2434",
+ "cornerRadius": 4,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "mN91D",
+ "name": "SelMeta",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 6,
+ "children": [
+ {
+ "type": "frame",
+ "id": "R4l9x",
+ "name": "SelTitleRow",
+ "gap": 12,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "JlF5b",
+ "name": "SelName",
+ "fill": "$text",
+ "content": "闪烁匕首",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650"
+ },
+ {
+ "type": "text",
+ "id": "mqThs",
+ "name": "SelCost",
+ "fill": "$gold",
+ "content": "2250",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "650"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "iCCn2",
+ "name": "SelDesc",
+ "fill": "#E8EEF7E0",
+ "textGrowth": "fixed-width",
+ "width": "fill_container",
+ "content": "主动:闪烁 — 传送到最远距离的位置。受到敌方英雄攻击后短暂无法使用。",
+ "lineHeight": 1.45,
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "k89g4",
+ "x": 0,
+ "y": 2080,
+ "name": "Items · 网格",
+ "clip": true,
+ "width": 1440,
+ "height": 960,
+ "fill": "$bg0",
+ "layout": "vertical",
+ "children": [
+ {
+ "type": "frame",
+ "id": "BJsaq",
+ "name": "Topbar",
+ "width": "fill_container",
+ "fill": "#080C14CC",
+ "layout": "vertical",
+ "gap": 12,
+ "padding": [
+ 14,
+ 24
+ ],
+ "children": [
+ {
+ "type": "frame",
+ "id": "oCO2b",
+ "name": "MainTabs",
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "VVchC",
+ "name": "TabHeroes",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "G90ly8",
+ "name": "LHeroes",
+ "fill": "$muted",
+ "content": "英雄",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "normal"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "hW0Z7",
+ "name": "TabItems",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 10,
+ 28
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "HRiFi",
+ "name": "LItems",
+ "fill": "$text",
+ "content": "物品",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "600"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "p4ixFH",
+ "name": "ItemToolbar",
+ "width": "fill_container",
+ "gap": 16,
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "bdUmP",
+ "name": "ShopSubs",
+ "children": [
+ {
+ "type": "frame",
+ "id": "UlsEt",
+ "name": "SubBasic",
+ "fill": "#FFFFFF14",
+ "cornerRadius": [
+ 6,
+ 0,
+ 0,
+ 6
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 20
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "xAGxT",
+ "name": "LBasic",
+ "fill": "$text",
+ "content": "基础物品",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "600"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "KXfIp",
+ "name": "SubUp",
+ "fill": "#FFFFFF08",
+ "cornerRadius": [
+ 0,
+ 6,
+ 6,
+ 0
+ ],
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "padding": [
+ 8,
+ 20
+ ],
+ "children": [
+ {
+ "type": "text",
+ "id": "c8JR6",
+ "name": "LUp",
+ "fill": "$muted",
+ "content": "升级物品",
+ "fontFamily": "Geist",
+ "fontSize": 14,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "mvIV5",
+ "name": "LayoutToggle",
+ "width": 58,
+ "height": 34,
+ "fill": "#5EC8FF1A",
+ "cornerRadius": 6,
+ "stroke": "#5EC8FF73",
+ "strokeWidth": 1,
+ "gap": 6,
+ "padding": [
+ 0,
+ 6
+ ],
+ "justifyContent": "center",
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "r1OFJr",
+ "name": "IconGrid",
+ "width": 16,
+ "height": 16,
+ "icon": "layout-grid",
+ "library": "lucide",
+ "fill": "$text"
+ },
+ {
+ "type": "icon",
+ "id": "X7LB7",
+ "name": "IconCols",
+ "width": 16,
+ "height": 16,
+ "icon": "columns-3",
+ "library": "lucide",
+ "fill": "#8FA3BC59"
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "s2jd9t",
+ "name": "Search",
+ "width": 180,
+ "height": 36,
+ "fill": "#00000073",
+ "cornerRadius": 8,
+ "stroke": "#8CAAD261",
+ "strokeWidth": 1,
+ "gap": 8,
+ "padding": [
+ 0,
+ 12
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "icon",
+ "id": "fFPH5",
+ "name": "SearchIcon",
+ "width": 15,
+ "height": 15,
+ "icon": "search",
+ "library": "lucide",
+ "fill": "$muted"
+ },
+ {
+ "type": "text",
+ "id": "xg0Cd",
+ "name": "SearchPh",
+ "fill": "$muted",
+ "content": "搜索物品",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "C9bKj",
+ "name": "ShopBoard",
+ "width": "fill_container",
+ "height": "fill_container",
+ "gap": 28,
+ "padding": [
+ 20,
+ 40
+ ],
+ "justifyContent": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "o5Ar8",
+ "name": "ShopLeft",
+ "width": 260,
+ "layout": "vertical",
+ "gap": 16,
+ "children": [
+ {
+ "type": "frame",
+ "id": "nXRjS",
+ "name": "Sec 消耗品",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "text",
+ "id": "lkCQz",
+ "name": "H 消耗品",
+ "fill": "$muted",
+ "content": "消耗品",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "qHObT",
+ "name": "R 消耗品 0",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "fBdFN",
+ "name": "I 消耗品 0-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "w1Pb81",
+ "name": "I 消耗品 0-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "swAg3",
+ "name": "I 消耗品 0-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "tajqJ",
+ "name": "I 消耗品 0-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "AtfZB",
+ "name": "R 消耗品 1",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "KrPVy",
+ "name": "I 消耗品 1-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "yYQqW",
+ "name": "I 消耗品 1-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "gZwhg",
+ "name": "I 消耗品 1-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "F0k9M",
+ "name": "I 消耗品 1-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Wggxh",
+ "name": "R 消耗品 2",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "THox1",
+ "name": "I 消耗品 2-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "gV97d",
+ "name": "I 消耗品 2-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "yhGOn",
+ "name": "I 消耗品 2-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "AXWpj",
+ "name": "I 消耗品 2-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "E7rAC",
+ "name": "Sec 装备",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "text",
+ "id": "fXewk",
+ "name": "H 装备",
+ "fill": "$muted",
+ "content": "装备",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "DXwVA",
+ "name": "R 装备 0",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "T6chPE",
+ "name": "I 装备 0-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "ghL9B",
+ "name": "I 装备 0-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "SEXHm",
+ "name": "I 装备 0-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Rgu7j",
+ "name": "I 装备 0-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "NYXF4",
+ "name": "R 装备 1",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "vnGIp",
+ "name": "I 装备 1-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "wQmed",
+ "name": "I 装备 1-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "z9CYq",
+ "name": "I 装备 1-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "D96aPl",
+ "name": "I 装备 1-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "FEpoN",
+ "name": "R 装备 2",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "EJ5PT",
+ "name": "I 装备 2-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "F5H0h",
+ "name": "I 装备 2-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Gx8eH",
+ "name": "I 装备 2-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "KIfEv",
+ "name": "I 装备 2-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "IjmZk",
+ "name": "Sec 神秘商店",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "text",
+ "id": "RVSDh",
+ "name": "H 神秘商店",
+ "fill": "$muted",
+ "content": "神秘商店",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "vpXAa",
+ "name": "R 神秘商店 0",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "acEbc",
+ "name": "I 神秘商店 0-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "sZcsO",
+ "name": "I 神秘商店 0-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "AqfBt",
+ "name": "I 神秘商店 0-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "OwcCE",
+ "name": "I 神秘商店 0-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "vz63d",
+ "name": "R 神秘商店 1",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "ioD5J",
+ "name": "I 神秘商店 1-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "ijmFd",
+ "name": "I 神秘商店 1-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Ik5h4",
+ "name": "I 神秘商店 1-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "EcxBw",
+ "name": "I 神秘商店 1-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "Z63rk",
+ "name": "R 神秘商店 2",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "sa6uy",
+ "name": "I 神秘商店 2-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "CElsQ",
+ "name": "I 神秘商店 2-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Wb1r5",
+ "name": "I 神秘商店 2-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "p4Peap",
+ "name": "I 神秘商店 2-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "jjIWN",
+ "name": "ShopRight",
+ "width": 260,
+ "layout": "vertical",
+ "gap": 16,
+ "children": [
+ {
+ "type": "frame",
+ "id": "msOt6",
+ "name": "Sec 属性",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "text",
+ "id": "CWppw",
+ "name": "H 属性",
+ "fill": "$muted",
+ "content": "属性",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "KI4EG",
+ "name": "R 属性 0",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "Ww6LM",
+ "name": "I 属性 0-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "KPFeC",
+ "name": "I 属性 0-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "a7EF3",
+ "name": "I 属性 0-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "NZunr",
+ "name": "I 属性 0-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "zb655",
+ "name": "R 属性 1",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "hgUJC",
+ "name": "I 属性 1-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "J8EHYl",
+ "name": "I 属性 1-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "V61EXL",
+ "name": "I 属性 1-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "y13dIy",
+ "name": "I 属性 1-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "ryrjR",
+ "name": "R 属性 2",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "S8xvOK",
+ "name": "I 属性 2-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "J59CM",
+ "name": "I 属性 2-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "vVxfF",
+ "name": "I 属性 2-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "PGHe1",
+ "name": "I 属性 2-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "WHG7p",
+ "name": "Sec 其他",
+ "layout": "vertical",
+ "gap": 8,
+ "children": [
+ {
+ "type": "text",
+ "id": "BYKN1",
+ "name": "H 其他",
+ "fill": "$muted",
+ "content": "其他",
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal",
+ "letterSpacing": 1
+ },
+ {
+ "type": "frame",
+ "id": "hGoNO",
+ "name": "R 其他 0",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "kmZE9",
+ "name": "I 其他 0-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "f7I85s",
+ "name": "I 其他 0-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "p26MZ",
+ "name": "I 其他 0-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "g8DUX1",
+ "name": "I 其他 0-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "a6PQDv",
+ "name": "R 其他 1",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "J7P6em",
+ "name": "I 其他 1-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "ZEMVr",
+ "name": "I 其他 1-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "XjngP",
+ "name": "I 其他 1-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Y5NOl3",
+ "name": "I 其他 1-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "R0M2jy",
+ "name": "R 其他 2",
+ "gap": 4,
+ "children": [
+ {
+ "type": "frame",
+ "id": "ywrBG",
+ "name": "I 其他 2-0",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "N8J8Ou",
+ "name": "I 其他 2-1",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "S3PtU",
+ "name": "I 其他 2-2",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "SLg9T",
+ "name": "I 其他 2-3",
+ "width": 56,
+ "height": 42,
+ "fill": "#1A2434",
+ "cornerRadius": 3,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "frame",
+ "id": "t7Muf0",
+ "name": "ItemDetail",
+ "width": "fill_container",
+ "height": 110,
+ "fill": "#080C148C",
+ "cornerRadius": 10,
+ "stroke": "$line",
+ "strokeWidth": 1,
+ "gap": 14,
+ "padding": [
+ 16,
+ 20
+ ],
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "frame",
+ "id": "ouzkT",
+ "name": "SelIcon",
+ "width": 64,
+ "height": 48,
+ "fill": "#1A2434",
+ "cornerRadius": 4,
+ "stroke": "#C8A0468C",
+ "strokeWidth": 1
+ },
+ {
+ "type": "frame",
+ "id": "Q4QOLP",
+ "name": "SelMeta",
+ "width": "fill_container",
+ "layout": "vertical",
+ "gap": 6,
+ "children": [
+ {
+ "type": "frame",
+ "id": "EeDRp",
+ "name": "SelTitleRow",
+ "gap": 12,
+ "alignItems": "center",
+ "children": [
+ {
+ "type": "text",
+ "id": "s5lpWY",
+ "name": "SelName",
+ "fill": "$text",
+ "content": "闪烁匕首",
+ "fontFamily": "Geist",
+ "fontSize": 18,
+ "fontWeight": "650"
+ },
+ {
+ "type": "text",
+ "id": "kOMRz",
+ "name": "SelCost",
+ "fill": "$gold",
+ "content": "2250",
+ "fontFamily": "Geist",
+ "fontSize": 15,
+ "fontWeight": "650"
+ }
+ ]
+ },
+ {
+ "type": "text",
+ "id": "aRGrB",
+ "name": "SelDesc",
+ "fill": "#E8EEF7E0",
+ "textGrowth": "fixed-width",
+ "width": "fill_container",
+ "content": "主动:闪烁 — 传送到最远距离的位置。受到敌方英雄攻击后短暂无法使用。",
+ "lineHeight": 1.45,
+ "fontFamily": "Geist",
+ "fontSize": 13,
+ "fontWeight": "normal"
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
],
+ "variables": {
+ "bg0": {
+ "type": "color",
+ "value": "#0B1018"
+ },
+ "bg1": {
+ "type": "color",
+ "value": "#152033"
+ },
+ "panel": {
+ "type": "color",
+ "value": "#0E1622"
+ },
+ "line": {
+ "type": "color",
+ "value": "#8CAAD22E"
+ },
+ "text": {
+ "type": "color",
+ "value": "#E8EEF7"
+ },
+ "muted": {
+ "type": "color",
+ "value": "#8FA3BC"
+ },
+ "accent": {
+ "type": "color",
+ "value": "#5EC8FF"
+ },
+ "good": {
+ "type": "color",
+ "value": "#3DCE7A"
+ },
+ "bad": {
+ "type": "color",
+ "value": "#E07A2F"
+ },
+ "gold": {
+ "type": "color",
+ "value": "#E8C878"
+ },
+ "radiusSm": {
+ "type": "number",
+ "value": 4
+ },
+ "radiusMd": {
+ "type": "number",
+ "value": 8
+ }
+ },
"fileToken": "9ee8cb48-01d0-49e3-8fab-391005f1e905"
}
\ No newline at end of file
diff --git a/export_relations_site.py b/export_relations_site.py
index 0aa8f47..921922d 100644
--- a/export_relations_site.py
+++ b/export_relations_site.py
@@ -69,7 +69,7 @@ def main() -> None:
out.mkdir(parents=True)
# Frontend (uses relative paths — works from any sub-path).
- for name in ("index.html", "app.js", "style.css"):
+ for name in ("index.html", "router.js", "app.js", "style.css"):
shutil.copy2(WEB_DIR / name, out / name)
# Data snapshot (same payload as serve_relations /api/data).
diff --git a/fetch_dota2_logo.py b/fetch_dota2_logo.py
new file mode 100644
index 0000000..0e34af6
--- /dev/null
+++ b/fetch_dota2_logo.py
@@ -0,0 +1,77 @@
+"""Fetch the official Dota 2 emblem icon (no wordmark) for the preview header.
+
+Source (discovered, not guessed) from the dota2.com.cn site HTML:
+
+
+That .ico is a multi-frame container whose largest frames are 256x256 PNGs of
+the red Dota 2 map-marker emblem with a transparent background — i.e. the
+brand icon alone, no "DOTA 2" text. We extract the first 256x256 PNG frame,
+decode with OpenCV, and write it to assets/ui_icons/dota2_logo.png so it rides
+the existing /ui-icon/ route + static-export glob pipeline.
+"""
+import struct
+import sys
+
+import cv2
+import numpy as np
+
+from common import UI_ICONS
+from http_utils import http_bytes
+
+FAVICON_URL = "https://www.dota2.com.cn/favicon.ico"
+OUT = UI_ICONS / "dota2_logo.png"
+TARGET_SIZE = 256
+
+
+def _extract_largest_png_frame(data: bytes) -> bytes | None:
+ """Return the bytes of the largest PNG-embedded frame in an ICO blob."""
+ if len(data) < 6 or data[:4] != b"\x00\x00\x01\x00":
+ return None
+ count = struct.unpack(" len(data):
+ break
+ w = data[off]
+ size = struct.unpack(" best[0]:
+ best = (width * width, blob)
+ return best[1] if best else None
+
+
+def main() -> int:
+ if OUT.is_file() and OUT.stat().st_size >= 512:
+ print(f"exists: {OUT} ({OUT.stat().st_size} bytes)")
+ return 0
+ data = http_bytes(FAVICON_URL, timeout=30)
+ if not data or len(data) < 16:
+ print("empty favicon download", file=sys.stderr)
+ return 1
+ png = _extract_largest_png_frame(data)
+ if png is None:
+ print("no PNG frame in .ico", file=sys.stderr)
+ return 1
+ arr = cv2.imdecode(np.frombuffer(png, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
+ if arr is None:
+ print("decode failed", file=sys.stderr)
+ return 1
+ UI_ICONS.mkdir(parents=True, exist_ok=True)
+ ok = cv2.imwrite(str(OUT), arr)
+ if not ok:
+ print("write failed", file=sys.stderr)
+ return 1
+ h, w = arr.shape[:2]
+ channels = arr.shape[2] if arr.ndim == 3 else 1
+ transparent = int(np.count_nonzero(arr[:, :, 3] == 0)) if channels == 4 else 0
+ print(f"saved {OUT} ({w}x{h}, {OUT.stat().st_size} bytes, {transparent} px transparent)")
+ return 0
+
+
+if __name__ == "__main__":
+ raise SystemExit(main())
diff --git a/serve_relations.py b/serve_relations.py
index 76b577f..cb9e454 100644
--- a/serve_relations.py
+++ b/serve_relations.py
@@ -448,7 +448,7 @@ class Handler(BaseHTTPRequestHandler):
return
if path.startswith("/ui-icon/"):
key = path[len("/ui-icon/") :]
- if key not in ("cooldown.png",):
+ if key not in ("cooldown.png", "dota2_logo.png"):
self._json(400, {"error": "bad ui icon"})
return
fpath = UI_ICONS / key
diff --git a/web/relations/app.js b/web/relations/app.js
index 785c206..7fc8254 100644
--- a/web/relations/app.js
+++ b/web/relations/app.js
@@ -147,6 +147,7 @@ function renderBoard() {
function onHeroClick(key) {
state.selectedKey = state.selectedKey === key ? null : key;
state.inspect = null;
+ syncStateToUrl();
render();
}
@@ -161,6 +162,7 @@ function renderTagbar() {
allBtn.className = state.tagFilters.size ? "" : "active";
allBtn.addEventListener("click", () => {
state.tagFilters.clear();
+ syncStateToUrl({ replace: true });
render();
});
bar.appendChild(allBtn);
@@ -172,6 +174,7 @@ function renderTagbar() {
btn.addEventListener("click", () => {
if (state.tagFilters.has(tag)) state.tagFilters.delete(tag);
else state.tagFilters.add(tag);
+ syncStateToUrl({ replace: true });
render();
});
bar.appendChild(btn);
@@ -1286,6 +1289,7 @@ function renderDetail() {
// Reset inspect to the tab default (first skill / first item).
state.inspect = null;
ensureHeroInspectDefault(state.selectedKey);
+ syncStateToUrl();
renderDetail();
});
tabbar.appendChild(btn);
@@ -1368,6 +1372,7 @@ function matchesItemQuery(key, meta) {
function onShopItemClick(key) {
state.selectedItemKey = state.selectedItemKey === key ? null : key;
state.selectedKey = null;
+ syncStateToUrl();
render();
}
@@ -1522,6 +1527,7 @@ function renderItemDetail() {
mountItemInspect(root, meta, {
onPickItem: (key) => {
state.selectedItemKey = key;
+ syncStateToUrl();
render();
},
});
@@ -1718,6 +1724,7 @@ function renderPatches() {
.join("");
select.onchange = () => {
state.selectedPatch = select.value;
+ syncStateToUrl();
renderPatches();
const board = $("#patches-view");
if (board) board.scrollTo(0, 0);
@@ -1780,6 +1787,7 @@ function setPage(page) {
state.selectedKey = null;
state.inspect = null;
}
+ syncStateToUrl();
render();
}
@@ -1815,6 +1823,71 @@ function render() {
}
}
+// Search-box URL sync timer (debounced replace so typing does not spam history).
+let searchSyncTimer = 0;
+const SEARCH_SYNC_DEBOUNCE_MS = 300;
+
+/**
+ * Apply a router-produced state patch (from a parsed URL) to state, then render.
+ * Validates every field against loaded data so bad deep-links degrade gracefully
+ * (unknown hero/item/version is dropped rather than crashing the UI).
+ */
+function applyPatch(patch) {
+ if (!state.data) {
+ render();
+ return;
+ }
+ // Page (default heroes on bad/missing).
+ if (patch.page && ["heroes", "items", "patches"].includes(patch.page)) {
+ state.page = patch.page;
+ } else {
+ state.page = "heroes";
+ }
+ // Hero + detail sub-tab.
+ if (patch.heroKey && heroByKey(patch.heroKey)) {
+ state.selectedKey = patch.heroKey;
+ if (
+ patch.detailTab &&
+ ["skills", "core", "fears", "patches"].includes(patch.detailTab)
+ ) {
+ state.detailTab = patch.detailTab;
+ } else {
+ state.detailTab = "skills";
+ }
+ } else {
+ state.selectedKey = null;
+ state.detailTab = "skills";
+ }
+ // Reset inspect so ensureHeroInspectDefault re-picks per tab (inspect is URL-less).
+ state.inspect = null;
+ // Item (items page) — must exist in the shop catalog.
+ if (patch.itemKey && shopItem(patch.itemKey)) {
+ state.selectedItemKey = patch.itemKey;
+ } else {
+ state.selectedItemKey = null;
+ }
+ // Patch version (patches page; null means latest).
+ if (
+ patch.patchVersion &&
+ (state.data.patches || []).some((p) => p.version === patch.patchVersion)
+ ) {
+ state.selectedPatch = patch.patchVersion;
+ } else {
+ state.selectedPatch = null;
+ }
+ // Tag filters (heroes page only) — drop unknown tag names.
+ if (patch.tags instanceof Set) {
+ const valid = new Set(state.data.tag_order || []);
+ state.tagFilters = new Set([...patch.tags].filter((t) => valid.has(t)));
+ }
+ if (typeof patch.query === "string") {
+ state.query = patch.query;
+ const inp = $("#q");
+ if (inp && inp.value !== state.query) inp.value = state.query;
+ }
+ render();
+}
+
function bindSearch() {
const input = $("#q");
if (input) {
@@ -1822,6 +1895,12 @@ function bindSearch() {
input.addEventListener("input", () => {
state.query = input.value;
if (state.page === "heroes") renderBoard();
+ // Debounced replace so each keystroke does not push a history entry.
+ if (searchSyncTimer) clearTimeout(searchSyncTimer);
+ searchSyncTimer = setTimeout(() => {
+ searchSyncTimer = 0;
+ syncStateToUrl({ replace: true });
+ }, SEARCH_SYNC_DEBOUNCE_MS);
});
}
const itemInput = $("#q-item");
@@ -1830,6 +1909,11 @@ function bindSearch() {
itemInput.addEventListener("input", () => {
state.itemQuery = itemInput.value;
if (state.page === "items") renderItemShop();
+ if (searchSyncTimer) clearTimeout(searchSyncTimer);
+ searchSyncTimer = setTimeout(() => {
+ searchSyncTimer = 0;
+ syncStateToUrl({ replace: true });
+ }, SEARCH_SYNC_DEBOUNCE_MS);
});
}
}
@@ -1851,12 +1935,14 @@ async function main() {
if (state.query && document.activeElement === $("#q")) {
state.query = "";
$("#q").value = "";
+ syncStateToUrl({ replace: true });
renderBoard();
return;
}
if (state.selectedKey) {
state.selectedKey = null;
state.inspect = null;
+ syncStateToUrl();
render();
}
return;
@@ -1864,11 +1950,13 @@ async function main() {
if (state.itemQuery && document.activeElement === $("#q-item")) {
state.itemQuery = "";
$("#q-item").value = "";
+ syncStateToUrl({ replace: true });
renderItemShop();
return;
}
if (state.selectedItemKey) {
state.selectedItemKey = null;
+ syncStateToUrl();
render();
}
});
@@ -1909,7 +1997,10 @@ async function main() {
state.data.patches = state.data.patches || [];
state.data.patch_lookup = state.data.patch_lookup || { items: {}, abilities: {}, heroes: {} };
state.data.patch_details = state.data.patch_details || {};
- render();
+ // Install hash router now that state.data is loaded (validation needs it),
+ // then apply the initial URL (deep-link support) which also renders.
+ installRouter({ getState: () => state, applyPatch });
+ applyUrlToState();
}
main().catch((err) => {
diff --git a/web/relations/index.html b/web/relations/index.html
index 5b1cfe0..e24d815 100644
--- a/web/relations/index.html
+++ b/web/relations/index.html
@@ -8,6 +8,10 @@
+
+

+
上分帝
+