openGym卡片视图与列表视图之争:训练界面设计演进
openGym卡片视图与列表视图之争训练界面设计演进【免费下载链接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGymopenGym 是一款自托管的健身与体重追踪应用gym body-weight tracker可以规划训练计划、记录组次、查看肌肉负荷而数据完全存放在你自己的服务器上。它的训练界面围绕一场视图之争不断演进一次一个动作的卡片视图还是整场训练铺开的列表视图本文带你看懂三种训练界面设计的来龙去脉以及该如何为不同的训练场景做出选择。为什么训练界面设计值得单独讨论健身房里的应用屏幕设计比什么都重要——你的手指上沾着镁粉注意力应该在杠铃上而不是跟按钮较劲。openGym 的训练页源码位于 frontend/src/views/Workout.jsx经历了从按钮越堆越多到界面越来越安静的完整过程最终演进出三种布局视图你看到的适合谁卡片视图cards默认一次只显示一个动作用 Prev / Next 或左右滑动切换喜欢专注、不想被干扰的训练者列表视图list整个训练会话所有动作纵向堆叠、可滚动当前动作高亮描边想随时扫一眼还剩什么的人紧凑视图compact列表的极简版只留动作名和组次行隐藏媒体、标签、历史回顾等信息追求最低视觉噪音、快速记数的人卡片视图一次只做一件事卡片视图是 openGym 最原始的交互流程也是默认视图屏幕中央只放当前这一个动作完成最后一组后自动进入下一个也可以点 Prev / Next 或滑动手指切换。它的核心逻辑是当前标记current marker——同一份会话数据s.active无论哪种视图标记始终指向你现在正在练的动作完成组次后自动推进并触发休息计时。这意味着从列表视图点一下Set current就能立刻回到卡片流两种模式随时互不丢失状态相关实现在 frontend/src/views/Workout.jsx。适合场景️ 训练动作不多4–6 个、每组都要认真打勾计时手机单手操作不想来回滚动找位置第一次用 openGym、想先熟悉流程的新手列表视图整场训练一眼到底列表视图在 v1.3.2 版本加入整个会话的所有动作堆叠成一页可滚动内容当前动作带描边高亮其他动作的头部会多出一枚Set current设为当前按钮点一下就把当前标记移过去。超级组superset会被归成一组还带独立的取消配对操作。此后列表视图持续打磨几个关键演进值得记住头部固定v1.3.3——训练名、计时器、组数计数、完成按钮钉在顶部滚动内容不遮挡滚动位置记忆——重新打开训练时直接定位到你正在练的动作而不是回到顶部切换不影响进行中的训练——设置里改的是默认视图会话创建时会把当时的默认值快照下来s.active.workoutView所以训练中途改设置不会打乱眼前界面这个机制的详细说明见开发文档 docs/dev/LIST_VIEW.md。适合场景 动作多的长训练如全身日 8 个动作需要随时预览接下来是什么需要边练边微调顺序、临时跳着练的用户Compact 紧凑视图把噪音降到最低Compact 是 v1.3.5 加入的第三种视图本质是更狠的列表每个动作块以密集模式渲染——不显示媒体动画、标签有氧/单侧/目标重量/器械、笔记行、上次……回顾、杠铃配重芯片、渐进指导行。剩下的只有动作名、⋯ 菜单、组次行。被藏起来的功能并没有消失全部收进每个动作的 ⋯ 菜单里详情、历史、渐进设置等想看随时可查。一个贴心细节旧资料里没有这个字段时会自动按 cards 处理所以升级后你的设置不会被意外改变。三种视图怎么切换两个入口1. 改默认视图全局进入设置 → During a workout训练中→ Workout view一个三段选择器Cards / List / Compact对之后开启的所有训练生效。设置项源码在 frontend/src/views/Settings.jsx。2. 改当前这次训练会话级训练进行中的页面头部有一个⋮ 按钮弹出菜单里直接三选一。它只改写当前会话不动你的默认值——这正是进行中的训练不被打扰的保证快照逻辑见 frontend/src/sheets.jsx。与视图选择正交的还有Workout controls训练控制项开关默认是精简模式移动/交换/删除、步进器都收在各动作的 ⋯ 菜单里开启exerciseButtons后才会把 Move / Swap / Remove 等按钮排回界面。换句话说视图管看什么控件开关管露出哪些按钮两者可以独立搭配。设计演进从按钮战争到安静的训练屏把 CHANGELOG.md 按时间轴摊开能清楚看到这场设计之争的脉络v1.3.2 列表视图首次登场社区贡献与卡片视图并列可选v1.3.3 大改版每个动作只留一个 ⋯ 菜单组次数字本身就是该组的菜单删组、drop-set、rest-pause 都从组号进去列表视图头部固定新增Workout controls四个开关找回旧按钮v1.3.5✂️ Compact 布局加入⋮ 会话级三视图切换器就位其后 细节打磨列表视图记忆滚动位置、Set current一键回到卡片流、滑动时预览下一张卡片这条演进路径背后是一个清晰的设计立场默认把界面做安静把选择权交还用户。旧样式没有被删掉而是被收纳成可开关的选项——这正是开源健身工具该有的克制。数据归你视图只是表皮数据才是根本无论你怎么切换视图底层始终是同一份纯数据计划、训练记录、体重和设置都作为 JSON 存在你自己机器上的./data目录里state-user.json备份整个目录就等于备份一切。多设备之间通过带修订号revision的同步机制合并而不是互相覆盖也就是说卡片党还是列表党并不重要——换设备、换视图、甚至从 FitNotes / Strong / Hevy 导入旧数据你的训练历史都完整保留。更多自托管细节可参考 docs/SELF_HOSTING.md。如何选择给新手的快速建议刚开始用→ 保持默认卡片视图先建立完成一组→自动推进→休息计时的肌肉记忆动作多、爱跳练→ 切列表视图用 Set current 自由跳转只想快速记数字→ 上Compact界面只剩名字和组次干扰最小⏱️同一天想换手感→ 直接用训练头部的 ⋮ 切换不动全局默认界面之争没有输家openGym 的三种视图共享同一份会话数据与完成逻辑差异只在渲染什么。选最合手的一种然后放心去练——毕竟好的训练界面最好的状态就是你几乎感觉不到它的存在。【免费下载链接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.项目地址: https://gitcode.com/GitHub_Trending/op/openGym创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

marketingskills:用AI agents编排SEO与CRO的营销技能库

marketingskills:用AI agents编排SEO与CRO的营销技能库

1. 从“marketingskills”说起:一个被低估的增长工具箱第一次看到marketingskills这个词,是在一个做独立站的朋友群里。有人甩了个链接,说“这套东西把 SEO 和 CRO 的活儿全串起来了”。我当时的第一反应是:又是一个包装概念。但点…

2026/10/9 14:12:39 阅读更多 →
GTX 1660Ti 6GB老卡本地部署Qwen-Image-2.1:量化+Ollama实战全记录

GTX 1660Ti 6GB老卡本地部署Qwen-Image-2.1:量化+Ollama实战全记录

别的不说,先给结论:GTX 1660Ti这块6GB显存的老卡,确实能本地跑Qwen-Image-2.1,但前提是你愿意接受量化、接受合理调参、接受它不是“全精度尊享版”。这篇文是我把手头这台老主机从“装不下”折腾到“能出图、能接API、能挂进Dify…

2026/10/13 21:19:55 阅读更多 →
智能工厂物流系统规划全流程实操指南

智能工厂物流系统规划全流程实操指南

1. 项目背景与核心需求拆解1.1 为什么智能制造绕不开物流系统规划这两年走访过不少制造企业,发现一个很有意思的现象:很多工厂花大价钱上了自动化产线、上了MES系统,但车间里的物料搬运还是靠叉车、地牛加人工转运,线边仓堆得乱七…

2026/10/10 21:38:33 阅读更多 →

最新新闻

shadcn-dashboard-landing-template部署指南:Vercel、Netlify与静态托管方案对比

shadcn-dashboard-landing-template部署指南:Vercel、Netlify与静态托管方案对比

【免费下载链接】shadcn-dashboard-landing-template Accelerate your development with a sleek, open-source admin dashboard and landing page built on Vite-React, Next.js, Tailwind CSS, and Shadcn/UI which is fully customizable and production-ready. 项目地址&am…

2026/10/14 16:06:12 阅读更多 →
推箱子自动寻路实战:IDA*搜索与死锁检测优化

推箱子自动寻路实战:IDA*搜索与死锁检测优化

推箱子自动寻路,这东西看起来是个小游戏,真做起来才知道水有多深。网上讲这个主题的文章不少,但大多是拿BFS跑个小地图就收工,真正能处理中等规模关卡、能跑完不爆内存、不卡死的完整实现其实不多。我这边之前写过一个版本&#x…

2026/10/14 16:06:12 阅读更多 →
Godot TorusMesh 环面网格完整指南:参数详解、代码创建与实战应用

Godot TorusMesh 环面网格完整指南:参数详解、代码创建与实战应用

文档教程游戏开发 【免费下载链接】godot-docs Godot Engine official documentation 项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs 点击查看 免费下载 引言:为什么需要 TorusMesh TorusMesh(环面网格,即甜甜圈…

2026/10/14 16:06:12 阅读更多 →
Kong网关7.5分SQL注入:混合模式的信任假设错了

Kong网关7.5分SQL注入:混合模式的信任假设错了

2026 年 10 月 12 日,Kong Gateway 的一个 SQL 注入漏洞公开:CVE-2026-1907,CVSS v4.0 评分 7.5(High),影响 Kong Enterprise Gateway 与开源版 Kong Gateway。漏洞的位置很具体:混合模式&#…

2026/10/14 16:06:12 阅读更多 →
腾讯云Python服务生产级部署:systemd+nginx+venv实战

腾讯云Python服务生产级部署:systemd+nginx+venv实战

简介:本资源是一份面向高校计算机专业学生与Python初学者的实战部署指南,聚焦疫情期间无法返校使用本地服务器时,如何借助腾讯云短期免费资源快速运行Python3.7PyTorch CPU版代码。文档详细覆盖从新用户微信认证领15天云服务器、CentOS/Ubunt…

2026/10/14 16:06:12 阅读更多 →
社交类iOS开发:即时通讯链路与性能优化实战地图

社交类iOS开发:即时通讯链路与性能优化实战地图

提到iOS开发,很多人第一反应是"不就是用Swift画页面嘛"。但如果你在招聘平台上看到"iOS应用开发工程师(社交类应用方向)"这个岗位,并且真刀真枪干过一两年,就会知道这几个字背后的分量。我从一线i…

2026/10/14 16:05:10 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →