VibeCoderzVibeCoderz
Telegram
All Prompts
Animated Orbiting API Stats Card preview
cardtailwindanimateddashboardstatsvisualizationapiorbit

Animated Orbiting API Stats Card

Анимированная карточка статистики API на TailwindCSS. Визуализация данных с орбитальными элементами и динамическими счетчиками. Идеально для дашбордов.

Prompt

<div
  class="max-w-md overflow-hidden animate-fade-in-up delay-700 bg-black/30 border-white/10 border rounded-2xl pt-6 pr-6 pb-6 pl-6 relative">
  <div class="pointer-events-none absolute inset-px rounded-2xl ring-1 ring-inset ring-white/10"></div>
  <div class="absolute -top-10 left-1/2 h-56 w-56 -translate-x-1/2 rounded-full bg-sky-500/20 blur-3xl"></div>

  <!-- Icon Grid -->
  <div class="grid grid-cols-3 gap-3 opacity-60">
    <div
      class="aspect-square rounded-lg border border-white/10 bg-white/[0.02] flex items-center justify-center animate-pulse"
      style="animation-delay: 0s; animation-duration: 2s;">
      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
        stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"
        class="h-5 w-5 text-sky-400/70">
        <path
          d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"
          class=""></path>
      </svg>
    </div>
    <div
      class="aspect-square rounded-lg border border-white/10 bg-white/[0.02] flex items-center justify-center animate-pulse"
      style="animation-delay: 0.3s; animation-duration: 2s;">
      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
        stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"
        class="h-5 w-5 text-sky-400/70">
        <path d="M20 7h-9" class=""></path>
        <path d="M14 17H5" class=""></path>
        <circle cx="17" cy="17" r="3" class=""></circle>
        <circle cx="7" cy="7" r="3" class=""></circle>
      </svg>
    </div>
    <div
      class="aspect-square rounded-lg border border-white/10 bg-white/[0.02] flex items-center justify-center animate-pulse"
      style="animation-delay: 0.6s; animation-duration: 2s;">
      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
        stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"
        class="h-5 w-5 text-sky-400/70">
        <path d="M12 2v20M2 12h20" class=""></path>
      </svg>
    </div>
  </div>

  <!-- Enhanced Database Schema Visualization -->
  <div class="relative mt-6 flex items-center justify-center">
    <div class="relative h-48 w-full">
      <!-- Central Hub -->
      <div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2">
        <div
          class="h-20 w-20 rounded-full border-2 border-sky-400/50 bg-gradient-to-b from-sky-500/20 to-sky-500/5 flex items-center justify-center shadow-[0_0_40px_-10px_rgba(56,189,248,0.6)]"
          style="animation: pulse-glow 3s ease-in-out infinite;">
          <div class="text-center">
            <div class="text-2xl font-semibold tracking-tight text-sky-100">
              500+
            </div>
            <div class="text-[10px] text-sky-400">APIs</div>
          </div>
        </div>
      </div>

      <!-- Orbiting Nodes -->
      <div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2" style="width: 180px; height: 180px;">
        <!-- Node 1 -->
        <div class="absolute left-1/2 top-1/2 -ml-5 -mt-5" style="animation: orbit-1 12s linear infinite;">
          <div
            class="h-10 w-10 rounded-lg border border-emerald-500/40 bg-emerald-500/10 flex items-center justify-center">
            <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"
              class="text-emerald-400">
              <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" class=""></path>
              <circle cx="9" cy="7" r="4" class=""></circle>
            </svg>
          </div>
        </div>

        <!-- Node 2 -->
        <div class="absolute left-1/2 top-1/2 -ml-5 -mt-5" style="animation: orbit-2 12s linear infinite;">
          <div class="h-10 w-10 rounded-lg border border-cyan-500/40 bg-cyan-500/10 flex items-center justify-center">
            <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"
              class="text-cyan-400">
              <path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" class=""></path>
            </svg>
          </div>
        </div>

        <!-- Node 3 -->
        <div class="absolute left-1/2 top-1/2 -ml-5 -mt-5" style="animation: orbit-3 12s linear infinite;">
          <div
            class="h-10 w-10 rounded-lg border border-violet-500/40 bg-violet-500/10 flex items-center justify-center">
            <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"
              class="text-violet-400">
              <rect width="18" height="11" x="3" y="11" rx="2" ry="2" class=""></rect>
              <path d="M7 11V7a5 5 0 0 1 10 0v4" class=""></path>
            </svg>
          </div>
        </div>

        <!-- Node 4 -->
        <div class="absolute left-1/2 top-1/2 -ml-5 -mt-5" style="animation: orbit-4 12s linear infinite;">
          <div
            class="h-10 w-10 rounded-lg border border-fuchsia-500/40 bg-fuchsia-500/10 flex items-center justify-center">
            <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"
              class="text-fuchsia-400">
              <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" class=""></path>
              <polyline points="7 10 12 15 17 10" class=""></polyline>
              <line x1="12" y1="15" x2="12" y2="3" class=""></line>
            </svg>
          </div>
        </div>
      </div>

      <!-- Connecting Lines (animated) -->
      <svg class="absolute inset-0 pointer-events-none" width="100%" height="100%">
        <defs class="">

        </defs>
        <line class="connection-line" stroke="url(#line-gradient-1)" stroke-width="1.5" stroke-dasharray="4 4"
          style="animation: dash-flow 2s linear infinite;">
          <animate attributeName="x1" values="50%;50%;50%" dur="12s" repeatCount="indefinite" class=""></animate>
          <animate attributeName="y1" values="50%;50%;50%" dur="12s" repeatCount="indefinite" class=""></animate>
          <animate attributeName="x2" dur="12s" repeatCount="indefinite" class=""></animate>
          <animate attributeName="y2" dur="12s" repeatCount="indefinite" class=""></animate>
        </line>
      </svg>

      <!-- Data Flow Particles -->
      <div class="data-particle" style="animation: flow-particle-1 4s ease-in-out infinite;"></div>
      <div class="data-particle" style="animation: flow-particle-2 4s ease-in-out infinite 1s;"></div>
      <div class="data-particle" style="animation: flow-particle-3 4s ease-in-out infinite 2s;"></div>
      <div class="data-particle" style="animation: flow-particle-4 4s ease-in-out infinite 3s;"></div>
    </div>
  </div>

  <!-- Details -->
  <div class="mt-6 space-y-2">
    <div class="flex items-center justify-between text-xs">
      <span class="text-zinc-400">Popular Apps</span>
      <span class="text-sky-300 transition-all" style="animation: fade-in-out 2s ease-in-out infinite;">120+</span>
    </div>
    <div class="flex items-center justify-between text-xs">
      <span class="text-zinc-400">API Endpoints</span>
      <span class="text-zinc-200 transition-all" style="animation: fade-in-out 2s ease-in-out infinite 0.5s;">850+</span>
    </div>
    <div class="flex items-center justify-between text-xs">
      <span class="text-zinc-400">Custom Webhooks</span>
      <span class="text-emerald-400 transition-all" style="animation: fade-in-out 2s ease-in-out infinite 1s;">Unlimited</span>
    </div>
  </div>

  <style>
    @keyframes orbit-1 {
      from {
        transform: rotate(0deg) translateX(90px) rotate(0deg);
      }

      to {
        transform: rotate(360deg) translateX(90px) rotate(-360deg);
      }
    }

    @keyframes orbit-2 {
      from {
        transform: rotate(90deg) translateX(90px) rotate(-90deg);
      }

      to {
        transform: rotate(450deg) translateX(90px) rotate(-450deg);
      }
    }

    @keyframes orbit-3 {
      from {
        transform: rotate(180deg) translateX(90px) rotate(-180deg);
      }

      to {
        transform: rotate(540deg) translateX(90px) rotate(-540deg);
      }
    }

    @keyframes orbit-4 {
      from {
        transform: rotate(270deg) translateX(90px) rotate(-270deg);
      }

      to {
        transform: rotate(630deg) translateX(90px) rotate(-630deg);
      }
    }

    @keyframes pulse-glow {

      0%,
      100% {
        box-shadow: 0 0 40px -10px rgba(56, 189, 248, 0.6);
      }

      50% {
        box-shadow: 0 0 60px 0px rgba(56, 189, 248, 0.9);
      }
    }

    @keyframes dash-flow {
      0% {
        stroke-dashoffset: 8;
      }

      100% {
        stroke-dashoffset: 0;
      }
    }

    .data-particle {
      position: absolute;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: rgba(56, 189, 248, 0.8);
      opacity: 0;
    }

    @keyframes flow-particle-1 {
      0% {
        top: 24px;
        left: 50%;
        opacity: 0;
      }

      25% {
        opacity: 1;
      }

      50% {
        top: 50%;
        left: 50%;
        opacity: 1;
      }

      75% {
        opacity: 0.5;
      }

      100% {
        top: 50%;
        left: calc(50% + 90px);
        opacity: 0;
      }
    }

    @keyframes flow-particle-2 {
      0% {
        top: 50%;
        left: calc(50% + 90px);
        opacity: 0;
      }

      25% {
        opacity: 1;
      }

      50% {
        top: 50%;
        left: 50%;
        opacity: 1;
      }

      75% {
        opacity: 0.5;
      }

      100% {
        top: calc(50% + 90px);
        left: 50%;
        opacity: 0;
      }
    }

    @keyframes flow-particle-3 {
      0% {
        top: calc(50% + 90px);
        left: 50%;
        opacity: 0;
      }

      25% {
        opacity: 1;
      }

      50% {
        top: 50%;
        left: 50%;
        opacity: 1;
      }

      75% {
        opacity: 0.5;
      }

      100% {
        top: 50%;
        left: calc(50% - 90px);
        opacity: 0;
      }
    }

    @keyframes flow-particle-4 {
      0% {
        top: 50%;
        left: calc(50% - 90px);
        opacity: 0;
      }

      25% {
        opacity: 1;
      }

      50% {
        top: 50%;
        left: 50%;
        opacity: 1;
      }

      75% {
        opacity: 0.5;
      }

      100% {
        top: 24px;
        left: 50%;
        opacity: 0;
      }
    }

    @keyframes fade-in-out {

      0%,
      100% {
        opacity: 0.7;
      }

      50% {
        opacity: 1;
      }
    }
  </style>
</div>
All Prompts