Files
zyt/untitled.pen
T
2026-07-11 18:31:53 +08:00

6968 lines
220 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"version": "2.14",
"children": [
{
"type": "frame",
"id": "bi8Au",
"x": -5,
"y": -519,
"name": "Frame",
"clip": true,
"width": 4430,
"height": 2726,
"fill": "#FFFFFF",
"layout": "none",
"children": [
{
"type": "frame",
"id": "BZ20w",
"x": 3329,
"y": 518.9999999999995,
"name": "06 选定高保真视觉稿",
"clip": true,
"width": 390,
"height": 844,
"fill": "#FFFFFF",
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "oeACJ",
"x": 0,
"y": 0,
"name": "高保真设计稿图片",
"fill": {
"type": "image",
"enabled": true,
"url": ".trellis/tasks/07-11-camera-motion-game/design/grip-ring-2-selected-reference.png",
"mode": "fill"
},
"width": 390,
"height": 844
}
]
}
]
},
{
"type": "frame",
"id": "UrQgi",
"x": 880,
"y": 0,
"name": "01 准备与校准",
"clip": true,
"width": 390,
"height": 844,
"fill": "$bg",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "b6I30D",
"name": "系统状态栏",
"width": "fill_container",
"height": 44,
"padding": [
14,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "Sy5Go",
"name": "时间",
"fill": "$text",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
},
{
"type": "frame",
"id": "i9x5l",
"name": "系统图标",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "xlRCs",
"name": "网络",
"width": 16,
"height": 16,
"icon": "wifi",
"library": "lucide",
"fill": "$text"
},
{
"type": "icon",
"id": "Npv7A",
"name": "电量",
"width": 18,
"height": 18,
"icon": "battery-full",
"library": "lucide",
"fill": "$text"
}
]
}
]
},
{
"type": "frame",
"id": "kCHJd",
"name": "页面标题栏",
"width": "fill_container",
"height": 58,
"fill": "$surface",
"padding": [
8,
18
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "UGFzo",
"name": "返回按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "R41p63",
"name": "返回图标",
"width": 24,
"height": 24,
"icon": "chevron-left",
"library": "lucide",
"fill": "$text"
}
]
},
{
"type": "frame",
"id": "Ibwj8",
"name": "标题",
"layout": "vertical",
"gap": 2,
"alignItems": "center",
"children": [
{
"type": "text",
"id": "Rnu5O",
"name": "主标题",
"fill": "$text",
"content": "握力环训练 2.0",
"fontFamily": "Inter",
"fontSize": 18,
"fontWeight": "700"
},
{
"type": "text",
"id": "HAUHk",
"name": "副标题",
"fill": "$primary",
"content": "摄像头体感版",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "qpYra",
"name": "帮助按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "w03sP",
"name": "帮助图标",
"width": 22,
"height": 22,
"icon": "info",
"library": "lucide",
"fill": "$muted"
}
]
}
]
},
{
"type": "frame",
"id": "gVh0d",
"name": "准备页内容",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 14,
"padding": [
14,
18,
20,
18
],
"children": [
{
"type": "frame",
"id": "VQpO9",
"name": "摄像头校准预览",
"clip": true,
"width": "fill_container",
"height": 340,
"fill": "#E8F0F3",
"cornerRadius": 8,
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "Kp13i",
"x": 0,
"y": 0,
"name": "镜像预览占位",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#D7E7EA",
"position": 0
},
{
"color": "#F2F7F8",
"position": 1
}
]
},
"width": 354,
"height": 340
},
{
"type": "ellipse",
"id": "mPrHm",
"x": 145,
"y": 58,
"name": "头部轮廓",
"fill": "#8FA7AF",
"width": 64,
"height": 72
},
{
"type": "frame",
"id": "V7ASLV",
"x": 104,
"y": 124,
"name": "身体轮廓",
"width": 146,
"height": 180,
"fill": "#A7BBC1",
"cornerRadius": [
60,
60,
18,
18
]
},
{
"type": "frame",
"id": "LJltp",
"x": 50,
"y": 36,
"name": "取景引导框",
"width": 254,
"height": 270,
"cornerRadius": 8,
"stroke": "$primary",
"strokeWidth": 2,
"layout": "none"
},
{
"type": "frame",
"id": "fSY7A",
"x": 16,
"y": 16,
"name": "识别状态",
"width": 128,
"height": 34,
"fill": "#FFFFFFE8",
"cornerRadius": 17,
"gap": 7,
"padding": [
8,
10
],
"alignItems": "center"
},
{
"type": "ellipse",
"id": "SVlnQ",
"x": 25,
"y": 28,
"name": "识别状态点",
"fill": "$success",
"width": 8,
"height": 8
},
{
"type": "text",
"id": "N5pXZj",
"x": 40,
"y": 24,
"name": "识别状态文字",
"fill": "$success",
"content": "已识别到上半身",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
},
{
"type": "frame",
"id": "ZydWg",
"x": 52,
"y": 284,
"name": "校准提示",
"width": 250,
"height": 40,
"fill": "#17212BCC",
"cornerRadius": 6,
"gap": 8,
"padding": [
10,
14
],
"justifyContent": "center",
"alignItems": "center"
},
{
"type": "icon",
"id": "vH8Am",
"x": 0,
"y": 0,
"name": "站位提示图标",
"width": 18,
"height": 18,
"icon": "scan-face",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "text",
"id": "ePmCH",
"x": 0,
"y": 0,
"name": "站位提示文字",
"fill": "#FFFFFF",
"content": "保持肩膀和双手在框内",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "h0vDb3",
"name": "训练模式",
"width": "fill_container",
"layout": "vertical",
"gap": 8,
"children": [
{
"type": "text",
"id": "FrWyk",
"name": "模式标题",
"fill": "$text",
"content": "训练方式",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
},
{
"type": "frame",
"id": "ELQRo",
"name": "模式选项",
"width": "fill_container",
"height": 52,
"gap": 10,
"children": [
{
"type": "frame",
"id": "Q3dxY",
"name": "坐姿模式",
"width": "fill_container",
"height": "fill_container",
"fill": "$primarySoft",
"cornerRadius": 8,
"stroke": "$primary",
"strokeWidth": 1.5,
"gap": 8,
"padding": [
10,
14
],
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "V6iHI",
"name": "坐姿图标",
"width": 21,
"height": 21,
"icon": "accessibility",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "u8Qjh",
"name": "坐姿文字",
"fill": "$primary",
"content": "坐姿上肢",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "o96xtY",
"name": "站姿模式",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"gap": 8,
"padding": [
10,
14
],
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "KnBCs",
"name": "站姿图标",
"width": 21,
"height": 21,
"icon": "person-standing",
"library": "lucide",
"fill": "$muted"
},
{
"type": "text",
"id": "xtuwE",
"name": "站姿文字",
"fill": "$muted",
"content": "站姿全幅",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "lDhU2",
"name": "强度选择",
"width": "fill_container",
"layout": "vertical",
"gap": 8,
"children": [
{
"type": "text",
"id": "weX5I",
"name": "强度标题",
"fill": "$text",
"content": "训练强度",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
},
{
"type": "frame",
"id": "rPWyA",
"name": "强度档位",
"width": "fill_container",
"height": 42,
"gap": 6,
"children": [
{
"type": "frame",
"id": "IyRU6",
"name": "舒缓",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 6,
"stroke": "$border",
"strokeWidth": 1,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "nYWaR",
"name": "舒缓文字",
"fill": "$muted",
"content": "舒缓",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "WgMmQ",
"name": "标准",
"width": "fill_container",
"height": "fill_container",
"fill": "$primary",
"cornerRadius": 6,
"stroke": "$primary",
"strokeWidth": 1,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "vinXl",
"name": "标准文字",
"fill": "#FFFFFF",
"content": "标准",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "JIN0D",
"name": "挑战",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 6,
"stroke": "$border",
"strokeWidth": 1,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "HUHlV",
"name": "挑战文字",
"fill": "$muted",
"content": "挑战",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "700"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "eO6Dp",
"name": "开始校准按钮",
"width": "fill_container",
"height": 54,
"fill": "$primary",
"cornerRadius": 8,
"gap": 10,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "igwTo",
"name": "摄像头图标",
"width": 21,
"height": 21,
"icon": "camera",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "text",
"id": "K26et",
"name": "开始按钮文字",
"fill": "#FFFFFF",
"content": "开始校准并训练",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "ZwnNa",
"name": "隐私说明",
"width": "fill_container",
"gap": 7,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "yNVCb",
"name": "隐私图标",
"width": 15,
"height": 15,
"icon": "shield-check",
"library": "lucide",
"fill": "$success"
},
{
"type": "text",
"id": "vLqbR",
"name": "隐私文字",
"fill": "$muted",
"content": "画面仅在本机识别,不上传原始视频",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "fDiZz",
"x": 1350,
"y": 0,
"name": "02 训练进行中",
"clip": true,
"width": 390,
"height": 844,
"fill": "$bg",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "dqmxq",
"name": "系统状态栏",
"width": "fill_container",
"height": 44,
"padding": [
14,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "n2NSYQ",
"name": "时间",
"fill": "$text",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
},
{
"type": "frame",
"id": "rI2iZ",
"name": "系统图标",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "mcaae",
"name": "网络",
"width": 16,
"height": 16,
"icon": "wifi",
"library": "lucide",
"fill": "$text"
},
{
"type": "icon",
"id": "WJ10H",
"name": "电量",
"width": 18,
"height": 18,
"icon": "battery-full",
"library": "lucide",
"fill": "$text"
}
]
}
]
},
{
"type": "frame",
"id": "TcJI5",
"name": "训练标题栏",
"width": "fill_container",
"height": 58,
"fill": "$surface",
"padding": [
8,
18
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "FIToM",
"name": "退出按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "g6QY1w",
"name": "关闭图标",
"width": 23,
"height": 23,
"icon": "x",
"library": "lucide",
"fill": "$text"
}
]
},
{
"type": "frame",
"id": "f5n4w",
"name": "标题",
"layout": "vertical",
"gap": 2,
"alignItems": "center",
"children": [
{
"type": "text",
"id": "L4Ewc",
"name": "主标题",
"fill": "$text",
"content": "握力环训练 2.0",
"fontFamily": "Inter",
"fontSize": 18,
"fontWeight": "700"
},
{
"type": "text",
"id": "N2oumd",
"name": "训练状态",
"fill": "$success",
"content": "标准 · 坐姿上肢",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "QTHpT",
"name": "声音按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "CYL9b",
"name": "声音图标",
"width": 22,
"height": 22,
"icon": "volume-2",
"library": "lucide",
"fill": "$muted"
}
]
}
]
},
{
"type": "frame",
"id": "BFnup",
"name": "摄像头游戏舞台",
"clip": true,
"width": "fill_container",
"height": 540,
"fill": "#DDE9EC",
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "nAQzD",
"x": 0,
"y": 0,
"name": "镜像摄像头画面",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#BFD3D8",
"position": 0
},
{
"color": "#EAF2F3",
"position": 1
}
]
},
"width": 390,
"height": 540
},
{
"type": "ellipse",
"id": "QvCml",
"x": 158,
"y": 112,
"name": "用户头部",
"fill": "#79939A",
"width": 74,
"height": 84
},
{
"type": "frame",
"id": "m7B0Y",
"x": 106,
"y": 188,
"name": "用户身体",
"width": 178,
"height": 270,
"fill": "#8CA4AA",
"cornerRadius": [
72,
72,
20,
20
]
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "c3v0X",
"x": 48,
"y": 225,
"name": "左臂",
"rotation": -18,
"fill": "#8CA4AA",
"width": 88,
"height": 32
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "Vp2gB",
"x": 254,
"y": 206,
"name": "右臂",
"rotation": 18,
"fill": "#8CA4AA",
"width": 96,
"height": 32
},
{
"type": "ellipse",
"id": "h6jma",
"x": 294,
"y": 140,
"name": "右侧目标光环",
"fill": "#F28C4530",
"width": 82,
"height": 82,
"stroke": "$target",
"strokeWidth": 3
},
{
"type": "ellipse",
"id": "BTemq",
"x": 311,
"y": 157,
"name": "右侧目标核心",
"fill": "$target",
"width": 48,
"height": 48
},
{
"type": "icon",
"id": "gmEry",
"x": 324,
"y": 170,
"name": "目标握拳图标",
"width": 22,
"height": 22,
"icon": "hand",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "ellipse",
"id": "IYD0R",
"x": 278,
"y": 205,
"name": "轨迹点一",
"fill": "#F28C4580",
"width": 8,
"height": 8
},
{
"type": "ellipse",
"id": "rbnaK",
"x": 291,
"y": 192,
"name": "轨迹点二",
"fill": "#F28C45A0",
"width": 11,
"height": 11
},
{
"type": "frame",
"id": "PTACB",
"x": 14,
"y": 14,
"name": "顶部数据 HUD",
"width": 362,
"height": 62,
"fill": "#FFFFFFE8",
"cornerRadius": 8,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#00000012",
"offset": {
"x": 0,
"y": 3
},
"blur": 10
},
"gap": 8,
"padding": [
8,
10
],
"children": [
{
"type": "frame",
"id": "Z7sEb",
"name": "命中",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "vumde",
"name": "命中数值",
"fill": "$text",
"content": "12",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "E541aU",
"name": "命中标签",
"fill": "$muted",
"content": "命中",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "z7pSDT",
"name": "准确率",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "p7Ch8G",
"name": "准确率数值",
"fill": "$text",
"content": "86%",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "O3aF9C",
"name": "准确率标签",
"fill": "$muted",
"content": "准确率",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "LnJxf",
"name": "连击",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "Bqj0q",
"name": "连击数值",
"fill": "$target",
"content": "x6",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "lOpxm",
"name": "连击标签",
"fill": "$muted",
"content": "连击",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "t9hVF",
"name": "时间",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "VZMjd",
"name": "时间数值",
"fill": "$text",
"content": "01:24",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "K5JBWY",
"name": "时间标签",
"fill": "$muted",
"content": "时间",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "kKPUL",
"x": 14,
"y": 88,
"name": "识别质量",
"width": 118,
"height": 32,
"fill": "#FFFFFFD9",
"cornerRadius": 16,
"gap": 7,
"padding": [
7,
10
],
"alignItems": "center",
"children": [
{
"type": "ellipse",
"id": "oqgM0",
"name": "识别质量点",
"fill": "$success",
"width": 8,
"height": 8
},
{
"type": "text",
"id": "w9zpKt",
"name": "识别质量文字",
"fill": "$success",
"content": "追踪稳定",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "i7RTG",
"x": 68,
"y": 456,
"name": "动作提示",
"width": 254,
"height": 52,
"fill": "#17212BD9",
"cornerRadius": 8,
"gap": 10,
"padding": [
12,
16
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "TPTrF",
"name": "动作方向图标",
"width": 22,
"height": 22,
"icon": "move-up-right",
"library": "lucide",
"fill": "$target"
},
{
"type": "frame",
"id": "N4pAg",
"name": "动作提示文字组",
"layout": "vertical",
"gap": 2,
"children": [
{
"type": "text",
"id": "a8S0eu",
"name": "动作主提示",
"fill": "#FFFFFF",
"content": "右手伸向橙色目标",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
},
{
"type": "text",
"id": "KWs0v",
"name": "动作副提示",
"fill": "#D6E0E3",
"content": "保持身体面向镜头",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "Q2Oa4",
"name": "训练控制区",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"layout": "vertical",
"gap": 12,
"padding": [
14,
18,
20,
18
],
"children": [
{
"type": "frame",
"id": "TGLVc",
"name": "训练进度",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "LfsKb",
"name": "阶段文字",
"fill": "$text",
"content": "本轮目标 30 次",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
},
{
"type": "text",
"id": "d1yZ2o",
"name": "剩余时间",
"fill": "$primary",
"content": "剩余 03:36",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "s7aCK",
"name": "进度条轨道",
"width": "fill_container",
"height": 8,
"fill": "#E3EBEF",
"cornerRadius": 4,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 4,
"id": "D3wld",
"x": 0,
"y": 0,
"name": "进度条",
"fill": "$primary",
"width": 144,
"height": 8
}
]
},
{
"type": "frame",
"id": "vD4g3",
"name": "控制按钮",
"width": "fill_container",
"height": 58,
"gap": 12,
"children": [
{
"type": "frame",
"id": "G4WRr3",
"name": "暂停训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$primarySoft",
"cornerRadius": 8,
"stroke": "$primary",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "yQ8sQ",
"name": "暂停图标",
"width": 22,
"height": 22,
"icon": "pause",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "PbLbS",
"name": "暂停文字",
"fill": "$primary",
"content": "暂停",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "e7YHFq",
"name": "结束训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "X9Pjj",
"name": "结束图标",
"width": 19,
"height": 19,
"icon": "square",
"library": "lucide",
"fill": "$danger"
},
{
"type": "text",
"id": "rg4WR",
"name": "结束文字",
"fill": "$text",
"content": "结束训练",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "Ha1fb",
"x": 1820,
"y": 0,
"name": "03 追踪丢失与暂停",
"clip": true,
"width": 390,
"height": 844,
"fill": "$bg",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "mTE4b",
"name": "系统状态栏",
"width": "fill_container",
"height": 44,
"padding": [
14,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "pcykw",
"name": "时间",
"fill": "$text",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
},
{
"type": "frame",
"id": "U8QHTr",
"name": "系统图标",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "mCEVv",
"name": "网络",
"width": 16,
"height": 16,
"icon": "wifi",
"library": "lucide",
"fill": "$text"
},
{
"type": "icon",
"id": "IVuMO",
"name": "电量",
"width": 18,
"height": 18,
"icon": "battery-full",
"library": "lucide",
"fill": "$text"
}
]
}
]
},
{
"type": "frame",
"id": "cQW3M",
"name": "训练标题栏",
"width": "fill_container",
"height": 58,
"fill": "$surface",
"padding": [
8,
18
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "Q6cft2",
"name": "退出按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "e6QtB",
"name": "关闭图标",
"width": 23,
"height": 23,
"icon": "x",
"library": "lucide",
"fill": "$text"
}
]
},
{
"type": "frame",
"id": "AM24U",
"name": "标题",
"layout": "vertical",
"gap": 2,
"alignItems": "center",
"children": [
{
"type": "text",
"id": "SMFsS",
"name": "主标题",
"fill": "$text",
"content": "握力环训练 2.0",
"fontFamily": "Inter",
"fontSize": 18,
"fontWeight": "700"
},
{
"type": "text",
"id": "xDqIV",
"name": "训练状态",
"fill": "$success",
"content": "标准 · 坐姿上肢",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "Ykkvh",
"name": "声音按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "i8Dwd",
"name": "声音图标",
"width": 22,
"height": 22,
"icon": "volume-2",
"library": "lucide",
"fill": "$muted"
}
]
}
]
},
{
"type": "frame",
"id": "J1zkYq",
"name": "摄像头游戏舞台",
"clip": true,
"width": "fill_container",
"height": 540,
"fill": "#DDE9EC",
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "ru5NK",
"x": 0,
"y": 0,
"name": "镜像摄像头画面",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#BFD3D8",
"position": 0
},
{
"color": "#EAF2F3",
"position": 1
}
]
},
"width": 390,
"height": 540
},
{
"type": "ellipse",
"id": "kGRjz",
"x": 158,
"y": 112,
"name": "用户头部",
"fill": "#79939A",
"width": 74,
"height": 84
},
{
"type": "frame",
"id": "hsFOM",
"x": 106,
"y": 188,
"name": "用户身体",
"width": 178,
"height": 270,
"fill": "#8CA4AA",
"cornerRadius": [
72,
72,
20,
20
]
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "UyOsQ",
"x": 48,
"y": 225,
"name": "左臂",
"rotation": -18,
"fill": "#8CA4AA",
"width": 88,
"height": 32
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "ykmCR",
"x": 254,
"y": 206,
"name": "右臂",
"rotation": 18,
"fill": "#8CA4AA",
"width": 96,
"height": 32
},
{
"type": "ellipse",
"id": "G60Oe",
"x": 294,
"y": 140,
"name": "右侧目标光环",
"fill": "#F28C4530",
"width": 82,
"height": 82,
"stroke": "$target",
"strokeWidth": 3
},
{
"type": "ellipse",
"id": "TAuuY",
"x": 311,
"y": 157,
"name": "右侧目标核心",
"fill": "$target",
"width": 48,
"height": 48
},
{
"type": "icon",
"id": "JqPgc",
"x": 324,
"y": 170,
"name": "目标握拳图标",
"width": 22,
"height": 22,
"icon": "hand",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "ellipse",
"id": "P5gIYa",
"x": 278,
"y": 205,
"name": "轨迹点一",
"fill": "#F28C4580",
"width": 8,
"height": 8
},
{
"type": "ellipse",
"id": "EEyfw",
"x": 291,
"y": 192,
"name": "轨迹点二",
"fill": "#F28C45A0",
"width": 11,
"height": 11
},
{
"type": "frame",
"id": "j1I1YR",
"x": 14,
"y": 14,
"name": "顶部数据 HUD",
"width": 362,
"height": 62,
"fill": "#FFFFFFE8",
"cornerRadius": 8,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#00000012",
"offset": {
"x": 0,
"y": 3
},
"blur": 10
},
"gap": 8,
"padding": [
8,
10
],
"children": [
{
"type": "frame",
"id": "rZecb",
"name": "命中",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "C2PycH",
"name": "命中数值",
"fill": "$text",
"content": "12",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "JAH46",
"name": "命中标签",
"fill": "$muted",
"content": "命中",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "A8iRm",
"name": "准确率",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "QIq9x",
"name": "准确率数值",
"fill": "$text",
"content": "86%",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "ocFq2",
"name": "准确率标签",
"fill": "$muted",
"content": "准确率",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "nIy9a",
"name": "连击",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "HTA9o",
"name": "连击数值",
"fill": "$target",
"content": "x6",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "s1vE8z",
"name": "连击标签",
"fill": "$muted",
"content": "连击",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "mWQRa",
"name": "时间",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "RjLGx",
"name": "时间数值",
"fill": "$text",
"content": "01:24",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "D7dVK",
"name": "时间标签",
"fill": "$muted",
"content": "时间",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "H0sn8S",
"x": 14,
"y": 88,
"name": "识别质量",
"width": 118,
"height": 32,
"fill": "#FFFFFFD9",
"cornerRadius": 16,
"gap": 7,
"padding": [
7,
10
],
"alignItems": "center",
"children": [
{
"type": "ellipse",
"id": "U6SsCc",
"name": "识别质量点",
"fill": "$success",
"width": 8,
"height": 8
},
{
"type": "text",
"id": "L8OCg",
"name": "识别质量文字",
"fill": "$success",
"content": "追踪稳定",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "RqLWy",
"x": 68,
"y": 456,
"name": "动作提示",
"width": 254,
"height": 52,
"fill": "#17212BD9",
"cornerRadius": 8,
"gap": 10,
"padding": [
12,
16
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "T0anK",
"name": "动作方向图标",
"width": 22,
"height": 22,
"icon": "move-up-right",
"library": "lucide",
"fill": "$target"
},
{
"type": "frame",
"id": "Rhhje",
"name": "动作提示文字组",
"layout": "vertical",
"gap": 2,
"children": [
{
"type": "text",
"id": "kYIRq",
"name": "动作主提示",
"fill": "#FFFFFF",
"content": "右手伸向橙色目标",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
},
{
"type": "text",
"id": "JCwhn",
"name": "动作副提示",
"fill": "#D6E0E3",
"content": "保持身体面向镜头",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "pynoe",
"name": "训练控制区",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"layout": "vertical",
"gap": 12,
"padding": [
14,
18,
20,
18
],
"children": [
{
"type": "frame",
"id": "qmtAU",
"name": "训练进度",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "Q1C9C",
"name": "阶段文字",
"fill": "$text",
"content": "本轮目标 30 次",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
},
{
"type": "text",
"id": "cX5Wc",
"name": "剩余时间",
"fill": "$primary",
"content": "剩余 03:36",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "R98RM",
"name": "进度条轨道",
"width": "fill_container",
"height": 8,
"fill": "#E3EBEF",
"cornerRadius": 4,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 4,
"id": "wKxU3",
"x": 0,
"y": 0,
"name": "进度条",
"fill": "$primary",
"width": 144,
"height": 8
}
]
},
{
"type": "frame",
"id": "l9uGA",
"name": "控制按钮",
"width": "fill_container",
"height": 58,
"gap": 12,
"children": [
{
"type": "frame",
"id": "C1dNC",
"name": "暂停训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$primarySoft",
"cornerRadius": 8,
"stroke": "$primary",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "Z5mfoS",
"name": "暂停图标",
"width": 22,
"height": 22,
"icon": "pause",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "A8oEDU",
"name": "暂停文字",
"fill": "$primary",
"content": "暂停",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "OzpFF",
"name": "结束训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "Tabgc",
"name": "结束图标",
"width": 19,
"height": 19,
"icon": "square",
"library": "lucide",
"fill": "$danger"
},
{
"type": "text",
"id": "gXKUV",
"name": "结束文字",
"fill": "$text",
"content": "结束训练",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "xxAcl",
"layoutPosition": "absolute",
"x": 0,
"y": 102,
"name": "追踪丢失遮罩",
"width": 390,
"height": 540,
"fill": "#17212BCC",
"layout": "vertical",
"gap": 16,
"padding": [
112,
28
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "nWYMN",
"name": "重新识别图标容器",
"width": 76,
"height": 76,
"fill": "#FFFFFF1F",
"cornerRadius": 38,
"stroke": "#FFFFFF66",
"strokeWidth": 1,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "UzNTt",
"name": "重新识别图标",
"width": 38,
"height": 38,
"icon": "scan-line",
"library": "lucide",
"fill": "#FFFFFF"
}
]
},
{
"type": "text",
"id": "U3Kui",
"name": "追踪丢失标题",
"fill": "#FFFFFF",
"content": "暂时看不到你的双手",
"fontFamily": "Inter",
"fontSize": 20,
"fontWeight": "800"
},
{
"type": "text",
"id": "nOSXU",
"name": "追踪丢失说明",
"fill": "#DDE8EA",
"textGrowth": "fixed-width",
"width": 310,
"content": "训练已自动暂停。请回到取景框中央,并保持肩膀和双手完整入镜。",
"lineHeight": 1.55,
"textAlign": "center",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "500"
},
{
"type": "frame",
"id": "lQwON",
"name": "恢复提示",
"width": 310,
"fill": "#FFFFFF14",
"cornerRadius": 8,
"layout": "vertical",
"gap": 8,
"padding": [
12,
14
],
"children": [
{
"type": "frame",
"id": "omMZc",
"name": "手机保持稳定,镜头与肩膀同高",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "EBVEd",
"name": "手机保持稳定,镜头与肩膀同高图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "#6EE7B7"
},
{
"type": "text",
"id": "mSCm2",
"name": "手机保持稳定,镜头与肩膀同高文字",
"fill": "#FFFFFF",
"content": "手机保持稳定,镜头与肩膀同高",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "wovq0",
"name": "距离镜头约 1.5 米",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "g6zPAX",
"name": "距离镜头约 1.5 米图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "#6EE7B7"
},
{
"type": "text",
"id": "Iaz6i",
"name": "距离镜头约 1.5 米文字",
"fill": "#FFFFFF",
"content": "距离镜头约 1.5 米",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "M6vkf",
"name": "避免背光或多人进入画面",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "NEdYX",
"name": "避免背光或多人进入画面图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "#6EE7B7"
},
{
"type": "text",
"id": "g0eIMa",
"name": "避免背光或多人进入画面文字",
"fill": "#FFFFFF",
"content": "避免背光或多人进入画面",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "DCWZq",
"name": "重新校准按钮",
"width": 220,
"height": 50,
"fill": "$target",
"cornerRadius": 8,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "engyO",
"name": "重新校准图标",
"width": 20,
"height": 20,
"icon": "refresh-cw",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "text",
"id": "VKHgI",
"name": "重新校准文字",
"fill": "#FFFFFF",
"content": "重新校准",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "800"
}
]
},
{
"type": "text",
"id": "JGNty",
"name": "自动恢复提示",
"fill": "#BFD0D4",
"content": "识别恢复后将自动继续",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "kqYeY",
"x": 2290,
"y": 0,
"name": "04 命中与阶段奖励",
"clip": true,
"width": 390,
"height": 844,
"fill": "$bg",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "AIG3H",
"name": "系统状态栏",
"width": "fill_container",
"height": 44,
"padding": [
14,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "QTjZ6",
"name": "时间",
"fill": "$text",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
},
{
"type": "frame",
"id": "rTPwD",
"name": "系统图标",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "OHLAp",
"name": "网络",
"width": 16,
"height": 16,
"icon": "wifi",
"library": "lucide",
"fill": "$text"
},
{
"type": "icon",
"id": "g68yGi",
"name": "电量",
"width": 18,
"height": 18,
"icon": "battery-full",
"library": "lucide",
"fill": "$text"
}
]
}
]
},
{
"type": "frame",
"id": "E0VDz1",
"name": "训练标题栏",
"width": "fill_container",
"height": 58,
"fill": "$surface",
"padding": [
8,
18
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "PEs45",
"name": "退出按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "OtQhP",
"name": "关闭图标",
"width": 23,
"height": 23,
"icon": "x",
"library": "lucide",
"fill": "$text"
}
]
},
{
"type": "frame",
"id": "z0hfmB",
"name": "标题",
"layout": "vertical",
"gap": 2,
"alignItems": "center",
"children": [
{
"type": "text",
"id": "NfJgd",
"name": "主标题",
"fill": "$text",
"content": "握力环训练 2.0",
"fontFamily": "Inter",
"fontSize": 18,
"fontWeight": "700"
},
{
"type": "text",
"id": "c7h5eU",
"name": "训练状态",
"fill": "$success",
"content": "标准 · 坐姿上肢",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "X6bOdq",
"name": "声音按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "mudc7",
"name": "声音图标",
"width": 22,
"height": 22,
"icon": "volume-2",
"library": "lucide",
"fill": "$muted"
}
]
}
]
},
{
"type": "frame",
"id": "Yh74T",
"name": "摄像头游戏舞台",
"clip": true,
"width": "fill_container",
"height": 540,
"fill": "#DDE9EC",
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "d0jb4",
"x": 0,
"y": 0,
"name": "镜像摄像头画面",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#BFD3D8",
"position": 0
},
{
"color": "#EAF2F3",
"position": 1
}
]
},
"width": 390,
"height": 540
},
{
"type": "ellipse",
"id": "OwxLz",
"x": 158,
"y": 112,
"name": "用户头部",
"fill": "#79939A",
"width": 74,
"height": 84
},
{
"type": "frame",
"id": "VB2JE",
"x": 106,
"y": 188,
"name": "用户身体",
"width": 178,
"height": 270,
"fill": "#8CA4AA",
"cornerRadius": [
72,
72,
20,
20
]
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "o9N1jh",
"x": 48,
"y": 225,
"name": "左臂",
"rotation": -18,
"fill": "#8CA4AA",
"width": 88,
"height": 32
},
{
"type": "rectangle",
"cornerRadius": 16,
"id": "PYNl0",
"x": 254,
"y": 206,
"name": "右臂",
"rotation": 18,
"fill": "#8CA4AA",
"width": 96,
"height": 32
},
{
"type": "ellipse",
"id": "q2u6Ln",
"x": 294,
"y": 140,
"name": "右侧目标光环",
"fill": "#F28C4530",
"width": 82,
"height": 82,
"stroke": "$target",
"strokeWidth": 3
},
{
"type": "ellipse",
"id": "LA5Vv",
"x": 311,
"y": 157,
"name": "右侧目标核心",
"fill": "$target",
"width": 48,
"height": 48
},
{
"type": "icon",
"id": "nZb6w",
"x": 324,
"y": 170,
"name": "目标握拳图标",
"width": 22,
"height": 22,
"icon": "hand",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "ellipse",
"id": "L7MAYM",
"x": 278,
"y": 205,
"name": "轨迹点一",
"fill": "#F28C4580",
"width": 8,
"height": 8
},
{
"type": "ellipse",
"id": "oCMXZ",
"x": 291,
"y": 192,
"name": "轨迹点二",
"fill": "#F28C45A0",
"width": 11,
"height": 11
},
{
"type": "frame",
"id": "J0mtMF",
"x": 14,
"y": 14,
"name": "顶部数据 HUD",
"width": 362,
"height": 62,
"fill": "#FFFFFFE8",
"cornerRadius": 8,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#00000012",
"offset": {
"x": 0,
"y": 3
},
"blur": 10
},
"gap": 8,
"padding": [
8,
10
],
"children": [
{
"type": "frame",
"id": "l6cZG3",
"name": "命中",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "g0S2ya",
"name": "命中数值",
"fill": "$text",
"content": "12",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "o5sLG",
"name": "命中标签",
"fill": "$muted",
"content": "命中",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "gR5bO",
"name": "准确率",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "C36tXn",
"name": "准确率数值",
"fill": "$text",
"content": "86%",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "vPACb",
"name": "准确率标签",
"fill": "$muted",
"content": "准确率",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "JTyWE",
"name": "连击",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "eTzvM",
"name": "连击数值",
"fill": "$target",
"content": "x6",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "vvtqx",
"name": "连击标签",
"fill": "$muted",
"content": "连击",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "c215B1",
"name": "时间",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 2,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "BoU3J",
"name": "时间数值",
"fill": "$text",
"content": "01:24",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "800"
},
{
"type": "text",
"id": "ZQ13E",
"name": "时间标签",
"fill": "$muted",
"content": "时间",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "KhT5n",
"x": 14,
"y": 88,
"name": "识别质量",
"width": 118,
"height": 32,
"fill": "#FFFFFFD9",
"cornerRadius": 16,
"gap": 7,
"padding": [
7,
10
],
"alignItems": "center",
"children": [
{
"type": "ellipse",
"id": "lJJ6g",
"name": "识别质量点",
"fill": "$success",
"width": 8,
"height": 8
},
{
"type": "text",
"id": "O7B4aW",
"name": "识别质量文字",
"fill": "$success",
"content": "追踪稳定",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "ANIjS",
"x": 68,
"y": 456,
"name": "动作提示",
"width": 254,
"height": 52,
"fill": "#17212BD9",
"cornerRadius": 8,
"gap": 10,
"padding": [
12,
16
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "WdFZT",
"name": "动作方向图标",
"width": 22,
"height": 22,
"icon": "move-up-right",
"library": "lucide",
"fill": "$target"
},
{
"type": "frame",
"id": "jSjke",
"name": "动作提示文字组",
"layout": "vertical",
"gap": 2,
"children": [
{
"type": "text",
"id": "w3JvR7",
"name": "动作主提示",
"fill": "#FFFFFF",
"content": "右手伸向橙色目标",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
},
{
"type": "text",
"id": "LFs6K",
"name": "动作副提示",
"fill": "#D6E0E3",
"content": "保持身体面向镜头",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "Jg0RS",
"name": "训练控制区",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"layout": "vertical",
"gap": 12,
"padding": [
14,
18,
20,
18
],
"children": [
{
"type": "frame",
"id": "yguue",
"name": "训练进度",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "jtmQn",
"name": "阶段文字",
"fill": "$text",
"content": "本轮目标 30 次",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
},
{
"type": "text",
"id": "oPS2Z",
"name": "剩余时间",
"fill": "$primary",
"content": "剩余 03:36",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "ieMTm",
"name": "进度条轨道",
"width": "fill_container",
"height": 8,
"fill": "#E3EBEF",
"cornerRadius": 4,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 4,
"id": "Men8L",
"x": 0,
"y": 0,
"name": "进度条",
"fill": "$primary",
"width": 144,
"height": 8
}
]
},
{
"type": "frame",
"id": "sMlhH",
"name": "控制按钮",
"width": "fill_container",
"height": 58,
"gap": 12,
"children": [
{
"type": "frame",
"id": "M7w9PX",
"name": "暂停训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$primarySoft",
"cornerRadius": 8,
"stroke": "$primary",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "GutUd",
"name": "暂停图标",
"width": 22,
"height": 22,
"icon": "pause",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "U3qjU",
"name": "暂停文字",
"fill": "$primary",
"content": "暂停",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "qjtF1",
"name": "结束训练",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "DKmMN",
"name": "结束图标",
"width": 19,
"height": 19,
"icon": "square",
"library": "lucide",
"fill": "$danger"
},
{
"type": "text",
"id": "T4LTg1",
"name": "结束文字",
"fill": "$text",
"content": "结束训练",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "700"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "n7BCh",
"layoutPosition": "absolute",
"x": 238,
"y": 190,
"name": "命中爆裂反馈",
"width": 140,
"height": 140,
"layout": "none",
"children": [
{
"type": "ellipse",
"id": "m4IdLe",
"x": 0,
"y": 0,
"name": "外圈冲击波",
"fill": "#F28C4518",
"width": 140,
"height": 140,
"stroke": "#F28C4566",
"strokeWidth": 2
},
{
"type": "ellipse",
"id": "X23mOy",
"x": 20,
"y": 20,
"name": "中圈冲击波",
"fill": "#F28C4530",
"width": 100,
"height": 100,
"stroke": "$target",
"strokeWidth": 3
},
{
"type": "ellipse",
"id": "nQUz9",
"x": 43,
"y": 43,
"name": "命中核心",
"fill": "$target",
"width": 54,
"height": 54
},
{
"type": "icon",
"id": "v6v8v",
"x": 58,
"y": 58,
"name": "命中对勾",
"width": 24,
"height": 24,
"icon": "check",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "ellipse",
"id": "UaZpC",
"x": 5,
"y": 34,
"name": "奖励粒子",
"fill": "$target",
"width": 8,
"height": 8
},
{
"type": "ellipse",
"id": "r5AW4",
"x": 120,
"y": 20,
"name": "奖励粒子",
"fill": "$target",
"width": 10,
"height": 10
},
{
"type": "ellipse",
"id": "PrS1A",
"x": 125,
"y": 104,
"name": "奖励粒子",
"fill": "$target",
"width": 7,
"height": 7
},
{
"type": "ellipse",
"id": "w68W4",
"x": 18,
"y": 116,
"name": "奖励粒子",
"fill": "$target",
"width": 9,
"height": 9
},
{
"type": "ellipse",
"id": "nS26K",
"x": 68,
"y": 0,
"name": "奖励粒子",
"fill": "$target",
"width": 6,
"height": 6
}
]
},
{
"type": "frame",
"id": "mOCHI",
"layoutPosition": "absolute",
"x": 46,
"y": 118,
"name": "连击奖励提示",
"width": 298,
"height": 78,
"fill": "#FFFFFFF2",
"cornerRadius": 8,
"stroke": "#F6C79E",
"strokeWidth": 1,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#0000001F",
"offset": {
"x": 0,
"y": 5
},
"blur": 16
},
"gap": 12,
"padding": [
12,
16
],
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "KOsSX",
"name": "奖励徽章",
"width": 48,
"height": 48,
"fill": "$targetSoft",
"cornerRadius": 24,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "T0qhy",
"name": "奖励图标",
"width": 25,
"height": 25,
"icon": "zap",
"library": "lucide",
"fill": "$target"
}
]
},
{
"type": "frame",
"id": "i7LAO",
"name": "奖励文案",
"width": "fill_container",
"layout": "vertical",
"gap": 3,
"children": [
{
"type": "text",
"id": "RZeOn",
"name": "奖励标题",
"fill": "$text",
"content": "连续命中 10 次",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "text",
"id": "sRXxT",
"name": "奖励说明",
"fill": "$muted",
"content": "反应速度提升,获得 +50 分",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "text",
"id": "M1zcNf",
"name": "加分",
"fill": "$target",
"content": "+50",
"fontFamily": "Inter",
"fontSize": 21,
"fontWeight": "800"
}
]
}
]
},
{
"type": "frame",
"id": "Gd9Pk",
"x": 2760,
"y": 0,
"name": "05 训练结算",
"clip": true,
"width": 390,
"height": 844,
"fill": "$bg",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "mNuV5",
"name": "系统状态栏",
"width": "fill_container",
"height": 44,
"padding": [
14,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "mSRfG",
"name": "时间",
"fill": "$text",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "600"
},
{
"type": "frame",
"id": "EWVL3",
"name": "系统图标",
"gap": 8,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "PRLjJ",
"name": "网络",
"width": 16,
"height": 16,
"icon": "wifi",
"library": "lucide",
"fill": "$text"
},
{
"type": "icon",
"id": "Co782",
"name": "电量",
"width": 18,
"height": 18,
"icon": "battery-full",
"library": "lucide",
"fill": "$text"
}
]
}
]
},
{
"type": "frame",
"id": "u36TW0",
"name": "结算标题栏",
"width": "fill_container",
"height": 58,
"fill": "$surface",
"padding": [
8,
18
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "NkEME",
"name": "关闭按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "k5ylkq",
"name": "关闭图标",
"width": 23,
"height": 23,
"icon": "x",
"library": "lucide",
"fill": "$text"
}
]
},
{
"type": "text",
"id": "hu0DB",
"name": "页面标题",
"fill": "$text",
"content": "训练完成",
"fontFamily": "Inter",
"fontSize": 18,
"fontWeight": "700"
},
{
"type": "frame",
"id": "Akc8Y",
"name": "分享按钮",
"width": 44,
"height": 44,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "djNl4",
"name": "分享图标",
"width": 22,
"height": 22,
"icon": "share-2",
"library": "lucide",
"fill": "$primary"
}
]
}
]
},
{
"type": "frame",
"id": "F3uol",
"name": "结算内容",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 18,
"padding": [
20,
18,
22,
18
],
"children": [
{
"type": "frame",
"id": "c57Y7d",
"name": "完成成绩",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "nhLqP",
"name": "完成徽章",
"width": 100,
"height": 100,
"layout": "none",
"children": [
{
"type": "ellipse",
"id": "e1kMgW",
"x": 0,
"y": 0,
"name": "徽章光环",
"fill": "$primarySoft",
"width": 100,
"height": 100,
"stroke": "#75C7C7",
"strokeWidth": 2
},
{
"type": "ellipse",
"id": "tEQBG",
"x": 17,
"y": 17,
"name": "徽章核心",
"fill": "$primary",
"width": 66,
"height": 66
},
{
"type": "icon",
"id": "k3uYux",
"x": 36,
"y": 36,
"name": "奖杯图标",
"width": 28,
"height": 28,
"icon": "trophy",
"library": "lucide",
"fill": "#FFFFFF"
}
]
},
{
"type": "text",
"id": "p0MuoU",
"name": "完成标题",
"fill": "$text",
"content": "本轮表现很稳定",
"fontFamily": "Inter",
"fontSize": 22,
"fontWeight": "800"
},
{
"type": "text",
"id": "rHGXx",
"name": "完成说明",
"fill": "$muted",
"content": "左右伸展均衡,保持这个节奏",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "E2znW",
"name": "核心成绩",
"width": "fill_container",
"height": 86,
"gap": 8,
"children": [
{
"type": "frame",
"id": "I9Ud8t",
"name": "有效命中",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "J7XQRK",
"name": "有效命中数值",
"fill": "$primary",
"content": "28",
"fontFamily": "Inter",
"fontSize": 22,
"fontWeight": "800"
},
{
"type": "text",
"id": "R2jDD",
"name": "有效命中标签",
"fill": "$muted",
"content": "有效命中",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "d9GuSx",
"name": "准确率",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "V97U7W",
"name": "准确率数值",
"fill": "$success",
"content": "90%",
"fontFamily": "Inter",
"fontSize": 22,
"fontWeight": "800"
},
{
"type": "text",
"id": "wA5rL",
"name": "准确率标签",
"fill": "$muted",
"content": "准确率",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "WvSsN",
"name": "最佳连击",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "u9VCjI",
"name": "最佳连击数值",
"fill": "$target",
"content": "x12",
"fontFamily": "Inter",
"fontSize": 22,
"fontWeight": "800"
},
{
"type": "text",
"id": "p2guq",
"name": "最佳连击标签",
"fill": "$muted",
"content": "最佳连击",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "600"
}
]
}
]
},
{
"type": "frame",
"id": "gRZ9v",
"name": "训练详情",
"width": "fill_container",
"layout": "vertical",
"gap": 12,
"children": [
{
"type": "frame",
"id": "YS94v",
"name": "详情标题行",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "RxQDB",
"name": "详情标题",
"fill": "$text",
"content": "训练详情",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "800"
},
{
"type": "text",
"id": "Rz91s",
"name": "训练模式",
"fill": "$primary",
"content": "标准 · 坐姿上肢",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "OQ8pz",
"name": "详情面板",
"width": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 12,
"padding": [
14,
16
],
"children": [
{
"type": "frame",
"id": "SmkLs",
"name": "训练时长",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "TH9ny",
"name": "训练时长左侧",
"gap": 9,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "P2JnVC",
"name": "训练时长图标",
"width": 18,
"height": 18,
"icon": "timer",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "RDytl",
"name": "训练时长文字",
"fill": "$muted",
"content": "训练时长",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
}
]
},
{
"type": "text",
"id": "rHxLG",
"name": "训练时长数值",
"fill": "$text",
"content": "05:00",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
}
]
},
{
"type": "frame",
"id": "ALyeh",
"name": "平均反应",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "K63ZS",
"name": "平均反应左侧",
"gap": 9,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "S5RQa",
"name": "平均反应图标",
"width": 18,
"height": 18,
"icon": "gauge",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "kwvkN",
"name": "平均反应文字",
"fill": "$muted",
"content": "平均反应",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
}
]
},
{
"type": "text",
"id": "Na8gv",
"name": "平均反应数值",
"fill": "$text",
"content": "0.86 秒",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
}
]
},
{
"type": "frame",
"id": "Z7qMj",
"name": "活动消耗",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "KIx5C",
"name": "活动消耗左侧",
"gap": 9,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "l8Cwpk",
"name": "活动消耗图标",
"width": 18,
"height": 18,
"icon": "flame",
"library": "lucide",
"fill": "$primary"
},
{
"type": "text",
"id": "oy1up",
"name": "活动消耗文字",
"fill": "$muted",
"content": "活动消耗",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "600"
}
]
},
{
"type": "text",
"id": "iY7B3",
"name": "活动消耗数值",
"fill": "$text",
"content": "约 8.4 kcal",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "E4ZdxK",
"name": "左右伸展",
"width": "fill_container",
"layout": "vertical",
"gap": 9,
"children": [
{
"type": "frame",
"id": "j3ARmY",
"name": "伸展标题行",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "jxrau",
"name": "伸展标题",
"fill": "$text",
"content": "左右伸展",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "800"
},
{
"type": "text",
"id": "W7IGHe",
"name": "伸展评价",
"fill": "$success",
"content": "较均衡",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "bVefE",
"name": "伸展数据",
"width": "fill_container",
"height": 48,
"gap": 10,
"children": [
{
"type": "frame",
"id": "hBNQt",
"name": "左侧伸展",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 5,
"children": [
{
"type": "frame",
"id": "yll7E",
"name": "左侧标签",
"width": "fill_container",
"justifyContent": "space_between",
"children": [
{
"type": "text",
"id": "WPjzc",
"name": "左侧文字",
"fill": "$muted",
"content": "左侧",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
},
{
"type": "text",
"id": "D6h6oy",
"name": "左侧次数",
"fill": "$text",
"content": "13 次",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "GhxRK",
"name": "左侧轨道",
"width": "fill_container",
"height": 10,
"fill": "#E4ECEF",
"cornerRadius": 5,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 5,
"id": "gTiyv",
"x": 0,
"y": 0,
"name": "左侧进度",
"fill": "$primary",
"width": 145,
"height": 10
}
]
}
]
},
{
"type": "frame",
"id": "CAFe9",
"name": "右侧伸展",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 5,
"children": [
{
"type": "frame",
"id": "y9IzJ",
"name": "右侧标签",
"width": "fill_container",
"justifyContent": "space_between",
"children": [
{
"type": "text",
"id": "IMIFZ",
"name": "右侧文字",
"fill": "$muted",
"content": "右侧",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
},
{
"type": "text",
"id": "c8lEK",
"name": "右侧次数",
"fill": "$text",
"content": "15 次",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "xdG3Y",
"name": "右侧轨道",
"width": "fill_container",
"height": 10,
"fill": "#E4ECEF",
"cornerRadius": 5,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 5,
"id": "GAP0V",
"x": 0,
"y": 0,
"name": "右侧进度",
"fill": "$target",
"width": 165,
"height": 10
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "xlfgJ",
"name": "结算操作",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "I6KKR",
"name": "再练一次",
"width": "fill_container",
"height": 54,
"fill": "$primary",
"cornerRadius": 8,
"gap": 9,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "oRYdp",
"name": "再练图标",
"width": 20,
"height": 20,
"icon": "rotate-ccw",
"library": "lucide",
"fill": "#FFFFFF"
},
{
"type": "text",
"id": "U5pYmM",
"name": "再练文字",
"fill": "#FFFFFF",
"content": "再练一次",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
}
]
},
{
"type": "frame",
"id": "MIEnz",
"name": "返回训练中心",
"width": "fill_container",
"height": 48,
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "HWqCB",
"name": "返回文字",
"fill": "$text",
"content": "返回训练中心",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "700"
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "ZmLmd",
"x": 880,
"y": 944,
"name": "交互动效说明",
"clip": true,
"width": 1120,
"height": 520,
"fill": "#F3F7F8",
"layout": "vertical",
"gap": 24,
"padding": [
28,
32
],
"children": [
{
"type": "frame",
"id": "LkKBN",
"name": "动效标题区",
"width": "fill_container",
"layout": "vertical",
"gap": 6,
"children": [
{
"type": "text",
"id": "L4Upn",
"name": "动效标题",
"fill": "$text",
"content": "握力环训练 2.0 · 关键交互动效",
"fontFamily": "Inter",
"fontSize": 24,
"fontWeight": "800"
},
{
"type": "text",
"id": "Rttnc",
"name": "动效说明",
"fill": "$muted",
"content": "所有运动反馈使用 transform 与 opacity;推理帧率和视觉动画解耦,并提供减少动效模式。",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "C79pr",
"name": "动效卡片行",
"width": "fill_container",
"height": 340,
"gap": 14,
"children": [
{
"type": "frame",
"id": "HrIiY",
"name": "目标出现",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 14,
"padding": [
18,
16
],
"children": [
{
"type": "frame",
"id": "nqdp2",
"name": "目标出现图标容器",
"width": 52,
"height": 52,
"fill": "$targetSoft",
"cornerRadius": 26,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "q1fF9r",
"name": "目标出现图标",
"width": 25,
"height": 25,
"icon": "target",
"library": "lucide",
"fill": "$target"
}
]
},
{
"type": "text",
"id": "fFboD",
"name": "目标出现标题",
"fill": "$text",
"content": "目标出现",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "pEafu",
"name": "目标出现步骤",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "BUias",
"name": "0120ms:缩放 0.7 → 1",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "G5gFe",
"name": "0120ms:缩放 0.7 → 1圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "QtLhL",
"name": "0120ms:缩放 0.7 → 1文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "0120ms:缩放 0.7 → 1",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "IwPiY",
"name": "120220ms:轻微回弹",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "BKhg8",
"name": "120220ms:轻微回弹圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "lBJxI",
"name": "120220ms:轻微回弹文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "120220ms:轻微回弹",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "uGsWa",
"name": "目标未激活时保持呼吸环",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "Fe53l",
"name": "目标未激活时保持呼吸环圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "P4f2o",
"name": "目标未激活时保持呼吸环文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "目标未激活时保持呼吸环",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "LoPkP",
"name": "有效命中",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 14,
"padding": [
18,
16
],
"children": [
{
"type": "frame",
"id": "Bo1e9",
"name": "有效命中图标容器",
"width": 52,
"height": 52,
"fill": "#E4F5EC",
"cornerRadius": 26,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "GoZK4",
"name": "有效命中图标",
"width": 25,
"height": 25,
"icon": "circle-check",
"library": "lucide",
"fill": "$success"
}
]
},
{
"type": "text",
"id": "D6xWu3",
"name": "有效命中标题",
"fill": "$text",
"content": "有效命中",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "LBIHA",
"name": "有效命中步骤",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "SSThI",
"name": "080ms:目标压缩",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "i2nQm",
"name": "080ms:目标压缩圆点",
"fill": "$success",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "p73ONU",
"name": "080ms:目标压缩文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "080ms:目标压缩",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "G89tzJ",
"name": "80260ms:冲击波 + 粒子",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "w4JpH",
"name": "80260ms:冲击波 + 粒子圆点",
"fill": "$success",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "by7IH",
"name": "80260ms:冲击波 + 粒子文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "80260ms:冲击波 + 粒子",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "jHbon",
"name": "同步短震与命中音效",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "uNvbH",
"name": "同步短震与命中音效圆点",
"fill": "$success",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "oX8lG",
"name": "同步短震与命中音效文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "同步短震与命中音效",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "BfpMb",
"name": "连击奖励",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 14,
"padding": [
18,
16
],
"children": [
{
"type": "frame",
"id": "UFEc2",
"name": "连击奖励图标容器",
"width": 52,
"height": 52,
"fill": "$targetSoft",
"cornerRadius": 26,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "QK8lX",
"name": "连击奖励图标",
"width": 25,
"height": 25,
"icon": "zap",
"library": "lucide",
"fill": "$target"
}
]
},
{
"type": "text",
"id": "ZOK6D",
"name": "连击奖励标题",
"fill": "$text",
"content": "连击奖励",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "S7CaKV",
"name": "连击奖励步骤",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "jgpXS",
"name": "顶部提示下滑 180ms",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "tSf36",
"name": "顶部提示下滑 180ms圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "c4BOW",
"name": "顶部提示下滑 180ms文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "顶部提示下滑 180ms",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "hHsly",
"name": "停留 1.2 秒,不阻断训练",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "JdUj1",
"name": "停留 1.2 秒,不阻断训练圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "o2C8Qk",
"name": "停留 1.2 秒,不阻断训练文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "停留 1.2 秒,不阻断训练",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "x1zBTM",
"name": "淡出 180ms,分数滚动",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "d9TCGm",
"name": "淡出 180ms,分数滚动圆点",
"fill": "$target",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "GtvUJ",
"name": "淡出 180ms,分数滚动文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "淡出 180ms,分数滚动",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "AK4kD",
"name": "追踪丢失",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 14,
"padding": [
18,
16
],
"children": [
{
"type": "frame",
"id": "e0tteH",
"name": "追踪丢失图标容器",
"width": 52,
"height": 52,
"fill": "$primarySoft",
"cornerRadius": 26,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "FFXlO",
"name": "追踪丢失图标",
"width": 25,
"height": 25,
"icon": "scan-line",
"library": "lucide",
"fill": "$primary"
}
]
},
{
"type": "text",
"id": "Cs5UT",
"name": "追踪丢失标题",
"fill": "$text",
"content": "追踪丢失",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "YsrHH",
"name": "追踪丢失步骤",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "ivBZw",
"name": "立即冻结计分和生成目标",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "KBlCk",
"name": "立即冻结计分和生成目标圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "jTNxW",
"name": "立即冻结计分和生成目标文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "立即冻结计分和生成目标",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "U3yFL",
"name": "舞台遮罩淡入 160ms",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "EHr3T",
"name": "舞台遮罩淡入 160ms圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "qTfRs",
"name": "舞台遮罩淡入 160ms文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "舞台遮罩淡入 160ms",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "QWB3U",
"name": "恢复后倒计时 3 秒继续",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "aU0MV",
"name": "恢复后倒计时 3 秒继续圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "XMqW4",
"name": "恢复后倒计时 3 秒继续文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "恢复后倒计时 3 秒继续",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "s9WMM",
"name": "暂停 / 继续",
"width": "fill_container",
"height": "fill_container",
"fill": "$surface",
"cornerRadius": 8,
"stroke": "$border",
"strokeWidth": 1,
"layout": "vertical",
"gap": 14,
"padding": [
18,
16
],
"children": [
{
"type": "frame",
"id": "vuFoh",
"name": "暂停 / 继续图标容器",
"width": 52,
"height": 52,
"fill": "$primarySoft",
"cornerRadius": 26,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "LfE43",
"name": "暂停 / 继续图标",
"width": 25,
"height": 25,
"icon": "pause",
"library": "lucide",
"fill": "$primary"
}
]
},
{
"type": "text",
"id": "fZffy",
"name": "暂停 / 继续标题",
"fill": "$text",
"content": "暂停 / 继续",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "spcZg",
"name": "暂停 / 继续步骤",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "ZqfNC",
"name": "暂停时目标缩回 180ms",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "ehsuN",
"name": "暂停时目标缩回 180ms圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "Pb0pu",
"name": "暂停时目标缩回 180ms文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "暂停时目标缩回 180ms",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "wBrZc",
"name": "摄像头保留预览,停止推理",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "Wfy7h",
"name": "摄像头保留预览,停止推理圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "HYg26",
"name": "摄像头保留预览,停止推理文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "摄像头保留预览,停止推理",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "uUhPB",
"name": "继续时重新校准后恢复",
"width": "fill_container",
"gap": 7,
"children": [
{
"type": "ellipse",
"id": "oz8qC",
"name": "继续时重新校准后恢复圆点",
"fill": "$primary",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "xsMAX",
"name": "继续时重新校准后恢复文字",
"fill": "$muted",
"textGrowth": "fixed-width",
"width": "fill_container",
"content": "继续时重新校准后恢复",
"lineHeight": 1.45,
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "Izb8y",
"name": "动效原则",
"width": "fill_container",
"fill": "#E8F0F2",
"cornerRadius": 8,
"gap": 18,
"padding": [
12,
16
],
"children": [
{
"type": "frame",
"id": "vQBaH",
"name": "命中反馈 < 300ms",
"width": "fill_container",
"gap": 7,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "fM3DY",
"name": "命中反馈 < 300ms图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "$success"
},
{
"type": "text",
"id": "X0PgMn",
"name": "命中反馈 < 300ms文字",
"fill": "$text",
"content": "命中反馈 < 300ms",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "MI17h",
"name": "提示不遮挡手部目标",
"width": "fill_container",
"gap": 7,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "nEu4T",
"name": "提示不遮挡手部目标图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "$success"
},
{
"type": "text",
"id": "REWac",
"name": "提示不遮挡手部目标文字",
"fill": "$text",
"content": "提示不遮挡手部目标",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "cdeaN",
"name": "低性能设备关闭粒子",
"width": "fill_container",
"gap": 7,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "GW7XX",
"name": "低性能设备关闭粒子图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "$success"
},
{
"type": "text",
"id": "p1FRzm",
"name": "低性能设备关闭粒子文字",
"fill": "$text",
"content": "低性能设备关闭粒子",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "BtNAh",
"name": "识别丢失优先于游戏动效",
"width": "fill_container",
"gap": 7,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "knkVz",
"name": "识别丢失优先于游戏动效图标",
"width": 15,
"height": 15,
"icon": "check",
"library": "lucide",
"fill": "$success"
},
{
"type": "text",
"id": "hJwX7",
"name": "识别丢失优先于游戏动效文字",
"fill": "$text",
"content": "识别丢失优先于游戏动效",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "700"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "ljJdc",
"x": 3360,
"y": 969,
"name": "07 高保真可编辑结构",
"clip": true,
"width": 390,
"height": 844,
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#F0FDFA",
"position": 0
},
{
"color": "#F8FAFC",
"position": 0.28
},
{
"color": "#F8FAFC",
"position": 1
}
]
},
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "ebhIN",
"name": "TopChromePreview",
"width": "fill_container",
"layout": "vertical",
"children": [
{
"type": "frame",
"id": "IQwyJ",
"name": "StatusBar",
"width": "fill_container",
"height": 44,
"fill": "#FFFFFF",
"padding": [
14,
20,
6,
20
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "EU0kd",
"name": "StatusTime",
"fill": "#000000",
"content": "9:41",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "600"
},
{
"type": "frame",
"id": "oqLNR",
"name": "StatusIcons",
"gap": 6,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "wHBlI",
"name": "CellularIcon",
"width": 17,
"height": 11,
"icon": "chart-no-axes-column-increasing",
"library": "lucide",
"fill": "#101820"
},
{
"type": "icon",
"id": "V7KRb",
"name": "WifiIcon",
"width": 15,
"height": 11,
"icon": "wifi",
"library": "lucide",
"fill": "#101820"
},
{
"type": "icon",
"id": "g7adR",
"name": "BatteryIcon",
"width": 24,
"height": 12,
"icon": "battery-full",
"library": "lucide",
"fill": "#101820"
}
]
}
]
},
{
"type": "frame",
"id": "aVQjp",
"name": "TrainingHeader",
"width": "fill_container",
"height": 48,
"fill": "#FFFFFF",
"padding": [
4,
10,
4,
6
],
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "PiTlK",
"name": "BackButton",
"width": 40,
"height": 40,
"cornerRadius": 22,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "b6qllu",
"name": "BackIcon",
"width": 22,
"height": 22,
"icon": "chevron-left",
"library": "lucide",
"fill": "#181818"
}
]
},
{
"type": "frame",
"id": "IUJkp",
"name": "HeaderTitleGroup",
"layout": "vertical",
"gap": 2,
"alignItems": "center",
"children": [
{
"type": "text",
"id": "ax2R0",
"name": "HeaderTitle",
"fill": "#181818",
"content": "握力环训练 2.0",
"fontFamily": "Inter",
"fontSize": 17,
"fontWeight": "600"
},
{
"type": "frame",
"id": "VpLvR",
"name": "RecognitionStatus",
"gap": 4,
"alignItems": "center",
"children": [
{
"type": "ellipse",
"id": "qg0hp",
"name": "RecognitionDot",
"fill": "#07C160",
"width": 6,
"height": 6
},
{
"type": "text",
"id": "nJZV0",
"name": "RecognitionText",
"fill": "#888888",
"content": "识别中",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "500"
}
]
}
]
},
{
"type": "frame",
"id": "PVozm",
"name": "WechatCapsule",
"width": 87,
"height": 32,
"fill": "#FFFFFF",
"cornerRadius": 16,
"stroke": "#E5E5E5",
"strokeWidth": 0.5,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "AviOh",
"name": "CapsuleMore",
"width": "fill_container",
"height": "fill_container",
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "Pcg6i",
"name": "MoreDots",
"width": 18,
"height": 18,
"icon": "ellipsis",
"library": "lucide",
"fill": "#181818"
}
]
},
{
"type": "rectangle",
"id": "e5lbD",
"name": "CapsuleDivider",
"fill": "#D8D8D8",
"width": 0.5,
"height": 18
},
{
"type": "frame",
"id": "DIvgm",
"name": "CapsuleClose",
"width": "fill_container",
"height": "fill_container",
"layout": "none",
"children": [
{
"type": "ellipse",
"id": "n6jKe",
"x": 10,
"y": 7,
"name": "CloseOuter",
"fill": "#FFFFFF00",
"width": 18,
"height": 18,
"stroke": "#181818",
"strokeWidth": 1.2
},
{
"type": "ellipse",
"id": "uqSM4",
"x": 15.5,
"y": 12.5,
"name": "CloseInner",
"fill": "#FFFFFF00",
"width": 7,
"height": 7,
"stroke": "#181818",
"strokeWidth": 1.2
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "tRwlY",
"name": "MetricsWrap",
"width": "fill_container",
"layout": "vertical",
"padding": [
8,
16
],
"children": [
{
"type": "frame",
"id": "LNVgs",
"name": "LiveMetrics",
"width": "fill_container",
"height": 68,
"fill": "#FFFFFF",
"cornerRadius": 14,
"stroke": "#EDF1F4",
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#0F172A0F",
"offset": {
"x": 0,
"y": 4
},
"blur": 12
},
"gap": 4,
"padding": [
10,
6
],
"children": [
{
"type": "frame",
"id": "R2p5P",
"name": "Metric_12",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "VF6Du",
"name": "MetricValue_12",
"fill": "#17212B",
"content": "12",
"fontFamily": "Inter",
"fontSize": 20,
"fontWeight": "800"
},
{
"type": "text",
"id": "q4dPfs",
"name": "MetricLabel_12",
"fill": "#64748B",
"content": "有效握紧",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "f0rdc8",
"name": "Metric_86%",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "OO9KR",
"name": "MetricValue_86%",
"fill": "#17212B",
"content": "86%",
"fontFamily": "Inter",
"fontSize": 20,
"fontWeight": "800"
},
{
"type": "text",
"id": "eryKk",
"name": "MetricLabel_86%",
"fill": "#64748B",
"content": "准确率",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "gqHUt",
"name": "Metric_连击 x10",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "TyhPK",
"name": "MetricValue_连击 x10",
"fill": "#FF6B2C",
"content": "连击 x10",
"fontFamily": "Inter",
"fontSize": 15,
"fontWeight": "800"
},
{
"type": "frame",
"id": "qmUnN",
"name": "ComboTrack",
"width": 52,
"height": 6,
"fill": "#FFE4CC",
"cornerRadius": 3,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 3,
"id": "PYlFJ",
"x": 0,
"y": 0,
"name": "ComboProgress",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 90,
"size": {
"height": 1
},
"colors": [
{
"color": "#FF692E",
"position": 0
},
{
"color": "#FFD44D",
"position": 1
}
]
},
"width": 38,
"height": 6
}
]
}
]
},
{
"type": "frame",
"id": "q9TTol",
"name": "Metric_01:24",
"width": "fill_container",
"height": "fill_container",
"layout": "vertical",
"gap": 4,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "RMexQ",
"name": "MetricValue_01:24",
"fill": "#17212B",
"content": "01:24",
"fontFamily": "Inter",
"fontSize": 20,
"fontWeight": "800"
},
{
"type": "text",
"id": "A21vMu",
"name": "MetricLabel_01:24",
"fill": "#64748B",
"content": "训练时间",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "600"
}
]
}
]
}
]
},
{
"type": "frame",
"id": "qLIfU",
"name": "CameraStage",
"clip": true,
"width": "fill_container",
"height": 500,
"fill": "#F7FBFA",
"layout": "none",
"children": [
{
"type": "rectangle",
"id": "momQz",
"x": 0,
"y": 0,
"name": "CameraHandAsset",
"opacity": 0.82,
"fill": {
"type": "image",
"enabled": true,
"url": "./images/generated-1783752452774.png",
"mode": "fill"
},
"width": 390,
"height": 500
},
{
"type": "rectangle",
"id": "yAg1w",
"x": 0,
"y": 0,
"name": "StageLightWash",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#F8FAFCEB",
"position": 0
},
{
"color": "#F0FDFA66",
"position": 0.28
},
{
"color": "#FFFFFF33",
"position": 0.55
},
{
"color": "#F8FAFCE0",
"position": 1
}
]
},
"width": 390,
"height": 500
},
{
"type": "rectangle",
"id": "P6Ilq",
"x": 0,
"y": 360,
"name": "StageBottomWash",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 0,
"size": {
"height": 1
},
"colors": [
{
"color": "#F8FAFC00",
"position": 0
},
{
"color": "#F8FAFCF5",
"position": 1
}
]
},
"width": 390,
"height": 140
},
{
"type": "ellipse",
"id": "D04kE",
"x": 62,
"y": 165,
"name": "EnergyRingSoft",
"opacity": 0.8,
"fill": "#FFFFFF00",
"width": 266,
"height": 266,
"stroke": "#5EEAD499",
"strokeWidth": 2
},
{
"type": "frame",
"id": "C2QkOG",
"x": 55,
"y": 10,
"name": "CycleInstruction",
"width": 280,
"height": 28,
"gap": 12,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "rectangle",
"cornerRadius": 1,
"id": "A7Tu0",
"name": "InstrRuleL",
"fill": "#94A3B8AA",
"width": 40,
"height": 1.5
},
{
"type": "text",
"id": "HAvU0",
"name": "CycleInstructionText",
"fill": "#64748B",
"content": "握紧—保持—松开",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "700"
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "WYUW6",
"name": "InstrRuleR",
"fill": "#94A3B8AA",
"width": 40,
"height": 1.5
}
]
},
{
"type": "text",
"id": "c4Sbh",
"x": 105,
"y": 40,
"name": "HitTitle",
"fill": "#22B85A",
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#FFFFFFEE",
"offset": {
"x": 0,
"y": 1
},
"blur": 6
},
"textGrowth": "fixed-width",
"width": 180,
"content": "有效握紧",
"textAlign": "center",
"fontFamily": "Inter",
"fontSize": 26,
"fontWeight": "900"
},
{
"type": "frame",
"id": "zbU5d",
"x": 148,
"y": 74,
"name": "ComboToast",
"width": 100,
"height": 26,
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 90,
"size": {
"height": 1
},
"colors": [
{
"color": "#FF6A2D",
"position": 0
},
{
"color": "#FFB52D",
"position": 1
}
]
},
"cornerRadius": 5,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#FF6B2140",
"offset": {
"x": 0,
"y": 4
},
"blur": 10
},
"padding": [
0,
12
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "tTxf1",
"name": "ComboToastText",
"fill": "#FFFFFF",
"content": "连击 x10",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "800"
}
]
},
{
"type": "frame",
"id": "oGDWn",
"x": 12,
"y": 175,
"name": "PraiseBubble",
"opacity": 0.95,
"width": 132,
"height": 30,
"fill": "#22B85A",
"cornerRadius": 8,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#22B85A55",
"offset": {
"x": 0,
"y": 4
},
"blur": 12
},
"padding": [
0,
12
],
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "Kuplx",
"name": "PraiseText",
"fill": "#FFFFFF",
"content": "连击 x10! 太棒了!",
"fontFamily": "Inter",
"fontSize": 11,
"fontWeight": "800"
}
]
},
{
"type": "text",
"id": "nBchp",
"x": 290,
"y": 185,
"name": "ScoreBurst",
"fill": "#FF6B21",
"effect": [
{
"type": "shadow",
"shadowType": "outer",
"color": "#FFFFFFEE",
"blur": 2,
"spread": 2
},
{
"type": "shadow",
"shadowType": "outer",
"color": "#FF6B2166",
"offset": {
"x": 0,
"y": 4
},
"blur": 16
}
],
"textGrowth": "fixed-width",
"width": 86,
"content": "+10",
"textAlign": "center",
"fontFamily": "Inter",
"fontSize": 34,
"fontWeight": "900",
"fontStyle": "italic"
},
{
"type": "frame",
"id": "cpsme",
"x": 58,
"y": 280,
"name": "SqueezeArrowLeft",
"width": 40,
"height": 24,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "v5TE9",
"name": "LA1",
"width": 16,
"height": 16,
"icon": "chevron-right",
"library": "lucide",
"fill": "#14B8A6"
},
{
"type": "icon",
"id": "NPFEC",
"name": "LA2",
"width": 16,
"height": 16,
"icon": "chevron-right",
"library": "lucide",
"fill": "#14B8A6AA"
}
]
},
{
"type": "frame",
"id": "A48GS",
"x": 292,
"y": 280,
"name": "SqueezeArrowRight",
"width": 40,
"height": 24,
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "ORV1k",
"name": "RA1",
"width": 16,
"height": 16,
"icon": "chevron-left",
"library": "lucide",
"fill": "#14B8A6AA"
},
{
"type": "icon",
"id": "lGBGx",
"name": "RA2",
"width": 16,
"height": 16,
"icon": "chevron-left",
"library": "lucide",
"fill": "#14B8A6"
}
]
},
{
"type": "frame",
"id": "NBPb2",
"x": 16,
"y": 422,
"name": "GesturePhaseFlow",
"width": 358,
"height": 68,
"fill": "#FFFFFFF2",
"cornerRadius": 12,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#0F172A10",
"offset": {
"x": 0,
"y": 2
},
"blur": 10
},
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 2,
"id": "U7Xpoq",
"x": 42,
"y": 24,
"name": "ConnectorBase",
"fill": "#E2E8F0",
"width": 274,
"height": 4
},
{
"type": "rectangle",
"cornerRadius": 2,
"id": "Jy6q0",
"x": 42,
"y": 24,
"name": "ConnectorDone",
"fill": "#14B8A6",
"width": 90,
"height": 4
},
{
"type": "frame",
"id": "z48XF",
"x": 132,
"y": 16,
"name": "Waveform",
"width": 70,
"height": 20,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 1,
"id": "I5tRox",
"x": 0,
"y": 8,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 12
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "hL5er",
"x": 6,
"y": 4,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 16
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "eKUJC",
"x": 12,
"y": 6,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 14
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "XgaH1",
"x": 18,
"y": 2,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 18
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "CJbPi",
"x": 24,
"y": 5,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 15
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "EO0Ci",
"x": 30,
"y": 3,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 17
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "cenLf",
"x": 36,
"y": 7,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 13
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "vcGr4",
"x": 42,
"y": 4,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 16
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "bXt90",
"x": 48,
"y": 6,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 14
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "kGiEk",
"x": 54,
"y": 3,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 17
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "Il9LU",
"x": 60,
"y": 8,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 12
},
{
"type": "rectangle",
"cornerRadius": 1,
"id": "jDxyL",
"x": 66,
"y": 5,
"name": "Bar",
"fill": "#22B85A",
"width": 3,
"height": 15
}
]
},
{
"type": "rectangle",
"cornerRadius": 2,
"id": "mJn2x",
"x": 210,
"y": 24,
"name": "ConnectorPending",
"fill": "#CBD5E1",
"width": 106,
"height": 4
},
{
"type": "frame",
"id": "VuvET",
"x": 24,
"y": 6,
"name": "Phase_张开",
"width": 40,
"height": 60,
"layout": "vertical",
"gap": 3,
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "jR0SO",
"name": "Circle_张开",
"width": 34,
"height": 34,
"fill": "#CCFBF1",
"cornerRadius": 17,
"stroke": "#14B8A6",
"strokeWidth": 1.5,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "P0hcAI",
"name": "Icon_张开",
"width": 16,
"height": 16,
"icon": "hand",
"library": "lucide",
"fill": "#14B8A6"
}
]
},
{
"type": "text",
"id": "i4pXXv",
"name": "Label_张开",
"fill": "#14B8A6",
"content": "张开",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "CRvOs",
"x": 114,
"y": 6,
"name": "Phase_握紧",
"width": 40,
"height": 60,
"layout": "vertical",
"gap": 3,
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "quXHW",
"name": "Circle_握紧",
"width": 38,
"height": 38,
"fill": "#ECFDF5",
"cornerRadius": 19,
"stroke": "#22B85A",
"strokeWidth": 3,
"effect": {
"type": "shadow",
"shadowType": "outer",
"color": "#22B85A88",
"blur": 12
},
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "ZEjkt",
"name": "Icon_握紧",
"width": 18,
"height": 18,
"icon": "hand",
"library": "lucide",
"fill": "#22B85A"
}
]
},
{
"type": "text",
"id": "WCWpB",
"name": "Label_握紧",
"fill": "#22B85A",
"content": "握紧",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "FyOxT",
"x": 204,
"y": 6,
"name": "Phase_保持",
"width": 40,
"height": 60,
"layout": "vertical",
"gap": 3,
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "v4Wi1w",
"name": "Circle_保持",
"width": 34,
"height": 34,
"fill": "#FFFFFF",
"cornerRadius": 17,
"stroke": "#F2A615",
"strokeWidth": 1.5,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "XxZmK",
"name": "Icon_保持",
"width": 16,
"height": 16,
"icon": "timer",
"library": "lucide",
"fill": "#F2A615"
}
]
},
{
"type": "text",
"id": "Lw3Yz",
"name": "Label_保持",
"fill": "#F2A615",
"content": "保持",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "rdNjR",
"x": 294,
"y": 6,
"name": "Phase_松开",
"width": 40,
"height": 60,
"layout": "vertical",
"gap": 3,
"alignItems": "center",
"children": [
{
"type": "frame",
"id": "e68wuZ",
"name": "Circle_松开",
"width": 34,
"height": 34,
"fill": "#FFFFFF",
"cornerRadius": 17,
"stroke": "#94A3B8",
"strokeWidth": 1.5,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "AkFM7",
"name": "Icon_松开",
"width": 16,
"height": 16,
"icon": "hand",
"library": "lucide",
"fill": "#94A3B8"
}
]
},
{
"type": "text",
"id": "lFxx4",
"name": "Label_松开",
"fill": "#94A3B8",
"content": "松开",
"fontFamily": "Inter",
"fontSize": 10,
"fontWeight": "700"
}
]
},
{
"type": "icon",
"id": "inU3N",
"x": 336,
"y": 19,
"name": "RailEndArrow",
"width": 14,
"height": 14,
"icon": "chevron-right",
"library": "lucide",
"fill": "#94A3B8"
}
]
},
{
"type": "rectangle",
"id": "aMMad",
"x": 0,
"y": 0,
"name": "StageTopScrim",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 180,
"size": {
"height": 1
},
"colors": [
{
"color": "#F8FAFCFF",
"position": 0
},
{
"color": "#F8FAFC00",
"position": 1
}
]
},
"width": 390,
"height": 140
}
]
},
{
"type": "frame",
"id": "diWnm",
"name": "TrainingControls",
"width": "fill_container",
"height": 158,
"fill": "#FFFFFF",
"layout": "vertical",
"gap": 14,
"padding": [
16,
20,
20,
20
],
"children": [
{
"type": "frame",
"id": "OOhM4",
"name": "ProgressHeader",
"width": "fill_container",
"justifyContent": "space_between",
"alignItems": "center",
"children": [
{
"type": "text",
"id": "cgbUP",
"name": "GoalText",
"fill": "#0F172A",
"content": "本次目标 30 次",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "800"
},
{
"type": "text",
"id": "KTLXa",
"name": "RemainingText",
"fill": "#0F766E",
"content": "剩余 03:36",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "700"
}
]
},
{
"type": "frame",
"id": "a3gyy5",
"name": "GoalProgressTrack",
"width": "fill_container",
"height": 10,
"fill": "#E2E8F0",
"cornerRadius": 5,
"layout": "none",
"children": [
{
"type": "rectangle",
"cornerRadius": 5,
"id": "m7bG7",
"x": 0,
"y": 0,
"name": "GoalProgressFill",
"fill": {
"type": "gradient",
"gradientType": "linear",
"enabled": true,
"rotation": 90,
"size": {
"height": 1
},
"colors": [
{
"color": "#42C7C6",
"position": 0
},
{
"color": "#54C9C2",
"position": 1
}
]
},
"width": 148,
"height": 10
}
]
},
{
"type": "frame",
"id": "JIyCH",
"name": "TrainingActions",
"width": "fill_container",
"height": 52,
"gap": 12,
"children": [
{
"type": "frame",
"id": "x0pfF",
"name": "PauseButton",
"width": "fill_container",
"height": "fill_container",
"fill": "#F0FDFA",
"cornerRadius": 10,
"stroke": "#14B8A6",
"strokeWidth": 1.5,
"gap": 10,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "tifcz",
"name": "PauseIcon",
"width": 21,
"height": 21,
"icon": "pause",
"library": "lucide",
"fill": "#0B9DA3"
},
{
"type": "text",
"id": "EYwl2",
"name": "PauseLabel",
"fill": "#0B8E94",
"content": "暂停",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
}
]
},
{
"type": "frame",
"id": "XL6eA",
"name": "EndButton",
"width": "fill_container",
"height": "fill_container",
"fill": "#FEF2F2",
"cornerRadius": 10,
"stroke": "#F28B8B",
"strokeWidth": 1.5,
"gap": 10,
"justifyContent": "center",
"alignItems": "center",
"children": [
{
"type": "icon",
"id": "S4hXw",
"name": "EndIcon",
"width": 19,
"height": 19,
"icon": "square",
"library": "lucide",
"fill": "#E34848"
},
{
"type": "text",
"id": "TJv5g",
"name": "EndLabel",
"fill": "#D93636",
"content": "结束训练",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
}
]
}
]
}
]
}
]
},
{
"type": "frame",
"id": "qO3SX",
"x": 4510,
"y": 969,
"name": "08 视频联动动效架构",
"width": 920,
"height": 720,
"fill": "#F8FAFC",
"cornerRadius": 16,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"layout": "vertical",
"gap": 20,
"padding": 28,
"children": [
{
"type": "text",
"id": "FdVbD",
"name": "BoardTitle",
"fill": "#0F172A",
"content": "中间画布 · 视频捕捉联动动效",
"fontFamily": "Inter",
"fontSize": 22,
"fontWeight": "800"
},
{
"type": "text",
"id": "nh7Ht",
"name": "BoardSub",
"fill": "#64748B",
"textGrowth": "fixed-width",
"width": 860,
"content": "原则:只动画反馈层,不动画摄像头预览本身。视觉信号低频采样,UI 以 30–60fps 插值渲染。",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "frame",
"id": "bbPec",
"name": "LayerStack",
"width": "fill_container",
"height": 120,
"gap": 12,
"children": [
{
"type": "frame",
"id": "TC41W",
"name": "L0 摄像头",
"width": "fill_container",
"height": "fill_container",
"fill": "#CCFBF1",
"cornerRadius": 12,
"layout": "vertical",
"gap": 6,
"padding": 14,
"children": [
{
"type": "text",
"id": "DRcZ4",
"name": "t",
"fill": "#0F766E",
"content": "L0 摄像头",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "800"
},
{
"type": "text",
"id": "KX1rX",
"name": "s",
"fill": "#0F766E",
"content": "实时视频预览",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "C9TeG",
"name": "L1 能量画布",
"width": "fill_container",
"height": "fill_container",
"fill": "#E0F2FE",
"cornerRadius": 12,
"layout": "vertical",
"gap": 6,
"padding": 14,
"children": [
{
"type": "text",
"id": "bTfU6",
"name": "t",
"fill": "#0369A1",
"content": "L1 能量画布",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "800"
},
{
"type": "text",
"id": "rkhuK",
"name": "s",
"fill": "#0369A1",
"content": "环/弧/粒子",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "cCkpS",
"name": "L2 HUD 文案",
"width": "fill_container",
"height": "fill_container",
"fill": "#ECFDF5",
"cornerRadius": 12,
"layout": "vertical",
"gap": 6,
"padding": 14,
"children": [
{
"type": "text",
"id": "u7KWpi",
"name": "t",
"fill": "#15803D",
"content": "L2 HUD 文案",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "800"
},
{
"type": "text",
"id": "GFrDP",
"name": "s",
"fill": "#15803D",
"content": "标题/连击/+分",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
},
{
"type": "frame",
"id": "n6ZiJ",
"name": "L3 阶段轨",
"width": "fill_container",
"height": "fill_container",
"fill": "#FFF7ED",
"cornerRadius": 12,
"layout": "vertical",
"gap": 6,
"padding": 14,
"children": [
{
"type": "text",
"id": "A9U8MB",
"name": "t",
"fill": "#C2410C",
"content": "L3 阶段轨",
"fontFamily": "Inter",
"fontSize": 14,
"fontWeight": "800"
},
{
"type": "text",
"id": "Y7uaIu",
"name": "s",
"fill": "#C2410C",
"content": "张开→松开",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
}
]
},
{
"type": "text",
"id": "s1yBc",
"name": "BindTitle",
"fill": "#0F172A",
"content": "信号 → 动效绑定",
"fontFamily": "Inter",
"fontSize": 16,
"fontWeight": "800"
},
{
"type": "frame",
"id": "SDPn1",
"name": "Bindings",
"width": "fill_container",
"layout": "vertical",
"gap": 10,
"children": [
{
"type": "frame",
"id": "YB792",
"name": "compression 0→1",
"width": "fill_container",
"fill": "#FFFFFF",
"cornerRadius": 10,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"gap": 12,
"padding": [
12,
14
],
"alignItems": "center",
"children": [
{
"type": "text",
"id": "xwEBJ",
"name": "sig",
"fill": "#0F766E",
"textGrowth": "fixed-width",
"width": 180,
"content": "compression 0→1",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
},
{
"type": "text",
"id": "X3kAPT",
"name": "fx",
"fill": "#334155",
"textGrowth": "fixed-width",
"width": 460,
"content": "能量环半径缩小、光晕增强、挤压箭头更明显",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "text",
"id": "ucYYq",
"name": "rate",
"fill": "#94A3B8",
"textGrowth": "fixed-width",
"width": 180,
"content": "连续 3060fps 插值",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "waShT",
"name": "holdProgress 0→1",
"width": "fill_container",
"fill": "#FFFFFF",
"cornerRadius": 10,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"gap": 12,
"padding": [
12,
14
],
"alignItems": "center",
"children": [
{
"type": "text",
"id": "E3ByA",
"name": "sig",
"fill": "#0F766E",
"textGrowth": "fixed-width",
"width": 180,
"content": "holdProgress 0→1",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
},
{
"type": "text",
"id": "GpimM",
"name": "fx",
"fill": "#334155",
"textGrowth": "fixed-width",
"width": 460,
"content": "橙色保持弧推进、连击小进度条同步",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "text",
"id": "OfZFz",
"name": "rate",
"fill": "#94A3B8",
"textGrowth": "fixed-width",
"width": 180,
"content": "CLOSED_CONFIRMED 时",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "XHvRj",
"name": "gesturePhase",
"width": "fill_container",
"fill": "#FFFFFF",
"cornerRadius": 10,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"gap": 12,
"padding": [
12,
14
],
"alignItems": "center",
"children": [
{
"type": "text",
"id": "j1yeCr",
"name": "sig",
"fill": "#0F766E",
"textGrowth": "fixed-width",
"width": 180,
"content": "gesturePhase",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
},
{
"type": "text",
"id": "LRion",
"name": "fx",
"fill": "#334155",
"textGrowth": "fixed-width",
"width": 460,
"content": "标题文案、指引条、阶段轨高亮切换",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "text",
"id": "B1T9b",
"name": "rate",
"fill": "#94A3B8",
"textGrowth": "fixed-width",
"width": 180,
"content": "语义切换 240ms",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "zxI8J",
"name": "repCompleted",
"width": "fill_container",
"fill": "#FFFFFF",
"cornerRadius": 10,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"gap": 12,
"padding": [
12,
14
],
"alignItems": "center",
"children": [
{
"type": "text",
"id": "s6hf57",
"name": "sig",
"fill": "#0F766E",
"textGrowth": "fixed-width",
"width": 180,
"content": "repCompleted",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
},
{
"type": "text",
"id": "Hz9sv",
"name": "fx",
"fill": "#334155",
"textGrowth": "fixed-width",
"width": 460,
"content": "+分上浮、冲击波、夸奖气泡、计数+1",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "text",
"id": "hkPjV",
"name": "rate",
"fill": "#94A3B8",
"textGrowth": "fixed-width",
"width": 180,
"content": "事件触发 ≤680ms",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
},
{
"type": "frame",
"id": "Dohc5",
"name": "trackingQuality",
"width": "fill_container",
"fill": "#FFFFFF",
"cornerRadius": 10,
"stroke": "#E2E8F0",
"strokeWidth": 1,
"gap": 12,
"padding": [
12,
14
],
"alignItems": "center",
"children": [
{
"type": "text",
"id": "T1bTRq",
"name": "sig",
"fill": "#0F766E",
"textGrowth": "fixed-width",
"width": 180,
"content": "trackingQuality",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "800"
},
{
"type": "text",
"id": "vqRI2",
"name": "fx",
"fill": "#334155",
"textGrowth": "fixed-width",
"width": 460,
"content": "识别中/弱/丢失状态色;丢失时冻结计分",
"fontFamily": "Inter",
"fontSize": 13,
"fontWeight": "500"
},
{
"type": "text",
"id": "AcPoa",
"name": "rate",
"fill": "#94A3B8",
"textGrowth": "fixed-width",
"width": 180,
"content": "状态门控",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "600"
}
]
}
]
},
{
"type": "text",
"id": "U3OTYu",
"name": "ImplNote",
"fill": "#64748B",
"textGrowth": "fixed-width",
"width": 860,
"content": "实现建议:camera 预览独立层;手势推理 815Hz;过滤后的 openness/compression 写入非响应式缓冲;Vue 只订阅语义状态(phase/combo/count);Canvas/CSS 在 rAF 里读缓冲做插值。",
"fontFamily": "Inter",
"fontSize": 12,
"fontWeight": "500"
}
]
}
],
"variables": {
"bg": {
"type": "color",
"value": "#F7FAFC"
},
"border": {
"type": "color",
"value": "#D9E2EA"
},
"danger": {
"type": "color",
"value": "#D84C4C"
},
"muted": {
"type": "color",
"value": "#64748B"
},
"primary": {
"type": "color",
"value": "#087F8C"
},
"primarySoft": {
"type": "color",
"value": "#DDF4F2"
},
"success": {
"type": "color",
"value": "#16865C"
},
"surface": {
"type": "color",
"value": "#FFFFFF"
},
"target": {
"type": "color",
"value": "#F28C45"
},
"targetSoft": {
"type": "color",
"value": "#FFF0E5"
},
"text": {
"type": "color",
"value": "#17212B"
}
},
"fileToken": "e5418879-724a-4dc5-8bea-213469e1e883"
}