VibeCoderzVibeCoderz
Telegram
All Prompts
Animated Testimonials Carousel Section preview
testimonialcarouseltailwindresponsiveanimatedscrollablesectionlanding page

Animated Testimonials Carousel Section

Адаптивный карусель отзывов с анимацией и плавным скроллом. Идеально для лендингов, демонстрирует истории успеха клиентов. Tailwind CSS.

Prompt

<section class="z-10 sm:p-8 animate-scaleIn animation-delay-400 bg-[#ffffff] w-full max-w-7xl border-neutral-200/70 border rounded-3xl mt-24 mr-auto ml-auto pt-6 pr-6 pb-6 pl-6 relative shadow-2xl">
    <!-- Header -->
    <div class="flex gap-6 sm:px-0 animate-fadeInUp pr-1 pl-1 items-center">
      <h2 class="text-[44px] sm:text-6xl lg:text-7xl xl:text-8xl leading-[0.9] text-[#000000] font-geist tracking-tighter" style="">Testimonials.</h2>
      <span aria-hidden="true" role="separator" aria-orientation="vertical" class="w-px bg-neutral-200 h-10"></span>
      <p class="sm:text-base text-sm text-zinc-400 mt-1 font-geist tracking-tight" style="">Real stories, real success. Our customers have experienced firsthand the impact of our AI-powered solutions.</p>
    </div>
    <div class="h-px animate-fadeIn animation-delay-100 bg-neutral-200 mt-4"></div>

    <div class="grid grid-cols-1 lg:grid-cols-12 gap-8 sm:gap-10 sm:mt-8 mt-6 items-center">
  <!-- Header -->
  

  <!-- Carousel -->
  <div class="lg:col-span-12 relative">
    <div class="relative overflow-hidden h-[420px] rounded-3xl mt-6">
      <!-- Edge fades -->
      <div aria-hidden="true" class="pointer-events-none absolute inset-y-0 left-0 w-24 bg-gradient-to-r from-white to-transparent z-10"></div>
      <div aria-hidden="true" class="pointer-events-none absolute inset-y-0 right-0 w-24 bg-gradient-to-l from-white to-transparent z-10"></div>

      <!-- Rail -->
      <div class="flex gap-6 overflow-x-auto scroll-smooth pr-6 pl-6 absolute top-0 right-0 bottom-0 left-0 items-center" style="scrollbar-width: none; -ms-overflow-style: none;" id="testimonial-rail">
        <!-- Card 1 -->
        <article class="min-w-[420px] sm:min-w-[520px] max-w-[640px] bg-white border border-neutral-200/70 rounded-[24px] p-8 text-neutral-900 hover-lift backdrop-blur-sm snap-center -rotate-2 shadow-2xl">
          <p class="text-lg sm:text-xl md:text-2xl text-neutral-900 font-geist tracking-tighter" style="">
            "FlowAI transformed our content strategy. We now generate 10x more content while maintaining quality."
          </p>
          <div class="mt-8 flex items-center gap-3">
            <img src="https://images.unsplash.com/photo-1502685104226-ee32379fefbe?q=80&amp;w=200&amp;h=200&amp;fit=crop&amp;crop=faces" alt="" class="w-10 h-10 rounded-xl object-cover">
            <div class="">
              <div class="text-sm font-geist tracking-tight" style="">Sarah Chen</div>
              <div class="text-xs text-neutral-500 font-geist tracking-tight" style="">Marketing Director, TechFlow</div>
            </div>
          </div>
        </article>

        <!-- Card 2 -->
        <article class="min-w-[420px] sm:min-w-[520px] max-w-[640px] bg-white border border-neutral-200/70 rounded-[24px] p-8 text-neutral-900 hover-lift backdrop-blur-sm snap-center rotate-1 shadow-2xl">
          <p class="text-lg sm:text-xl md:text-2xl text-neutral-900 font-geist tracking-tighter" style="">
            "The AI automation saved us 20+ hours weekly. Our content performance increased by 300%."
          </p>
          <div class="mt-8 flex items-center gap-3">
            <img src="https://images.unsplash.com/photo-1547425260-76bcadfb4f2c?q=80&amp;w=200&amp;h=200&amp;fit=crop&amp;crop=faces" alt="" class="w-10 h-10 rounded-xl object-cover">
            <div class="">
              <div class="text-sm font-geist tracking-tight" style="">Marcus Rodriguez</div>
              <div class="text-xs text-neutral-500 font-geist tracking-tight" style="">Content Lead, GrowthLab</div>
            </div>
          </div>
        </article>

        <!-- Card 3 -->
        <article class="min-w-[420px] sm:min-w-[520px] max-w-[640px] bg-white border border-neutral-200/70 rounded-[24px] p-8 text-neutral-900 hover-lift backdrop-blur-sm snap-center -rotate-1 shadow-2xl">
          <p class="text-lg sm:text-xl md:text-2xl text-neutral-900 font-geist tracking-tighter" style="">
            "Incredible ROI. FlowAI paid for itself within the first month of implementation."
          </p>
          <div class="mt-8 flex items-center gap-3">
            <img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?q=80&amp;w=200&amp;h=200&amp;fit=crop&amp;crop=faces" alt="" class="w-10 h-10 rounded-xl object-cover">
            <div class="">
              <div class="text-sm font-geist tracking-tight" style="">Emma Thompson</div>
              <div class="text-xs text-neutral-500 font-geist tracking-tight" style="">Founder, Digital Ventures</div>
            </div>
          </div>
        </article>

        <!-- Card 4 -->
        <article class="min-w-[420px] sm:min-w-[520px] max-w-[640px] bg-white border border-neutral-200/70 rounded-[24px] p-8 text-neutral-900 hover-lift backdrop-blur-sm snap-center rotate-2 shadow-2xl">
          <p class="text-lg sm:text-xl md:text-2xl text-neutral-900 font-geist tracking-tighter" style="">
            "From brief to published content in minutes — completely game-changing for our workflow."
          </p>
          <div class="mt-8 flex items-center gap-3">
            <img src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?q=80&amp;w=200&amp;h=200&amp;fit=crop&amp;crop=faces" alt="" class="w-10 h-10 rounded-xl object-cover">
            <div>
              <div class="text-sm font-geist tracking-tight" style="">Alex Morgan</div>
              <div class="text-xs text-neutral-500 font-geist tracking-tight" style="">Creative Director, Apex Studios</div>
            </div>
          </div>
        </article>

        <!-- Card 5 -->
        <article class="min-w-[420px] sm:min-w-[520px] max-w-[640px] bg-white border border-neutral-200/70 rounded-[24px] p-8 text-neutral-900 hover-lift backdrop-blur-sm snap-center -rotate-3 shadow-2xl">
          <p class="text-lg sm:text-xl md:text-2xl text-neutral-900 font-geist tracking-tighter" style="">
            "The analytics and multi-channel distribution features are phenomenal. Best investment we made."
          </p>
          <div class="mt-8 flex items-center gap-3">
            <img src="https://images.unsplash.com/photo-1527980965255-d3b416303d12?q=80&amp;w=200&amp;h=200&amp;fit=crop&amp;crop=faces" alt="" class="w-10 h-10 rounded-xl object-cover">
            <div>
              <div class="text-sm font-geist tracking-tight" style="">Priya Patel</div>
              <div class="text-xs text-neutral-500 font-geist tracking-tight" style="">Head of Marketing, InnovateCorp</div>
            </div>
          </div>
        </article>
      </div>

      <!-- Controls -->
      <div class="absolute bottom-6 right-6 z-20 flex items-center gap-3">
        <button aria-label="Previous" class="hover:bg-neutral-200 transition-colors inline-flex text-neutral-900 bg-neutral-100 w-10 h-10 border-neutral-200 border rounded-full items-center justify-center" id="testimonial-prev" style="opacity: 0.5; pointer-events: none;">
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="arrow-left" style="stroke-width:1.5" class="lucide lucide-arrow-left w-5 h-5"><path d="m12 19-7-7 7-7" class=""></path><path d="M19 12H5" class=""></path></svg>
        </button>
        <button aria-label="Next" class="w-10 h-10 rounded-full text-white bg-neutral-900 hover:bg-neutral-800 transition-colors inline-flex items-center justify-center" id="testimonial-next" style="opacity: 1; pointer-events: auto;">
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="arrow-right" style="stroke-width: 1.5; width: 24px; height: 20px; color: rgb(255, 255, 255);" class="lucide lucide-arrow-right w-[24px] h-[20px]" data-icon-replaced="true"><path d="M5 12h14" class=""></path><path d="m12 5 7 7-7 7" class=""></path></svg>
        </button>
      </div>
    </div>
  </div>
</div>

<script>
(function() {
  const rail = document.getElementById('testimonial-rail');
  const prevButton = document.getElementById('testimonial-prev');
  const nextButton = document.getElementById('testimonial-next');
  
  if (rail && prevButton && nextButton) {
    const scrollDistance = 540; // Card width + gap
    
    // Previous button click handler
    prevButton.addEventListener('click', function(e) {
      e.preventDefault();
      rail.scrollBy({
        left: -scrollDistance,
        behavior: 'smooth'
      });
    });
    
    // Next button click handler
    nextButton.addEventListener('click', function(e) {
      e.preventDefault();
      rail.scrollBy({
        left: scrollDistance,
        behavior: 'smooth'
      });
    });
    
    // Update button states based on scroll position
    function updateButtonStates() {
      const scrollLeft = rail.scrollLeft;
      const maxScroll = rail.scrollWidth - rail.clientWidth;
      
      // Disable/enable previous button
      if (scrollLeft <= 10) {
        prevButton.style.opacity = '0.5';
        prevButton.style.pointerEvents = 'none';
      } else {
        prevButton.style.opacity = '1';
        prevButton.style.pointerEvents = 'auto';
      }
      
      // Disable/enable next button
      if (scrollLeft >= maxScroll - 10) {
        nextButton.style.opacity = '0.5';
        nextButton.style.pointerEvents = 'none';
      } else {
        nextButton.style.opacity = '1';
        nextButton.style.pointerEvents = 'auto';
      }
    }
    
    // Initial button state update
    updateButtonStates();
    
    // Update button states on scroll
    rail.addEventListener('scroll', updateButtonStates);
    
    // Update button states on window resize
    window.addEventListener('resize', updateButtonStates);
  }
})();
</script>
</section>
All Prompts