{ "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" }