Components/AI
Thinking Search Animation
Animated thinking/searching component with scrolling text, customizable animation, and streaming text support
Thinking Search
0s- Analyzing your request.. Processing data.. Searching relevant sources..
- Evaluating information.. Generating response.. Optimizing results..
- Finalizing results.. Synthesizing insights.. Reviewing findings..
- Ensuring accuracy.. Delivering comprehensive answer..
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed euismod, nunc ut laoreet cursus, enim erat dictum urna, nec dictum sem enim ut erat.
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam enim, nec dictum sem enim ut erat.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed euismod, nunc ut laoreet cursus, enim erat dictum urna, nec dictum sem enim ut erat.
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam enim, nec dictum sem enim ut erat.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed euismod, nunc ut laoreet cursus, enim erat dictum urna, nec dictum sem enim ut erat.
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam enim, nec dictum sem enim ut erat.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed euismod, nunc ut laoreet cursus, enim erat dictum urna, nec dictum sem enim ut erat.
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam enim, nec dictum sem enim ut erat.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Sed euismod, nunc ut laoreet cursus, enim erat dictum urna, nec dictum sem enim ut erat.
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam enim, nec dictum sem enim ut erat.
- [Repeat or extend this paragraph to reach 400 lines as needed.].
Example
export default function ThinkingSearchAnimationExample() {
const streamingText = "Searching through databases... Analyzing patterns... Processing information... Generating insights... Finalizing results..."
const messages = [
"How can I improve my React performance?",
"Let me search for the best practices...",
"Found several optimization techniques...",
"Here are the key strategies..."
]
const handleAnimationEnd = () => {
console.log('Animation ended')
}
const handleComplete = () => {
console.log('Animation fully completed and collapsed')
}
return (
<ThinkingSearchAnimation
streamingText={streamingText}
messages={messages}
variant="default"
animationSpeed="normal"
scrollDirection="up"
onAnimationEnd={handleAnimationEnd}
onComplete={handleComplete}
minParagraphLength={50}
className="w-full"
/>
)
}
Documentation
Prop | Type | Default | Description |
---|---|---|---|
variant | "default" | "ghost" | "outline" | "default" | Visual style variant of the component |
streamingText | string | "" | Text to display in streaming animation (auto-split into paragraphs) |
messages | string[] | [] | Array of text messages to display (takes priority over streamingText) |
onAnimationEnd | () => void | undefined | Callback when scrolling animation ends |
onComplete | () => void | undefined | Callback when animation is fully complete (after collapse) |
className | string | undefined | Additional CSS classes for styling |
scrollDirection | "up" | "down" | "up" | Direction of text scrolling animation |
animationSpeed | "slow" | "normal" | "fast" | "normal" | Speed of the scrolling animation |
minParagraphLength | number | 50 | Minimum length for auto-generated paragraphs from streamingText |
sentenceEndPattern | RegExp | /[.!?]\s+/g | Pattern to split sentences for paragraph grouping |
Types
type ThinkingSearchAnimationProps = {
variant?: "default" | "ghost" | "outline"
streamingText?: string
messages?: string[]
onAnimationEnd?: () => void
onComplete?: () => void
className?: string
scrollDirection?: "up" | "down"
animationSpeed?: "slow" | "normal" | "fast"
minParagraphLength?: number
sentenceEndPattern?: RegExp
}
Features
- Auto Text Processing: Automatically splits
streamingText
into paragraphs using natural breaks or sentence patterns - Message Display: Direct support for array of messages (takes priority over streamingText)
- Visual Variants: Three visual styles - default, ghost, and outline
- Customizable Animation: Three speed options and configurable scroll direction
- Smart Content Sizing: Automatically calculates optimal content height with max limits
- Collapsible Interface: Click to expand/collapse with smooth transitions
- Timer Display: Shows elapsed time during animation and final completion time
- Loading State: Displays placeholder content while waiting for data
- Responsive Design: Adapts to different screen sizes with proper text wrapping
- Dark Mode Support: Full dark mode compatibility with appropriate styling
- Accessibility Focused: Screen reader friendly with proper ARIA attributes