VibeCoderzVibeCoderz
Telegram
All Prompts
Animated Telemetry Dashboard Section preview
featuresectiontailwinddashboardanimatedinteractivetelemetry

Animated Telemetry Dashboard Section

Анимированная секция дашборда телеметрии: радар, индикаторы, логи, прогресс-бар. UI на Tailwind CSS для страниц мониторинга.

Prompt

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Telemetry Section</title>

  <script src="https://cdn.tailwindcss.com"></script>
  <script src="https://unpkg.com/lucide@latest"></script>

  <style>
    /* =========================================================
       KEY IDEA (fix)
       Your progress animations were "finishing" before the user
       scrolls into the section, so they look static.
       Solution: pause/reset everything until #telemetry is in view,
       then start animations by adding .telemetry-in to the section.
    ========================================================= */

    /* ---------- optional: your panels (keep if you already have them elsewhere) ---------- */
    .cmd-panel {
      background: linear-gradient(180deg, rgba(18, 18, 20, 0.92), rgba(10, 10, 12, 0.92));
      border: 1px solid rgba(63, 63, 70, 0.55);
      border-radius: 18px;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        inset 0 -20px 40px rgba(0, 0, 0, 0.45),
        0 18px 40px rgba(0, 0, 0, 0.45);
      overflow: hidden;
      transform-style: preserve-3d;
    }

    .cmd-panel-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 16px;
      background: linear-gradient(180deg, rgba(24, 24, 27, 0.9), rgba(10, 10, 12, 0.6));
      border-bottom: 1px solid rgba(63, 63, 70, 0.5);
      box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.04);
    }

    .cmd-panel-body {
      padding: 16px;
      position: relative;
      flex: 1;
    }

    .tactile-glass {
      background: linear-gradient(180deg, rgba(24, 24, 27, 0.75), rgba(10, 10, 12, 0.55));
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }

    /* =========================================================
       1) GREEN "PROGRESS" (Radar sweep) — animate on entry
    ========================================================= */
    .radar-sweep {
      opacity: 0;
      border-radius: 999px;
      background:
        conic-gradient(from 0deg,
          rgba(16, 185, 129, 0.00),
          rgba(16, 185, 129, 0.00) 52%,
          rgba(16, 185, 129, 0.22) 62%,
          rgba(16, 185, 129, 0.00) 72%,
          rgba(16, 185, 129, 0.00));
      /* cut it into a ring */
      -webkit-mask: radial-gradient(circle, transparent 0 55%, #000 58% 100%);
      mask: radial-gradient(circle, transparent 0 55%, #000 58% 100%);
      will-change: transform, opacity;
    }

    @keyframes radar-rotate {
      from {
        transform: rotate(0deg);
      }

      to {
        transform: rotate(360deg);
      }
    }

    /* only animate when section is in view */
    #telemetry.telemetry-in .radar-sweep {
      opacity: 1;
      animation: radar-rotate 2.8s linear infinite;
    }

    /* =========================================================
       2) PURPLE PROGRESS BAR (Deployment Tasks) — animate on entry
       - This is the one that often looks "not animating" because
         it already finished before you reached the section.
    ========================================================= */
    @keyframes pb-deploy {
      0% {
        width: 0%;
      }

      100% {
        width: var(--pb, 80%);
      }
    }

    @keyframes pb-sweep {
      0% {
        left: -50%;
      }

      100% {
        left: 150%;
      }
    }

    /* reset state (so it looks like it will animate) */
    .pb-fill {
      width: 0%;
    }

    .pb-sheen {
      left: -50%;
    }

    /* start ONLY when in view */
    #telemetry.telemetry-in .pb-fill {
      animation: pb-deploy 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    }

    #telemetry.telemetry-in .pb-sheen {
      animation: pb-sweep 2s linear infinite;
    }

    /* =========================================================
       3) "LINE PROGRESS BAR" (Quantum Relay Uplink) — animate on entry
    ========================================================= */
    @keyframes signal-flow {
      0% {
        background-position: 200% 0;
      }

      100% {
        background-position: -200% 0;
      }
    }

    @keyframes sweep-block {
      0% {
        left: 5%;
        right: 80%;
      }

      25% {
        box-shadow: inset 0 0 20px rgba(99, 102, 241, 0.5);
      }

      50% {
        left: 45%;
        right: 45%;
        box-shadow: inset 0 0 30px rgba(129, 140, 248, 0.8);
        background-color: rgba(99, 102, 241, 0.3);
        border-color: rgba(129, 140, 248, 1);
      }

      75% {
        box-shadow: inset 0 0 20px rgba(99, 102, 241, 0.5);
      }

      100% {
        left: 80%;
        right: 5%;
      }
    }

    /* pause/reset until in-view */
    .signal-texture {
      background: repeating-linear-gradient(90deg, transparent, transparent 10px, rgba(99, 102, 241, 0.2) 10px, rgba(99, 102, 241, 0.2) 20px);
      background-size: 200% 100%;
      background-position: 200% 0;
    }

    .sweep-block {
      left: 5%;
      right: 80%;
    }

    #telemetry.telemetry-in .signal-texture {
      animation: signal-flow 20s linear infinite;
    }

    #telemetry.telemetry-in .sweep-block {
      animation: sweep-block 4s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate;
    }

    /* =========================================================
       Keep your existing ones (these already animate)
    ========================================================= */
    @keyframes thermal-fluctuation {

      0%,
      100% {
        stroke-dashoffset: 110;
      }

      50% {
        stroke-dashoffset: 60;
      }
    }

    @keyframes aura-compute-bar-1 {

      0%,
      100% {
        height: 4rem;
      }

      33% {
        height: 5.5rem;
      }

      66% {
        height: 2.5rem;
      }
    }

    @keyframes aura-compute-bar-2 {

      0%,
      100% {
        height: 6rem;
      }

      33% {
        height: 4.5rem;
      }

      66% {
        height: 7rem;
      }
    }

    @keyframes aura-compute-bar-3 {

      0%,
      100% {
        height: 3.5rem;
      }

      33% {
        height: 4.5rem;
      }

      66% {
        height: 2rem;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      #telemetry * {
        animation: none !important;
        transition: none !important;
      }

      .pb-fill {
        width: var(--pb, 80%) !important;
      }

      .radar-sweep {
        opacity: 1 !important;
      }
    }
  </style>
</head>

<body class="bg-[#09090b] text-zinc-200">
  <section class="sm:py-32 z-10 bg-[#09090b] border-zinc-900 border-b pt-24 pb-24 relative" id="telemetry">
    <div
      class="z-0 opacity-50 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMSIgY3k9IjEiIHI9IjEiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsMC4wMikiLz48L3N2Zz4=')] absolute top-0 right-0 bottom-0 left-0">
    </div>

    <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 relative z-10">
      <div class="mb-16 scroll-animate">
        <h2 class="text-3xl font-normal tracking-tight text-zinc-100 flex items-center gap-3">
          <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"
            data-lucide="terminal-square" aria-hidden="true"
            class="lucide lucide-terminal-square w-6 h-6 text-zinc-500">
            <path d="m7 11 2-2-2-2"></path>
            <path d="M11 13h4"></path>
            <rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect>
          </svg>
          Live Telemetry Operations
        </h2>
        <p class="mt-4 text-base text-zinc-400 max-w-2xl">
          Real-time surveillance and hardware orchestration. Command your
          active clusters directly through secure terminal endpoints.
        </p>
      </div>

      <div class="grid grid-cols-1 lg:grid-cols-4 gap-6 scroll-animate tilt-wrapper gap-x-6 gap-y-6">

        <!-- Area Scan Widget -->
        <div class="tilt-element cmd-panel lg:col-span-1 h-[280px]">
          <div class="cmd-panel-header">
            <div class="flex flex-col gap-1">
              <span class="text-xs text-emerald-500 font-mono uppercase tracking-widest">
                Zone Alpha
              </span>
              <span class="text-base font-normal text-zinc-300">
                Node Scan
              </span>
            </div>
            <div
              class="flex items-center gap-1.5 px-2 py-1 rounded border border-emerald-900/30 bg-emerald-950/20 shadow-inner">
              <div class="w-1.5 h-1.5 rounded-full bg-emerald-500 shadow-[0_0_8px_#10b981] animate-pulse"></div>
              <span class="text-xs text-emerald-400 uppercase tracking-widest font-mono">
                Active
              </span>
            </div>
          </div>

          <div class="cmd-panel-body flex flex-col items-center justify-center relative">
            <div class="w-32 h-32 rounded-full border border-zinc-800 relative flex items-center justify-center">
              <div class="absolute inset-2 rounded-full border border-zinc-800/50"></div>
              <div class="absolute inset-0 rounded-full border border-emerald-500/10"></div>
              <div class="absolute inset-0 flex items-center justify-center pointer-events-none opacity-20">
                <div class="w-full h-px bg-emerald-500"></div>
                <div class="h-full w-px bg-emerald-500 absolute"></div>
              </div>

              <!-- GREEN "progress" sweep (now starts on scroll) -->
              <div class="absolute inset-0 rounded-full radar-sweep"></div>
            </div>

            <div class="w-full flex justify-between items-end absolute bottom-4 px-4">
              <span class="text-xs text-emerald-500 font-mono tracking-widest">
                LOC: 44.2, -11.4
              </span>
              <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"
                data-lucide="crosshair" aria-hidden="true" class="lucide lucide-crosshair w-4 h-4 text-emerald-500">
                <circle cx="12" cy="12" r="10"></circle>
                <line x1="22" x2="18" y1="12" y2="12"></line>
                <line x1="6" x2="2" y1="12" y2="12"></line>
                <line x1="12" x2="12" y1="6" y2="2"></line>
                <line x1="12" x2="12" y1="22" y2="18"></line>
              </svg>
            </div>
          </div>
        </div>

        <!-- Heat Signature Widget -->
        <div class="tilt-element cmd-panel lg:col-span-1 h-[280px]">
          <div class="cmd-panel-header">
            <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">
              Thermal Core
            </span>
            <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"
              data-lucide="more-horizontal" aria-hidden="true"
              class="lucide lucide-more-horizontal w-4 h-4 text-zinc-600">
              <circle cx="12" cy="12" r="1"></circle>
              <circle cx="19" cy="12" r="1"></circle>
              <circle cx="5" cy="12" r="1"></circle>
            </svg>
          </div>

          <div class="cmd-panel-body flex flex-col items-center justify-center relative">
            <div class="relative w-36 h-36 flex items-center justify-center">
              <svg class="w-full h-full transform -rotate-90">
                <circle cx="72" cy="72" r="60" fill="transparent" stroke="#18181b" stroke-width="10"></circle>
                <circle cx="72" cy="72" r="60" fill="transparent" stroke="#f97316" stroke-width="10"
                  stroke-dasharray="377" class="drop-shadow-[0_0_12px_rgba(249,115,22,0.5)]" stroke-linecap="round"
                  style="animation: thermal-fluctuation 4s ease-in-out infinite; stroke-dashoffset: 90;"></circle>
              </svg>
              <div class="absolute flex flex-col items-center">
                <span class="text-3xl font-normal text-orange-400 tracking-tight drop-shadow-[0_0_8px_rgba(249,115,22,0.4)] animate-[pulse_4s_ease-in-out_infinite]">
                  3240
                </span>
                <span class="text-xs text-orange-600 font-mono tracking-widest mt-1">
                  KELVIN
                </span>
              </div>
            </div>

            <div class="w-full flex justify-between items-end absolute bottom-4 px-4">
              <div class="px-2 py-1 rounded bg-zinc-800/50 border border-zinc-700 shadow-inner">
                <span class="text-xs text-zinc-400 font-mono tracking-widest uppercase">
                  Normal
                </span>
              </div>
              <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"
                data-lucide="refresh-cw" aria-hidden="true"
                class="lucide lucide-refresh-cw w-4 h-4 text-zinc-500 hover:text-zinc-300 transition-colors cursor-pointer">
                <path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path>
                <path d="M21 3v5h-5"></path>
                <path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path>
                <path d="M8 16H3v5"></path>
              </svg>
            </div>
          </div>
        </div>

        <!-- System Logs Widget -->
        <div class="tilt-element cmd-panel lg:col-span-2 h-[280px]">
          <div class="cmd-panel-header">
            <span class="text-lg font-normal text-zinc-300">System Logs</span>
            <div class="flex items-center gap-1 bg-[#0a0a0c] p-1 rounded-lg border border-zinc-800 shadow-inner">
              <button class="px-3 py-1 text-xs font-normal text-zinc-100 bg-[#1e1e24] rounded border border-zinc-700 shadow-sm">
                Global
              </button>
              <button class="px-3 py-1 text-xs font-normal text-zinc-500 hover:text-zinc-300 transition-colors">
                Alerts
              </button>
              <button class="px-3 py-1 text-xs font-normal text-zinc-500 hover:text-zinc-300 transition-colors">
                Routine
              </button>
            </div>
          </div>

          <div class="p-0 flex flex-col flex-1 relative overflow-hidden">
            <div class="grid grid-cols-[auto_1fr_2fr_1fr_1fr] gap-4 px-4 py-3 border-b border-zinc-800/50 bg-[#121214]">
              <span class="text-xs text-zinc-600 font-mono tracking-widest uppercase w-6">CHK</span>
              <span class="text-xs text-zinc-600 font-mono tracking-widest uppercase">REF</span>
              <span class="text-xs text-zinc-600 font-mono tracking-widest uppercase">OPERATION</span>
              <span class="text-xs text-zinc-600 font-mono tracking-widest uppercase">STATE</span>
              <span class="text-xs text-zinc-600 font-mono tracking-widest uppercase text-right">TIMESTAMP</span>
            </div>

            <div class="flex flex-col">
              <div
                class="grid grid-cols-[auto_1fr_2fr_1fr_1fr] gap-4 px-4 py-3 items-center border-b border-zinc-800/30 hover:bg-zinc-800/20 transition-colors">
                <div class="w-4 h-4 rounded bg-indigo-500 flex items-center justify-center shadow-inner">
                  <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="check" aria-hidden="true" class="lucide lucide-check w-3 h-3 text-white">
                    <path d="M20 6 9 17l-5-5"></path>
                  </svg>
                </div>
                <span class="text-xs text-zinc-400 font-mono">EVT-12C</span>
                <span class="text-sm text-zinc-300 truncate">Sync core frequency</span>
                <div>
                  <span class="text-xs text-emerald-500 px-2 py-0.5 rounded border border-emerald-900/50 bg-emerald-950/20">
                    STABLE
                  </span>
                </div>
                <span class="text-xs text-zinc-500 font-mono text-right">10:14:22.01</span>
              </div>

              <div
                class="grid grid-cols-[auto_1fr_2fr_1fr_1fr] gap-4 px-4 py-3 items-center border-b border-orange-900/30 bg-orange-950/10 border-l-2 border-l-orange-500 relative">
                <div class="absolute inset-0 bg-gradient-to-r from-orange-500/5 to-transparent pointer-events-none">
                </div>
                <div
                  class="w-4 h-4 rounded bg-orange-500/20 border border-orange-500/50 flex items-center justify-center relative z-10">
                  <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"
                    data-lucide="alert-triangle" aria-hidden="true"
                    class="lucide lucide-alert-triangle w-3 h-3 text-orange-500">
                    <path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path>
                    <path d="M12 9v4"></path>
                    <path d="M12 17h.01"></path>
                  </svg>
                </div>
                <span class="text-xs text-orange-400 font-mono relative z-10">ERR-502</span>
                <span class="text-sm text-orange-300 truncate relative z-10">Uplink packet loss</span>
                <div class="relative z-10">
                  <span class="text-xs text-red-400 px-2 py-0.5 rounded border border-red-900/50 bg-red-950/30">
                    CRITICAL
                  </span>
                </div>
                <span class="text-xs text-orange-500/50 font-mono text-right relative z-10">10:12:05.18</span>
              </div>

              <div
                class="grid grid-cols-[auto_1fr_2fr_1fr_1fr] gap-4 px-4 py-3 items-center border-b border-zinc-800/30 hover:bg-zinc-800/20 transition-colors">
                <div
                  class="w-4 h-4 rounded bg-[#0a0a0c] border border-zinc-700 shadow-[inset_0_2px_4px_rgba(0,0,0,0.5)] cursor-pointer">
                </div>
                <span class="text-xs text-zinc-500 font-mono">EVT-08A</span>
                <span class="text-sm text-zinc-500 truncate filter blur-[1px]">Background cache flush</span>
                <div>
                  <span class="text-xs text-zinc-500 px-2 py-0.5 rounded border border-zinc-800 bg-zinc-900/50">
                    PENDING
                  </span>
                </div>
                <span class="text-xs text-zinc-600 font-mono text-right">09:45:00.62</span>
              </div>
            </div>

            <div
              class="absolute bottom-4 left-1/2 -translate-x-1/2 tactile-glass px-4 py-2 rounded-full border border-zinc-700 shadow-[0_10px_20px_rgba(0,0,0,0.5)] flex items-center gap-4 z-20">
              <span class="text-xs text-indigo-400 font-normal">1 selected</span>
              <div class="w-px h-4 bg-zinc-700"></div>
              <button class="flex items-center gap-1.5 text-xs text-zinc-400 hover:text-zinc-200 transition-colors">
                <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" data-lucide="edit-2" aria-hidden="true" class="lucide lucide-edit-2 w-3.5 h-3.5"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"></path></svg>
                Edit
              </button>
              <button class="flex items-center gap-1.5 text-xs text-zinc-400 hover:text-red-400 transition-colors">
                <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" data-lucide="trash-2" aria-hidden="true" class="lucide lucide-trash-2 w-3.5 h-3.5"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg>
                Drop
              </button>
            </div>
          </div>
        </div>

        <!-- Objectives Widget -->
        <div class="tilt-element cmd-panel lg:col-span-1 h-[280px]">
          <div class="cmd-panel-header">
            <span class="text-base font-normal text-zinc-300">Deployment Tasks</span>
            <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"
              data-lucide="more-horizontal" aria-hidden="true"
              class="lucide lucide-more-horizontal w-4 h-4 text-zinc-600">
              <circle cx="12" cy="12" r="1"></circle>
              <circle cx="19" cy="12" r="1"></circle>
              <circle cx="5" cy="12" r="1"></circle>
            </svg>
          </div>

          <div class="cmd-panel-body flex flex-col gap-4 gap-x-4 gap-y-4">
            <div
              class="bg-[#0a0a0c] rounded-xl p-4 border border-zinc-800 shadow-[inset_0_2px_10px_rgba(0,0,0,0.8)] flex flex-col gap-4 relative">
              <p class="text-sm text-zinc-400 leading-relaxed">
                Boot security modules<br>
                Run diagnostic sweep on outer firewall layers.
              </p>

              <div class="flex flex-col gap-2">
                <div class="flex justify-between items-end">
                  <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">Progress</span>
                  <span class="text-xs font-mono text-indigo-400">80%</span>
                </div>

                <!-- Progress bar (now triggers on scroll) -->
                <div class="h-1.5 w-full bg-zinc-800 rounded-full overflow-hidden shadow-inner">
                  <div
                    class="pb-fill h-full bg-indigo-500 rounded-full shadow-[0_0_10px_#6366f1] relative overflow-hidden"
                    style="--pb:80%;">
                    <div
                      class="pb-sheen absolute top-0 bottom-0 w-[50%] bg-gradient-to-r from-transparent via-white/40 to-transparent">
                    </div>
                    <div class="absolute right-0 top-0 bottom-0 w-10 bg-gradient-to-r from-transparent to-white/30">
                    </div>
                  </div>
                </div>
              </div>

              <div class="flex justify-between items-center mt-2">
                <div class="flex items-center gap-1.5 text-zinc-500">
                  <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"
                    data-lucide="clock" aria-hidden="true" class="lucide lucide-clock w-3.5 h-3.5">
                    <circle cx="12" cy="12" r="10"></circle>
                    <path d="M12 6v6l4 2"></path>
                  </svg>
                  <span class="text-xs font-mono">4/5</span>
                </div>

                <div class="flex -space-x-2">
                  <div
                    class="w-6 h-6 rounded-full border border-zinc-700 bg-zinc-800 flex items-center justify-center text-xs text-zinc-400">
                    AJ</div>
                  <div
                    class="w-6 h-6 rounded-full border border-zinc-700 bg-zinc-800 flex items-center justify-center text-xs text-zinc-400">
                    MR</div>
                </div>
              </div>
            </div>

            <div class="mt-auto flex justify-between items-center px-1">
              <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">2/4 Pending</span>
              <label class="flex items-center gap-2 cursor-pointer">
                <span class="text-xs text-zinc-400 font-normal">Bypass</span>
                <div class="relative">
                  <input type="checkbox" class="sr-only">
                  <div class="w-8 h-4 rounded-full bg-[#0a0a0c] border border-zinc-800 shadow-[inset_0_2px_4px_rgba(0,0,0,0.8)] transition-colors"></div>
                  <div class="absolute left-1 top-1 w-2 h-2 rounded-full bg-zinc-500 transition-transform"></div>
                </div>
              </label>
            </div>
          </div>
        </div>

        <!-- Compute Usage Widget -->
        <div class="tilt-element cmd-panel lg:col-span-1 h-[280px]">
          <div class="cmd-panel-header">
            <span class="text-base font-normal text-zinc-300">Compute Usage</span>
            <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"
              data-lucide="more-horizontal" aria-hidden="true"
              class="lucide lucide-more-horizontal w-4 h-4 text-zinc-600">
              <circle cx="12" cy="12" r="1"></circle>
              <circle cx="19" cy="12" r="1"></circle>
              <circle cx="5" cy="12" r="1"></circle>
            </svg>
          </div>

          <div class="cmd-panel-body flex flex-col">
            <div
              class="flex-1 bg-[#0a0a0c] rounded-xl border border-zinc-800 p-4 shadow-[inset_0_2px_10px_rgba(0,0,0,0.8)] relative flex items-end justify-center gap-4">
              <div class="absolute inset-x-4 top-4 border-b border-dashed border-zinc-800"></div>
              <div class="absolute inset-x-4 top-1/2 border-b border-dashed border-zinc-800"></div>

              <div class="relative flex flex-col items-center w-12 z-10">
                <div
                  class="w-full h-16 bg-gradient-to-t from-orange-600 to-orange-400 rounded-t shadow-[0_0_15px_rgba(249,115,22,0.3)]"
                  style="animation: aura-compute-bar-1 3.5s ease-in-out infinite;"></div>
                <span class="text-xs text-zinc-500 font-mono mt-2 uppercase tracking-widest absolute -bottom-6">Node A</span>
              </div>

              <div class="relative flex flex-col items-center w-12 z-10">
                <div
                  class="absolute -top-6 bg-zinc-800 border border-zinc-700 text-orange-400 text-xs font-mono px-1.5 py-0.5 rounded tracking-widest uppercase">
                  Max</div>
                <div
                  class="w-full h-24 bg-gradient-to-t from-orange-500 to-orange-300 rounded-t shadow-[0_0_20px_rgba(249,115,22,0.5)]"
                  style="animation: aura-compute-bar-2 4.5s ease-in-out infinite;"></div>
                <span class="text-xs text-zinc-500 font-mono mt-2 uppercase tracking-widest absolute -bottom-6">Node B</span>
              </div>

              <div class="relative flex flex-col items-center w-12 z-10">
                <div
                  class="w-full h-14 bg-gradient-to-t from-orange-700 to-orange-500 rounded-t shadow-[0_0_10px_rgba(249,115,22,0.2)]"
                  style="animation: aura-compute-bar-3 3s ease-in-out infinite;"></div>
                <span class="text-xs text-zinc-500 font-mono mt-2 uppercase tracking-widest absolute -bottom-6">Node C</span>
              </div>
            </div>

            <div class="mt-8 grid grid-cols-3 gap-2 px-1">
              <div class="flex flex-col">
                <span class="text-xl font-normal text-zinc-200">240</span>
                <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">Active</span>
              </div>
              <div class="flex flex-col">
                <span class="text-xl font-normal text-orange-400 drop-shadow-[0_0_5px_rgba(249,115,22,0.5)]" style="animation: pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite;">
                  480
                </span>
                <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">Standby</span>
              </div>
              <div class="flex flex-col">
                <span class="text-xl font-normal text-zinc-400">112</span>
                <span class="text-xs text-zinc-500 font-mono uppercase tracking-widest">Cleared</span>
              </div>
            </div>
          </div>
        </div>

        <!-- Satellite Link Widget -->
        <div class="tilt-element cmd-panel lg:col-span-2 h-[280px]">
          <div class="cmd-panel-header justify-start gap-3">
            <div class="w-2 h-2 rounded-full bg-red-500 shadow-[0_0_8px_#ef4444] animate-pulse"></div>
            <span class="text-xs text-red-400 font-mono uppercase tracking-widest bg-red-950/20 px-2 py-0.5 rounded border border-red-900/30">
              T-Minus 08 Min
            </span>
          </div>

          <div class="cmd-panel-body flex flex-col pt-6 pr-6 pb-6 pl-6 justify-between">
            <div class="flex items-center justify-between mb-6">
              <span class="text-base font-normal text-zinc-300">Quantum Relay Uplink</span>
              <div class="flex items-center gap-2">
                <span class="text-[10px] font-mono text-indigo-400 uppercase tracking-widest animate-pulse">Transmitting</span>
                <div class="flex gap-0.5">
                  <div class="w-1 h-3 bg-indigo-500 rounded-sm animate-[pulse_1s_ease-in-out_infinite]"></div>
                  <div class="w-1 h-3 bg-indigo-500 rounded-sm animate-[pulse_1s_ease-in-out_infinite_0.2s]"></div>
                  <div class="w-1 h-3 bg-indigo-500 rounded-sm animate-[pulse_1s_ease-in-out_infinite_0.4s]"></div>
                </div>
              </div>
            </div>

            <div class="w-full relative py-6">
              <div
                class="h-10 w-full bg-[#0a0a0c] rounded-lg border border-zinc-800 shadow-[inset_0_2px_10px_rgba(0,0,0,0.8)] relative overflow-hidden">
                <!-- Background moving data texture (now starts on scroll) -->
                <div class="absolute inset-0 signal-texture opacity-20"></div>

                <!-- Static receiver nodes -->
                <div
                  class="absolute inset-y-0 right-0 w-[15%] bg-indigo-500/5 border-l border-indigo-500/30 border-dashed animate-pulse flex items-center justify-center">
                  <div class="w-1 h-1 rounded-full bg-indigo-400 shadow-[0_0_8px_#818cf8]"></div>
                </div>
                <div
                  class="absolute inset-y-0 left-0 w-[15%] bg-indigo-500/5 border-r border-indigo-500/30 border-dashed animate-pulse flex items-center justify-center">
                  <div class="w-1 h-1 rounded-full bg-indigo-400 shadow-[0_0_8px_#818cf8]"></div>
                </div>

                <!-- Animated sweeping block (now starts on scroll) -->
                <div
                  class="sweep-block absolute inset-y-0 bg-indigo-500/20 border-x border-indigo-500 shadow-[inset_0_0_20px_rgba(99,102,241,0.5)] flex items-center justify-between px-2 z-10">
                  <div class="w-px h-6 bg-indigo-400/80 shadow-[0_0_8px_rgba(129,140,248,0.8)]"></div>
                  <div class="w-px h-6 bg-indigo-400/80 shadow-[0_0_8px_rgba(129,140,248,0.8)]"></div>
                </div>
              </div>

              <div class="flex justify-between mt-3 px-1 relative">
                <div class="absolute top-[-10px] left-0 right-0 flex justify-between px-1">
                  <div class="w-px h-2 bg-zinc-700"></div>
                  <div class="w-px h-2 bg-zinc-700"></div>
                  <div class="w-px h-2 bg-zinc-700"></div>
                  <div class="w-px h-2 bg-zinc-700"></div>
                </div>
                <span class="text-xs text-zinc-500 font-mono">10:00</span>
                <span class="text-xs text-zinc-400 font-mono relative -left-4">10:30</span>
                <span class="text-xs text-zinc-400 font-mono relative left-4">12:00</span>
                <span class="text-xs text-zinc-500 font-mono">12:30</span>
              </div>
            </div>

            <div class="flex justify-between items-end mt-auto">
              <div class="flex flex-col gap-1">
                <span class="text-xs text-zinc-500">Encrypted Relay Channel</span>
                <a href="#"
                  class="text-sm font-mono text-indigo-400 hover:text-indigo-300 transition-colors flex items-center gap-1.5 group">
                  net.link/auth-v9
                  <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"
                    data-lucide="external-link" aria-hidden="true" class="lucide lucide-external-link w-3 h-3">
                    <path d="M15 3h6v6"></path>
                    <path d="M10 14 21 3"></path>
                    <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
                  </svg>
                </a>
              </div>

              <button class="w-10 h-10 rounded-lg bg-[#18181b] border border-zinc-700 shadow-lg flex items-center justify-center text-zinc-400 hover:text-white transition-all hover:border-indigo-500 hover:shadow-[0_0_15px_rgba(99,102,241,0.2)]">
                <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" data-lucide="satellite" aria-hidden="true" class="lucide lucide-satellite w-5 h-5"><path d="m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5"></path><path d="M16.5 7.5 19 5"></path><path d="m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5"></path><path d="M9 21a6 6 0 0 0-6-6"></path><path d="M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z"></path></svg>
              </button>
            </div>
          </div>
        </div>

      </div>
    </div>
  </section>

  <script>
    // icons
    if (window.lucide) lucide.createIcons();

    // Start / reset animations when section enters viewport
    (function telemetryObserver(){
      const section = document.getElementById('telemetry');
      if (!section) return;

      const io = new IntersectionObserver((entries) => {
        entries.forEach((e) => {
          if (e.isIntersecting) {
            section.classList.add('telemetry-in');
          } else {
            // remove to "reset" so progress anim plays again when you come back
            section.classList.remove('telemetry-in');
          }
        });
      }, { threshold: 0.25, rootMargin: "0px 0px -10% 0px" });

      io.observe(section);
    })();
  </script>
</body>

</html>
All Prompts