Components/AI

Thinking Search Animation

Animated thinking/searching component with scrolling text, customizable animation, and streaming text support

Live Preview
Open in
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

PropTypeDefaultDescription
variant"default" | "ghost" | "outline""default"Visual style variant of the component
streamingTextstring""Text to display in streaming animation (auto-split into paragraphs)
messagesstring[][]Array of text messages to display (takes priority over streamingText)
onAnimationEnd() => voidundefinedCallback when scrolling animation ends
onComplete() => voidundefinedCallback when animation is fully complete (after collapse)
classNamestringundefinedAdditional CSS classes for styling
scrollDirection"up" | "down""up"Direction of text scrolling animation
animationSpeed"slow" | "normal" | "fast""normal"Speed of the scrolling animation
minParagraphLengthnumber50Minimum length for auto-generated paragraphs from streamingText
sentenceEndPatternRegExp/[.!?]\s+/gPattern 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