DEVOURED
Thought-Orb Loading Indicators for AI Interfaces (Website)
Thinking Orbs replace generic spinners in AI interfaces with nine hand-tuned, state-specific animations for React, SwiftUI, and React Native.
What: Built by Jakub Antalik, this library provides specialized loading indicators for AI interactions (e.g., 'searching', 'solving', 'listening'). It features zero runtime dependencies and supports React 18+, with native ports available for mobile development.
Why it matters: Standard circular spinners fail to convey the complexity of AI latency; moving toward semantic loading states helps users distinguish between 'thinking' processes and connection failures.
Takeaway: Install via `npm install thinking-orbs` and use the `` component to provide immediate visual feedback for agent workflows.
Original article
React
Installation
npm install thinking-orbs
Usage
import { ThinkingOrb } from 'thinking-orbs';
<ThinkingOrb state="searching" size={64} />
React Native
Installation
npm install thinking-orbs-native @shopify/react-native-skia react-native-reanimated
thinking-orbs-native is not on npm yet — it lives in this repo at packages/thinking-orbs/ports/react-native/thinking-orbs-native. Expo needs expo run:ios / run:android (native modules).
Usage
import { ThinkingOrb } from 'thinking-orbs-native';
<ThinkingOrb state="searching" size={64} />
SwiftUI
Installation
// Package.swift — or Xcode: File › Add Package Dependencies… › paste the URL (Branch: main)
.package(url: "https://github.com/Jakubantalik/Libraries.dev", branch: "main")
// …and in your target's dependencies:
.product(name: "ThinkingOrbsKit", package: "Libraries.dev")
Usage
import ThinkingOrbsKit
ThinkingOrb(state: .searching, size: .px64)
Orb replaces the spinner in an AI "thinking" state with nine hand-tuned animated states. It ships zero runtime dependencies and needs React 18 or newer.
Props
- state: "working" | "searching" | "solving" | "listening" | "connecting" | "weaving" | "composing" | "breathing" | "shaping"
- size: 64 (chat-avatar scale) or 20 (inline-text scale) — each is separately tuned
- speed: multiplies the animation clock, default 1
- dark: boolean, picks the light or dark tuning
- paused: boolean, freezes the animation
Explore all 58 articles in today's digest
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi