diff --git a/untitled.pen b/untitled.pen new file mode 100644 index 00000000..067b6dd9 --- /dev/null +++ b/untitled.pen @@ -0,0 +1,6968 @@ +{ + "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": "0–120ms:缩放 0.7 → 1", + "width": "fill_container", + "gap": 7, + "children": [ + { + "type": "ellipse", + "id": "G5gFe", + "name": "0–120ms:缩放 0.7 → 1圆点", + "fill": "$target", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "QtLhL", + "name": "0–120ms:缩放 0.7 → 1文字", + "fill": "$muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "0–120ms:缩放 0.7 → 1", + "lineHeight": 1.45, + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "IwPiY", + "name": "120–220ms:轻微回弹", + "width": "fill_container", + "gap": 7, + "children": [ + { + "type": "ellipse", + "id": "BKhg8", + "name": "120–220ms:轻微回弹圆点", + "fill": "$target", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "lBJxI", + "name": "120–220ms:轻微回弹文字", + "fill": "$muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "120–220ms:轻微回弹", + "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": "0–80ms:目标压缩", + "width": "fill_container", + "gap": 7, + "children": [ + { + "type": "ellipse", + "id": "i2nQm", + "name": "0–80ms:目标压缩圆点", + "fill": "$success", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "p73ONU", + "name": "0–80ms:目标压缩文字", + "fill": "$muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "0–80ms:目标压缩", + "lineHeight": 1.45, + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "G89tzJ", + "name": "80–260ms:冲击波 + 粒子", + "width": "fill_container", + "gap": 7, + "children": [ + { + "type": "ellipse", + "id": "w4JpH", + "name": "80–260ms:冲击波 + 粒子圆点", + "fill": "$success", + "width": 6, + "height": 6 + }, + { + "type": "text", + "id": "by7IH", + "name": "80–260ms:冲击波 + 粒子文字", + "fill": "$muted", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "80–260ms:冲击波 + 粒子", + "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": "连续 30–60fps 插值", + "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 预览独立层;手势推理 8–15Hz;过滤后的 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" +} \ No newline at end of file