必须开源这个!
这是 swiftui 包 😃
https://github.com/haplollc/ThinkingOrbs
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 添加依赖后,一行代码即可替换掉原本千篇一律的加载动画。
用不同动画区分检索、推理与写作,让用户对等待时间有预期,也强化产品的智能感。
必须开源这个!
这是 swiftui 包 😃
https://github.com/haplollc/ThinkingOrbs