VibeCoderzVibeCoderz
Telegram
All Prompts
Interactive Feature Tabs Section with Gradient Indicator preview
tabsfeature-sectiontailwindinteractivegradientlanding-pageresponsiveanimation

Interactive Feature Tabs Section with Gradient Indicator

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

Prompt

<section
  class="shadow-black/30 bg-white/5 border-white/10 border rounded-3xl pt-0 pr-8 pb-0 pl-8 shadow-2xl backdrop-blur-sm">
  <div class="max-w-7xl rounded-3xl mr-auto ml-auto pt-12 pb-12">
    <!-- Header -->
    <div class="sm:mb-10 text-center mb-8">
      <div
        class="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3.5 py-1.5 text-xs text-white/80 mx-auto">
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
          stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="sparkles"
          class="lucide lucide-sparkles h-3.5 w-3.5">
          <path
            d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"
            class=""></path>
          <path d="M20 2v4" class=""></path>
          <path d="M22 4h-4" class=""></path>
          <circle cx="4" cy="20" r="2" class=""></circle>
        </svg>
        <span class="">Features</span>
      </div>
      <h2 class="sm:text-5xl lg:text-6xl text-4xl font-semibold text-white tracking-tight mt-3">What makes our AI chat
        truly unique?</h2>
    </div>

    <!-- Tabs -->
    <div class="flex justify-center">
      <div class="relative">
        <div
          class="inline-flex flex-wrap items-center gap-2 rounded-[24px] border border-white/10 bg-white/5 px-2.5 py-2">
          <!-- Tab 1 -->
          <button onclick="switchTab(0)" class="tab-button relative inline-flex items-center gap-2 rounded-2xl border border-white/10 bg-white/10 px-4 py-2 text-sm font-medium text-white/90 transition">
            <span class="inline-flex h-5 w-5 items-center justify-center rounded-lg bg-gradient-to-br from-indigo-500 to-violet-500 ring-1 ring-white/20">
              <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="calendar" class="lucide lucide-calendar h-3.5 w-3.5 text-white"><path d="M8 2v4" class=""></path><path d="M16 2v4" class=""></path><rect width="18" height="18" x="3" y="4" rx="2" class=""></rect><path d="M3 10h18" class=""></path></svg>
            </span>
            <span>Meeting Assistant</span>
          </button>

          <!-- Tab 2 -->
          <button onclick="switchTab(1)" class="tab-button relative inline-flex items-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80 hover:text-white hover:bg-white/10 transition">
            <span class="inline-flex h-5 w-5 items-center justify-center rounded-lg bg-white/5 ring-1 ring-white/15">
              <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="git-branch" class="lucide lucide-git-branch h-3.5 w-3.5 text-white/80"><line x1="6" x2="6" y1="3" y2="15" class=""></line><circle cx="18" cy="6" r="3" class=""></circle><circle cx="6" cy="18" r="3" class=""></circle><path d="M18 9a9 9 0 0 1-9 9" class=""></path></svg>
            </span>
            <span class="">Scheduler &amp; Lead Router</span>
          </button>

          <!-- Tab 3 -->
          <button onclick="switchTab(2)" class="tab-button relative inline-flex items-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80 hover:text-white hover:bg-white/10 transition">
            <span class="inline-flex h-5 w-5 items-center justify-center rounded-lg bg-white/5 ring-1 ring-white/15">
              <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox=" fill=" none"="" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data"="" class="lucide lucide-brain h-3.5 w-3.5 text-white/80"><path d="M12 18V5" class=""></path><path d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4" class=""></path><path d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5" class=""></path><path d="M17.997 5.125a4 4 0 0 1 2.526 5.77" class=""></path><path d="M18 18a4 4 0 0 0 2-7.464" class=""></path><path d="M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517" class=""></path><path d="M6 18a4 4 0 0 1-2-7.464" class=""></path><path d="M6.003 5.125a4 4 0 0 0-2.526 5.77" class=""></path></svg>
            </span>
            <span class="">Conversation Insights</span>
          </button>

          <!-- Tab 4 -->
          <button onclick="switchTab(3)" class="tab-button relative inline-flex items-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-4 py-2 text-sm font-medium text-white/80 hover:text-white hover:bg-white/10 transition">
            <span class="inline-flex h-5 w-5 items-center justify-center rounded-lg bg-white/5 ring-1 ring-white/15">
              <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="trending-up" class="lucide lucide-trending-up h-3.5 w-3.5 text-white/80"><path d="M16 7h6v6" class=""></path><path d="m22 7-8.5 8.5-5-5L2 17" class=""></path></svg>
            </span>
            <span class="">Revenue Performance</span>
          </button>
        </div>

        <!-- Animated gradient line -->
        <div id="gradient-line"
          class="pointer-events-none absolute -bottom-2 h-0.5 rounded-full transition-all duration-300 ease-out"
          style="background: linear-gradient(90deg, rgba(99, 102, 241, 0) 0%, rgba(99, 102, 241, 0.8) 25%, rgba(217, 70, 239, 0.8) 75%, rgba(217, 70, 239, 0) 100%); left: 23px; width: 158.32px;">
        </div>

        <div class="pointer-events-none absolute left-0 right-0 -bottom-2 h-px"
          style="background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(148,163,184,.15) 20%, rgba(148,163,184,.15) 80%, rgba(255,255,255,0) 100%);">
        </div>
      </div>

      <script>
        function switchTab(index) {
          const buttons = document.querySelectorAll('.tab-button');
          const line = document.getElementById('gradient-line');
          
          // Update button styles
          buttons.forEach((btn, i) => {
            const iconSpan = btn.querySelector('span:first-child');
            if (i === index) {
              btn.classList.remove('bg-white/5', 'text-white/80');
              btn.classList.add('bg-white/10', 'text-white/90');
              iconSpan.classList.remove('bg-white/5', 'ring-white/15');
              iconSpan.classList.add('bg-gradient-to-br', 'from-indigo-500', 'to-violet-500', 'ring-white/20');
            } else {
              btn.classList.remove('bg-white/10', 'text-white/90');
              btn.classList.add('bg-white/5', 'text-white/80');
              iconSpan.classList.remove('bg-gradient-to-br', 'from-indigo-500', 'to-violet-500', 'ring-white/20');
              iconSpan.classList.add('bg-white/5', 'ring-white/15');
            }
          });
          
          // Calculate position and width for gradient line
          const activeButton = buttons[index];
          const container = activeButton.parentElement;
          const containerRect = container.getBoundingClientRect();
          const buttonRect = activeButton.getBoundingClientRect();
          
          const left = buttonRect.left - containerRect.left + 12;
          const width = buttonRect.width - 24;
          
          line.style.left = left + 'px';
          line.style.width = width + 'px';
        }
        
        // Initialize on load
        if (typeof window !== 'undefined') {
          window.addEventListener('load', () => {
            switchTab(0);
          });
        }
      </script>
    </div>

    <!-- Feature Panel -->
    <div class="sm:mt-10 sm:p-10 border-white/10 border rounded-[28px] mt-8 pt-6 pr-6 pb-6 pl-6 backdrop-blur-sm">
      <div class="grid grid-cols-1 lg:grid-cols-2 lg:gap-12 gap-x-8 gap-y-8 items-start">
        <!-- Copy -->
        <div class="">
          <h3 class="sm:text-5xl leading-snug text-4xl font-semibold text-white tracking-tight">Smarter, faster
            scheduling
            <span class="xl:bg-clip-text xl:text-transparent bg-gradient-to-br from-gray-500/100 to-gray-500/50">made effortless</span>
          </h3>
          <p class="sm:text-lg text-base text-slate-300 mt-4">Our assistant doesn’t just replyit coordinates.
            Whether you’re chatting on a call, in-app, or through your calendar, it automatically finds the best times,
            manages reschedules, and keeps everything synced without lifting a finger.</p>

          <!-- Pills -->
          <div class="mt-6 flex flex-col gap-4">
            <div
              class="inline-flex sm:w-[540px] text-sm text-slate-200 w-full max-w-full border-white/10 border rounded-2xl pt-3 pr-4 pb-3 pl-4 shadow-sm gap-x-3 gap-y-3 items-center"
              style="box-shadow: inset 0 -12px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.04)">
              <span class="inline-flex items-center justify-center shrink-0 w-10 h-10 ring-white/10 ring-1 rounded-xl">
            <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="globe" class="lucide lucide-globe h-4.5 w-4.5 text-white/90"><circle cx="12" cy="12" r="10" class=""></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" class=""></path><path d="M2 12h20" class=""></path></svg>
          </span>
              <span class="font-medium tracking-[-0.01em]">Instant meeting setup — automatically detects context and books at the right time.</span>
            </div>

            <div
              class="inline-flex sm:w-[540px] text-sm text-slate-200 w-full max-w-full border-white/10 border rounded-2xl pt-3 pr-4 pb-3 pl-4 shadow-sm gap-x-3 gap-y-3 items-center"
              style="box-shadow: inset 0 -12px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.04)">
              <span class="inline-flex items-center justify-center shrink-0 w-10 h-10 ring-white/10 ring-1 rounded-xl">
            <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="smile" class="lucide lucide-smile" data-icon-set="lucide" data-icon-replaced="true" style="color: rgb(255, 255, 255);"><circle cx="12" cy="12" r="10" class=""></circle><path d="M8 14s1.5 2 4 2 4-2 4-2" class=""></path><line x1="9" x2="9.01" y1="9" y2="9" class=""></line><line x1="15" x2="15.01" y1="9" y2="9" class=""></line></svg>
          </span>
              <span class="font-medium tracking-[-0.01em]">Smart suggestions — adapts to your preferences and past conversations.</span>
            </div>
          </div>
        </div>

        <!-- Visual -->
        <div class="relative">
          <div
            class="relative overflow-hidden rounded-2xl border border-white/10 bg-[#0d0f16]/70 shadow-lg aspect-[4/3]">
            <!-- Subtle grid -->
            <div class="opacity-30 absolute top-0 right-0 bottom-0 left-0"
              style="background-image: linear-gradient(0deg, rgba(255,255,255,0.06) 1px, rgba(0,0,0,0) 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, rgba(0,0,0,0) 1px); background-size: 24px 24px, 24px 24px">
            </div>

            <!-- Stacked card mock -->
            <div class="absolute top-10 right-10 bottom-16 left-10">
              <div class="absolute inset-x-6 top-2 h-[82%] rounded-[28px] border border-white/10 bg-white/[0.03]"></div>
              <div
                class="bg-[radial-gradient(circle_at_center,var(--tw-gradient-stops))] from-white/10 to-white/0 h-[84%] border-white/10 border rounded-[28px] absolute top-5 right-4 left-4">
              </div>
              <div
                class="shadow-black/30 [--fx-filter:blur(10px)_liquid-glass(5,10)_saturate(1.25)_noise(0.5,1,0)] bg-gradient-to-br from-white/10 via-white/0 to-white/10 h-[86%] border-white/15 border rounded-[28px] absolute top-8 right-2 left-2 backdrop-blur-md"
                style="box-shadow: 0 10px 30px rgba(0,0,0,0.35) inset">
                <!-- Inner lines -->
                <div class="bg-white/10 h-4 rounded-lg absolute top-8 right-6 left-6"></div>
                <div class="bg-white/10 h-4 rounded-lg absolute top-8 right-6 left-6"></div>
                <div class="bg-white/10 h-4 rounded-lg absolute top-8 right-6 left-6"></div>
                <div class="h-3.5 bg-white/10 rounded-lg my-16 absolute top-0 right-24 bottom-12 left-6"></div>
                <div class="bg-white/10 h-12 rounded-xl absolute top-28 right-32 left-6"></div>






              </div>
            </div>

            <!-- Bottom-right avatars and orbs -->
            <div class="flex z-0 absolute right-16 bottom-6 left-16 gap-x-3 gap-y-3 items-center justify-center">

              <img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover rounded-full ring-white/20 ring-1" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/66cda8d4-dd4e-44ee-8ef9-cba94340ba05_3840w.webp" alt="Avatar 1"><img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover ring-white/20 ring-1 rounded-full" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/2024b6bd-7dee-4c3c-8e15-adfeaab5e3ee_3840w.webp" alt="Avatar 1"><img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover ring-white/20 ring-1 rounded-full" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/8fb04a14-10bb-42af-8464-ab91b4a2ab2f_320w.webp" alt="Avatar 1">

              <img class="transition-all duration-300 z-10 w-16 h-16 object-cover ring-white/25 ring-1 rounded-full" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/077ae66a-62bc-4bf7-afa2-ff734313b35c_3840w.webp" alt="Avatar 2">

              <img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover ring-white/20 ring-1 rounded-full" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/39e15168-9f77-4837-9a4b-89c74b8bc38b_3840w.webp" alt="Avatar 3"><img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover ring-white/20 ring-1 rounded-full" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/8af5e860-0834-42ee-9c28-7a688c9c1907_3840w.webp" alt="Avatar 3"><img class="transition-all duration-300 hover:w-16 hover:h-16 hover:ring-white/25 hover:z-10 w-8 h-8 object-cover rounded-full ring-white/20 ring-1" src="https://hoirqrkdgbmvpwutwuwj-all.supabase.co/storage/v1/object/public/assets/assets/4eb1be61-53d3-409e-9285-97c3c2f64161_320w.webp" alt="Avatar 3">

            </div>

            <!-- Subtle divider like frame edge -->


            <!-- Accent glow -->
            <div class="pointer-events-none absolute -inset-1 rounded-2xl opacity-60 blur-xl"
              style="background: radial-gradient(60% 60% at 70% 20%, rgba(99,102,241,.22), rgba(217,70,239,0) 70%);">
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>
All Prompts