SwiftUI 加载动画 ThinkingOrbs 有哪些设计?九种 Agent 状态动效盘点

ThinkingOrbs 是一个面向 AI 与 Agent 界面的 SwiftUI 开源加载指示器库,由 haplollc 发布在 GitHub 上。它用灰度圆点绘制出真正具有三维感的动态图形,为「模型正在思考」这件事提供视觉表达。整个库内置九种手工调校的设计,每一种都对应 Agent 的一种真实状态,例如搜索、推理、语音输入、工具调用、多步规划、撰写回复等。集成方式极其简单,一行 ThinkingOrb(.searching) 即可放入界面。九种设计中有八种是经过旋转、深度着色与 z 轴排序的真实三维形体,第九种则是轮廓变形动画。所有图形只用灰度圆点绘制,因此在浅色或深色界面中都能安静地融入,不会喧宾夺主。

痛点是什么

开发 AI 助手或 Agent 应用时,最尴尬的往往是「等待」这一段。系统在检索、推理或调用工具,用户却只看到一个转圈的菊花或一条静止的进度条,既不知道后台在做什么,也感受不到智能感。自己动手写动画成本又高:要处理三维透视、深度排序、明暗层次,还要兼顾深色模式、多实例同步以及系统的「减弱动态效果」无障碍设置。结果多数团队只能凑合用一个通用 spinner,让本该体现产品调性的关键瞬间变得平庸。

主要功能特点

ThinkingOrbs 把九种状态动画封装成可直接调用的 SwiftUI 视图,并针对不同位置提供两档专门调校的尺寸,让加载状态本身成为界面语言的一部分。

九种语义化设计

每种动画对应一种 Agent 行为,如搜索、推理、聆听、连接,选对动画即可传达当前进度。

两档专用尺寸

regular 为 64pt 适合头像与空状态,small 为 20pt 适合行内文字与工具栏,小尺寸单独调校而非缩放。

状态标签组件

ThinkingOrbLabel 把圆点动画与微光文字状态行组合,可直接套用字体、内边距与背景样式。

无障碍与性能友好

圆点离开屏幕自动暂停,同屏多个实例保持同相位,并遵循系统的减弱动态效果设置。

为什么值得关注

它把「AI 正在思考」这一抽象过程变成了可读的视觉语言,同时保持了极低的接入成本与克制的视觉风格,对做 AI 客户端与 Agent 产品的团队尤其友好。

一行代码接入

通过 Swift Package Manager 添加依赖后,一行代码即可替换掉原本千篇一律的加载动画。

状态即表达

用不同动画区分检索、推理与写作,让用户对等待时间有预期,也强化产品的智能感。

推荐信息
JC Builds
JC Builds @JC_builds 2026年09月21日 17:37

必须开源这个!

这是 swiftui 包 😃

https://github.com/haplollc/ThinkingOrbs

SwiftUI 加载动画 ThinkingOrbs 有哪些设计?九种 Agent 状态动效盘点 哔哩哔哩视频封面