An animated loading indicator component for showing agent processing states.
Use the Thinking Indicator pattern when you need to:
- Show that an AI agent is processing
- Indicate background work is happening
- Provide visual feedback during async operations
- Display loading states in agent interfaces
| Prop | Type | Required | Description |
|---|---|---|---|
message |
string |
No | Message text (default: "Thinking...") |
variant |
"dots" | "pulse" | "spinner" |
No | Animation type (default: "dots") |
className |
string |
No | Additional CSS classes |
dots- Animated dots (default)pulse- Pulsing circlespinner- Rotating spinner
import { thinkingIndicatorSchema } from "./schema"
const data = thinkingIndicatorSchema.parse({
message: "Processing...",
variant: "dots"
})import { ThinkingIndicator } from "./component"
<ThinkingIndicator message="Analyzing data..." variant="pulse" />useRenderToolCall({
toolName: "render_thinking_indicator",
argumentsSchema: thinkingIndicatorSchema,
render: (props) => <ThinkingIndicator {...props} />
})The Thinking Indicator component includes comprehensive accessibility support:
- Status announcements - Uses
role="status"witharia-live="polite"to announce status changes - Busy state - Includes
aria-busy="true"to indicate processing state - ARIA label - Message is accessible via
aria-label - Screen reader support - Status message is announced to screen readers
- Decorative animations - Animation elements are marked with
aria-hidden="true"
✅ rams.ai - Full accessibility with status announcements and screen reader support
✅ ui-skills.com - Schema-driven, LLM-generatable component
✅ Vercel Guidelines - Theme-compatible, responsive design