VibeCoderzVibeCoderz
Telegram
All Prompts
Futuristic Network Status HUD Section preview
featuresectioninteractiveanimateddashboardhudtailwind

Futuristic Network Status HUD Section

Футуристичный UI-раздел Network Status HUD. Панель с анимированным радаром, модулями статуса (двигатель, маршрутизация, безопасность). Идеально для дашбордов мониторинга.

Prompt

<section
  class="bg-[#c9d1c1] min-h-screen flex items-center justify-center p-4 md:p-12 overflow-hidden selection:bg-[#8eb364] selection:text-[#161f14]">
  <link
    href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&amp;family=DM+Mono:ital,wght@0,300;0,400;1,300&amp;family=Space+Grotesk:wght@300;400&amp;display=swap"
    rel="stylesheet">

  <svg class="hidden absolute w-0 h-0">
    <defs>
      <filter id="goo">
        <feGaussianBlur in="SourceGraphic" stdDeviation="4" result="blur"></feGaussianBlur>
        <feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7" result="goo">
        </feColorMatrix>
        <feBlend in="SourceGraphic" in2="goo"></feBlend>
      </filter>
    </defs>
  </svg>

  <canvas id="env-canvas" class="fixed inset-0 pointer-events-none z-0" style="filter: url(#goo);"></canvas>

  <div id="main-card"
    class="relative z-10 w-full max-w-[1400px] min-h-[85vh] md:min-h-[700px] md:aspect-[21/9] rounded-sm shadow-2xl overflow-hidden flex flex-col justify-between group cursor-crosshair"
    style="background-color: #161f14; 
                background-image: repeating-linear-gradient(90deg, #161f14 0px, #161f14 16px, #121a10 16px, #121a10 32px);
                box-shadow: 0 30px 60px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,255,0.05), inset 0 -4px 8px rgba(0,0,0,0.8);
                --mouse-x: 50%;
                --mouse-y: 50%;">

    <!-- Blueprint Grid Overlay -->
    <div class="absolute inset-0 pointer-events-none z-0 opacity-50"
      style="background-size: 40px 40px; background-image: linear-gradient(to right, rgba(142,179,100,0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(142,179,100,0.05) 1px, transparent 1px);">
    </div>

    <!-- Vertical Container-Size Lines -->
    <div
      class="absolute left-[33%] top-0 bottom-0 w-px bg-[#8eb364]/20 z-10 hidden md:flex flex-col justify-end pb-8 items-center">
      <span class="text-[#8eb364]/30 text-xs font-['DM_Mono'] uppercase tracking-widest" style="writing-mode: vertical-rl;">Zone-A</span>
    </div>
    <div
      class="absolute left-[66%] top-0 bottom-0 w-px bg-[#8eb364]/20 z-10 hidden md:flex flex-col justify-start pt-8 items-center">
      <span class="text-[#8eb364]/30 text-xs font-['DM_Mono'] uppercase tracking-widest" style="writing-mode: vertical-rl;">Zone-B</span>
    </div>

    <!-- Horizontal Lines -->
    <div class="absolute top-[25%] left-0 right-0 h-px bg-[#8eb364]/10 z-10 hidden md:block"></div>
    <div class="absolute bottom-[35%] left-0 right-0 h-px bg-[#8eb364]/10 z-10 hidden md:block"></div>

    <!-- Subtle Lighting Gradient -->
    <div class="absolute inset-0 pointer-events-none z-0"
      style="background: radial-gradient(circle at 50% 50%, transparent 0%, rgba(0,0,0,0.65) 100%);"></div>

    <!-- Flashlight Hover Effect -->
    <div
      class="absolute inset-0 pointer-events-none z-20 transition-opacity duration-500 opacity-0 group-hover:opacity-100 border-2 border-[#8eb364]"
      style="background-image: repeating-linear-gradient(45deg, rgba(142,179,100,0.3) 0px, rgba(142,179,100,0.3) 1px, transparent 1px, transparent 24px), 
                                      repeating-linear-gradient(-45deg, rgba(142,179,100,0.3) 0px, rgba(142,179,100,0.3) 1px, transparent 1px, transparent 24px);
                    mask-image: radial-gradient(400px circle at var(--mouse-x) var(--mouse-y), black 0%, transparent 100%);
                    -webkit-mask-image: radial-gradient(400px circle at var(--mouse-x) var(--mouse-y), black 0%, transparent 100%);">
    </div>

    <!-- Architectural Corner Castings -->
    <div
      class="absolute top-0 left-0 w-8 h-8 border-b border-r border-[#8eb364]/40 z-30 flex items-start justify-start p-1.5">
      <div class="w-1 h-1 bg-[#8eb364]/60"></div>
    </div>
    <div
      class="absolute top-0 right-0 w-8 h-8 border-b border-l border-[#8eb364]/40 z-30 flex items-start justify-end p-1.5">
      <div class="w-1 h-1 bg-[#8eb364]/60"></div>
    </div>
    <div
      class="absolute bottom-0 left-0 w-8 h-8 border-t border-r border-[#8eb364]/40 z-30 flex items-end justify-start p-1.5">
      <div class="w-1 h-1 bg-[#8eb364]/60"></div>
    </div>
    <div
      class="absolute bottom-0 right-0 w-8 h-8 border-t border-l border-[#8eb364]/40 z-30 flex items-end justify-end p-1.5">
      <div class="w-1 h-1 bg-[#8eb364]/60"></div>
    </div>

    <!-- Floating Crosses -->
    <div class="absolute inset-0 pointer-events-none z-10">
      <span class="absolute top-[15%] left-[15%] text-[#8eb364] text-xs opacity-80 animate-pulse" style="animation-duration: 3s;">+</span>
      <span class="absolute top-[45%] left-[45%] text-[#8eb364] text-xs opacity-50 animate-pulse" style="animation-duration: 5s;">+</span>
      <span class="absolute bottom-[25%] left-[10%] text-[#8eb364] text-xs opacity-90 animate-pulse" style="animation-duration: 4s;">+</span>
      <span class="absolute top-[20%] right-[20%] text-[#8eb364] text-xs opacity-70 animate-pulse" style="animation-duration: 3.5s;">+</span>
      <span class="absolute bottom-[15%] right-[35%] text-[#8eb364] text-xs opacity-60 animate-pulse" style="animation-duration: 6s;">+</span>
    </div>

    <!-- Central Concentric Radar Graphic -->
    <div
      class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-10 pointer-events-none opacity-20 flex items-center justify-center">
      <div
        class="w-[300px] h-[300px] md:w-[600px] md:h-[600px] rounded-full border border-[#8eb364]/30 border-dashed animate-[spin_60s_linear_infinite]">
      </div>
      <div
        class="absolute w-[220px] h-[220px] md:w-[440px] md:h-[440px] rounded-full border border-[#8eb364]/40 animate-[spin_40s_linear_infinite_reverse]">
        <div class="absolute top-0 left-1/2 w-1.5 h-1.5 bg-[#8eb364] -translate-x-1/2 -translate-y-1/2"></div>
        <div class="absolute bottom-0 left-1/2 w-1.5 h-1.5 bg-[#8eb364] -translate-x-1/2 translate-y-1/2"></div>
      </div>
      <div
        class="absolute w-[140px] h-[140px] md:w-[280px] md:h-[280px] rounded-full border border-[#8eb364]/50 border-dotted animate-[spin_20s_linear_infinite]">
      </div>
      <div
        class="absolute w-[60px] h-[60px] md:w-[120px] md:h-[120px] rounded-full border border-[#8eb364]/60 flex items-center justify-center">
        <div class="w-3 h-3 bg-[#8eb364]/80 rotate-45 animate-pulse"></div>
      </div>
    </div>

    <!-- Top Section: Header & Radar -->
    <div class="relative z-30 flex flex-col md:flex-row justify-between items-start p-6 md:p-12 w-full">
      <div class="flex flex-col gap-1 pointer-events-none">
        <div class="font-['DM_Mono',monospace] text-xs text-[#8eb364]/60 mb-2 font-light tracking-widest">04 //
          INFRASTRUCTURE</div>
        <h1
          class="font-['Cormorant_Garamond',serif] text-5xl md:text-7xl font-light tracking-tight text-[#c3d1b6] leading-none italic">
          Network Nexus
        </h1>
        <h2
          class="font-['Space_Grotesk',sans-serif] text-xl md:text-2xl font-light tracking-tight text-[#8eb364] uppercase mt-1">
          Operational / Live
        </h2>
      </div>

      <div class="hidden md:flex items-start gap-6 pointer-events-none mt-2">
        <div class="font-['DM_Mono',monospace] text-xs tracking-widest text-[#8eb364]/60 uppercase font-light mt-1">
          MATRIX // SYNC
        </div>
        <div
          class="grid grid-cols-3 gap-1.5 text-center text-[#c3d1b6] font-light text-xs tracking-widest font-['Space_Grotesk',sans-serif]">
          <div class="col-start-2 text-[#8eb364]">N</div>
          <div class="col-start-1 row-start-2">W</div>
          <div class="col-start-2 row-start-2 flex items-center justify-center text-[#8eb364]">
            <iconify-icon icon="solar:target-linear" class="text-sm" style="stroke-width: 1.5;"></iconify-icon>
          </div>
          <div class="col-start-3 row-start-2">E</div>
          <div class="col-start-2 row-start-3 text-[#8eb364]">S</div>
        </div>
      </div>
    </div>

    <!-- Bottom Section: HUD Feature Modules & Logs -->
    <div
      class="relative z-30 flex flex-col md:flex-row justify-between items-end p-6 md:p-12 w-full mt-auto gap-8 md:gap-12">

      <div class="grid grid-cols-1 md:grid-cols-3 gap-8 md:gap-12 w-full md:w-3/4">

        <!-- Module 1 -->
        <div class="border-t border-[#8eb364]/30 pt-4 relative group/feat">
          <div class="absolute -top-1 left-0 w-2 h-2 bg-[#8eb364]/50"></div>
          <div class="flex items-center gap-3 mb-4 text-[#c3d1b6]">
            <iconify-icon icon="solar:cpu-linear" class="text-xl" style="stroke-width: 1.5;"></iconify-icon>
            <h3 class="font-['Space_Grotesk',sans-serif] text-lg font-light tracking-tight uppercase">Photon Engine</h3>
          </div>
          <div class="font-['DM_Mono',monospace] text-xs text-[#8eb364]/80 font-light tracking-widest space-y-2">
            <div class="flex justify-between"><span>STATUS</span><span class="text-[#c3d1b6]">STABLE</span></div>
            <div class="flex justify-between"><span>LOAD</span><span class="text-[#c3d1b6]">78.4%</span></div>
            <div class="w-full h-[3px] bg-[#8eb364]/20 mt-4 relative overflow-hidden">
              <div class="absolute top-0 left-0 h-full w-[78%] bg-[#8eb364] opacity-80"></div>
            </div>
          </div>
        </div>

        <!-- Module 2 -->
        <div class="border-t border-[#8eb364]/30 pt-4 relative group/feat">
          <div class="absolute -top-1 left-0 w-2 h-2 bg-[#8eb364]/50"></div>
          <div class="flex items-center gap-3 mb-4 text-[#c3d1b6]">
            <iconify-icon icon="solar:network-linear" class="text-xl" style="stroke-width: 1.5;"></iconify-icon>
            <h3 class="font-['Space_Grotesk',sans-serif] text-lg font-light tracking-tight uppercase">Synaptic Path</h3>
          </div>
          <div class="font-['DM_Mono',monospace] text-xs text-[#8eb364]/80 font-light tracking-widest space-y-2">
            <div class="flex justify-between"><span>ROUTE</span><span class="text-[#c3d1b6]">CLEARED</span></div>
            <div class="flex justify-between"><span>DELAY</span><span class="text-[#c3d1b6]">02 MS</span></div>
            <div class="flex gap-1.5 mt-4 h-[3px] items-center">
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-100 animate-pulse"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-40"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-80 animate-pulse" style="animation-delay: 0.5s;"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-30"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-90 animate-pulse" style="animation-delay: 0.2s;"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-50"></div>
              <div class="w-1.5 h-1.5 bg-[#8eb364] opacity-100 animate-pulse" style="animation-delay: 0.7s;"></div>
            </div>
          </div>
        </div>

        <!-- Module 3 -->
        <div class="border-t border-[#8eb364]/30 pt-4 relative group/feat">
          <div class="absolute -top-1 left-0 w-2 h-2 bg-[#8eb364]/50"></div>
          <div class="flex items-center gap-3 mb-4 text-[#c3d1b6]">
            <iconify-icon icon="solar:shield-check-linear" class="text-xl" style="stroke-width: 1.5;"></iconify-icon>
            <h3 class="font-['Space_Grotesk',sans-serif] text-lg font-light tracking-tight uppercase">Security Wall</h3>
          </div>
          <div class="font-['DM_Mono',monospace] text-xs text-[#8eb364]/80 font-light tracking-widest space-y-2">
            <div class="flex justify-between"><span>HASH</span><span class="text-[#c3d1b6]">SHA-256</span></div>
            <div class="flex justify-between"><span>SHIELD</span><span class="text-[#c3d1b6]">INTACT</span></div>
            <div class="flex items-end gap-1 h-3 mt-3">
              <div class="w-full bg-[#8eb364] opacity-60 h-[40%]"></div>
              <div class="w-full bg-[#8eb364] opacity-90 h-[100%] animate-pulse"></div>
              <div class="w-full bg-[#8eb364] opacity-40 h-[60%]"></div>
              <div class="w-full bg-[#8eb364] opacity-70 h-[80%] animate-pulse" style="animation-delay: 0.3s;"></div>
              <div class="w-full bg-[#8eb364] opacity-50 h-[30%]"></div>
              <div class="w-full bg-[#8eb364] opacity-100 h-[90%] animate-pulse" style="animation-delay: 0.6s;"></div>
            </div>
          </div>
        </div>

      </div>

      <!-- Bottom Right Logs -->
      <div class="pointer-events-none text-right flex flex-col items-end gap-3 hidden md:flex">
        <div
          class="font-['Space_Grotesk',sans-serif] text-5xl font-light tracking-tight text-[#c3d1b6] leading-none flex items-start gap-4">
          <span class="font-['DM_Mono',monospace] text-xs text-[#8eb364]/60 font-light tracking-widest mt-1">NET // CAP</span>
          <div>98<span class="text-[#8eb364]">.</span>7%</div>
        </div>
        <div
          class="font-['DM_Mono',monospace] text-xs text-[#c3d1b6] opacity-75 uppercase tracking-widest space-y-1 font-light mt-2">
          <p>CONNECTION: SECURE</p>
          <p>FREQ: 2048 MHZ</p>
          <p>SYSTEM: RUNNING</p>
        </div>
      </div>

    </div>
  </div>

  <script src="https://cdn.tailwindcss.com"></script>
  <script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
  <script>
    const card = document.getElementById('main-card');
        const cvs = document.getElementById('env-canvas');
        const ctx = cvs.getContext('2d');
        let w, h, rect;

        function resize() {
            w = cvs.width = window.innerWidth;
            h = cvs.height = window.innerHeight;
            rect = card.getBoundingClientRect();
        }
        window.addEventListener('resize', resize);
        
        card.addEventListener('mousemove', (e) => {
            const x = e.clientX - rect.left;
            const y = e.clientY - rect.top;
            card.style.setProperty('--mouse-x', `${x}px`);
            card.style.setProperty('--mouse-y', `${y}px`);
        });

        const debris = Array.from({length: 60}, () => ({
            x: Math.random() * window.innerWidth,
            y: Math.random() * window.innerHeight,
            vx: (Math.random() - 0.5) * 0.4,
            vy: (Math.random() - 0.5) * 0.4
        }));

        let rain = [];
        let splashes = [];

        function animateEnvironment() {
            ctx.clearRect(0, 0, w, h);
            ctx.lineCap = 'round';

            // Background Debris & Connectivity Lines (Longer reach)
            ctx.fillStyle = 'rgba(22, 31, 20, 0.8)';
            ctx.strokeStyle = 'rgba(22, 31, 20, 0.4)';
            ctx.lineWidth = 1;
            for (let i = 0; i < debris.length; i++) {
                let p = debris[i];
                p.x += p.vx; p.y += p.vy;
                if(p.x < 0 || p.x > w) p.vx *= -1;
                if(p.y < 0 || p.y > h) p.vy *= -1;
                
                ctx.beginPath();
                ctx.arc(p.x, p.y, 2, 0, Math.PI*2);
                ctx.fill();

                for (let j = i + 1; j < debris.length; j++) {
                    let p2 = debris[j];
                    let dx = p.x - p2.x, dy = p.y - p2.y;
                    if (dx*dx + dy*dy < 25000) { // Increased line length
                        ctx.beginPath();
                        ctx.moveTo(p.x, p.y);
                        ctx.lineTo(p2.x, p2.y);
                        ctx.stroke();
                    }
                }
            }

            // More Rain Generation (Higher volume, longer lines)
            for(let k = 0; k < 4; k++) {
                if (Math.random() < 0.6) {
                    rain.push({ x: Math.random() * w, y: -50, vy: 18 + Math.random() * 8, l: 40 + Math.random() * 80 });
                }
            }

            // Rain Physics & Layout Collision
            ctx.strokeStyle = '#8eb364'; // Solid color for gooey filter
            ctx.lineWidth = 3; // Thicker lines for liquid feel
            for (let i = rain.length - 1; i >= 0; i--) {
                let r = rain[i];
                r.y += r.vy;
                ctx.beginPath();
                ctx.moveTo(r.x, r.y);
                ctx.lineTo(r.x, r.y - r.l);
                ctx.stroke();

                if (r.y >= rect.top && r.y - r.vy <= rect.top && r.x > rect.left && r.x < rect.right) {
                    for(let k = 0; k < 6; k++) {
                        splashes.push({ 
                            x: r.x, y: rect.top, 
                            vx: (Math.random() - 0.5) * 5, 
                            vy: -Math.random() * 3 - 1, 
                            life: 1, 
                            size: 3 + Math.random() * 5 
                        });
                    }
                    rain.splice(i, 1);
                } else if (r.y > h) {
                    rain.splice(i, 1);
                }
            }

            // Gooey Splash Physics (Pooling and sliding)
            ctx.fillStyle = '#8eb364'; // Solid color for gooey filter
            for (let i = splashes.length - 1; i >= 0; i--) {
                let s = splashes[i];
                s.x += s.vx;
                s.y += s.vy;
                s.vy += 0.25; // Gravity
                
                // Pool at the top edge of the card
                if (s.y > rect.top) {
                    s.y = rect.top;
                    s.vy = 0;
                    s.vx *= 0.85; // Friction
                }
                
                s.life -= 0.02; // Slow shrink
                if (s.life <= 0) {
                    splashes.splice(i, 1);
                    continue;
                }
                
                ctx.beginPath();
                ctx.arc(s.x, s.y, s.size * s.life, 0, Math.PI*2);
                ctx.fill();
            }

            requestAnimationFrame(animateEnvironment);
        }
        
        resize();
        animateEnvironment();
  </script>
</section>
All Prompts