What it does
The typing indicator renders a series of animated dots that signal active composition. The default static variant uses CSS keyframe animations (bounce) while the animated variant offers framer-motion powered transitions including bounce, pulse, and wave.
Combine with a label displayed before or after the dots for additional context like "Typing..." or "is typing".
Composition and API
Choose the number of dots (3-5), pick an appearance from the full color palette, and optionally attach a label. The component ships two variants: the default static entry uses pure CSS animations with zero JavaScript runtime cost, while the animated entry (imported from the /animated subpath) provides framer-motion enhanced transitions.
Common use cases
- Show active typing status in direct messaging interfaces.
- Indicate AI assistant response generation in chat applications.
- Display comment composition in social platforms.
- Signal background processing in collaborative editing tools.
Accessibility
Keyboard order, focus rings, and ARIA attributes should match production usage. Test with your supported browsers and assistive technologies when semantics are non-trivial.
This preview page exposes a single h1 in the hero for a clean outline.
Next.js integration notes
Colocate examples under the App Router, keep server and client boundaries explicit, and avoid pulling interactive overlays into unexpected server layouts.
Set NEXT_PUBLIC_SITE_URL so canonical and Open Graph URLs resolve on deploy.
FAQ
Does the Typing Indicator component work with Next.js App Router?
Yes. Import it like any other React component; keep interactive subtrees in client components when you need hooks or browser APIs, and leave static structure in server components where possible.
Can I customize the typing indicator with Tailwind CSS?
Zentauri UI exposes class-friendly variants and slots so you can extend styles with Tailwind utilities without fighting inline styles.
Is this Typing Indicator implementation accessible by default?
Primitives follow sensible defaults, but accessibility depends on how you label controls, manage focus, and wire keyboard handlers in your app. Validate critical flows with keyboard-only use and screen readers.