VibeCoderzVibeCoderz
Telegram
All Prompts
Futuristic Robotics Dashboard Hero Layout preview
herosectionanimatedresponsivetailwindlandingdashboardvisual

Futuristic Robotics Dashboard Hero Layout

Футуристический шаблон дашборда для робототехники. Адаптивный hero-лейаут с анимированными SVG, статистикой и эффектами фона. Идеально для лендингов.

Prompt

<section class="bg-stone-300 text-stone-900 min-h-screen flex items-center justify-center p-4 md:p-8 lg:p-12 antialiased relative" style="font-family: 'Manrope', sans-serif;">
<link href="https://fonts.googleapis.com/css2?family=Dela+Gothic+One&amp;family=DM+Mono:ital,wght@0,300;0,400;0,500&amp;family=Instrument+Serif:ital@0;1&amp;family=Manrope:wght@200;300;400&amp;display=swap" rel="stylesheet">

<canvas id="fx-canvas" class="fixed inset-0 pointer-events-none z-0 w-full h-full"></canvas>

<main id="main-layout" class="w-full max-w-7xl grid grid-cols-1 lg:grid-cols-[0.9fr_1.3fr_0.8fr] bg-[#e8e6e3] shadow-2xl border border-stone-400 overflow-hidden relative z-10">
        
        <!-- Panel 1: Dark Earth Tone -->
        <section class="bg-[#292524] text-stone-100 flex flex-col border-b lg:border-b-0 lg:border-r border-stone-700 relative overflow-hidden z-20">
            <!-- Top Section -->
            <div class="h-1/3 min-h-[150px] border-b border-stone-700 flex">
                <!-- Rotated Sidebar -->
                <div class="w-12 md:w-16 border-r border-stone-700 flex items-center justify-center shrink-0">
                    <span class="text-xs font-extralight tracking-widest uppercase text-stone-400 whitespace-nowrap" style="writing-mode: vertical-rl; transform: rotate(180deg); font-family: 'DM Mono', monospace;">
                        Aetherial Transport Matrix
                    </span>
                </div>
                <!-- Arrow Grid -->
                <div class="flex-1 p-6 grid grid-cols-4 grid-rows-3 gap-4 place-items-center opacity-80">
                    <!-- Repeating Arrows -->
                    <script>
                        for(let i=0; i<12; i++) {
                            document.write(`
                                <svg viewBox="0 0 24 24" class="w-4 h-4 text-stone-500 animate-[pulse_${(i%3)+2}s_ease-in-out_infinite]" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                                    <path d="M9 18l6-6-6-6" />
                                </svg>
                            `);
                        }
                    </script>
                </div>
            </div>

            <!-- Middle Section (Large Text) -->
            <div class="flex-1 p-8 md:p-12 flex items-center justify-center relative">
                <!-- Corner Markers -->
                <div class="absolute top-4 left-4 w-2 h-2 bg-stone-600"></div>
                <div class="absolute top-4 right-4 w-2 h-2 bg-stone-600"></div>
                <div class="absolute bottom-4 left-4 w-2 h-2 bg-stone-600"></div>
                <div class="absolute bottom-4 right-4 w-2 h-2 bg-stone-600"></div>

                <h2 class="text-5xl md:text-6xl lg:text-7xl font-light text-[#ea580c] tracking-tight leading-[0.9] w-full uppercase" style="font-family: 'Dela Gothic One', cursive;">
                    AERO<span class="text-stone-500">-</span><br>
                    Core
                </h2>
            </div>

            <!-- Bottom Section (Stripes) -->
            <div class="h-20 w-full border-t border-stone-700" style="background: repeating-linear-gradient(-45deg, #292524, #292524 10px, #d6d3d1 10px, #d6d3d1 20px); opacity: 0.9;"></div>
        </section>

        <!-- Panel 2: Main Content -->
        <section class="p-6 md:p-10 border-b lg:border-b-0 lg:border-r border-stone-400 flex flex-col relative z-10">
            <!-- Background Watermark -->
            <div class="absolute bottom-0 right-0 w-full h-full pointer-events-none opacity-40 overflow-hidden flex items-end justify-end">
                <svg viewBox="0 0 200 200" class="w-3/4 h-auto text-orange-200 translate-x-1/4 translate-y-1/4" fill="currentColor">
                    <path d="M100 0L200 200H0L100 0Z" opacity="0.5"></path>
                    <circle cx="100" cy="130" r="40" fill="#e8e6e3"></circle>
                </svg>
            </div>

            <!-- Header -->
            <h1 class="text-6xl md:text-7xl lg:text-8xl font-light tracking-tight leading-none text-stone-800 mb-8 z-10 italic" style="font-family: 'Instrument Serif', serif;">
                Dynamic<br>Construct<sup class="text-xl md:text-2xl not-italic tracking-tight">®</sup>
            </h1>

            <!-- Technical Bar -->
            <div class="border border-stone-400 p-2 flex justify-between items-center text-xs font-extralight uppercase tracking-widest mb-6 bg-[#e8e6e3] z-10" style="font-family: 'DM Mono', monospace;">
                <span>SYS / DYNAMIC PROTOCOL</span>
                <span>HUB REF. 142</span>
            </div>

            <!-- Stats Grid -->
            <div class="grid grid-cols-2 gap-4 text-xs font-extralight text-stone-600 mb-8 z-10" style="font-family: 'DM Mono', monospace;">
                <div class="space-y-1">
                    <p>FLUID ROUTING</p>
                    <p>LOAD BALANCING LOGIC</p>
                    <p>EXECUTION</p>
                </div>
                <div class="space-y-1 text-right">
                    <p>0.2 SEC PER LOOP</p>
                    <p>0.4 KWH / ACTION</p>
                    <p>99.99% UPTIME</p>
                </div>
            </div>

            <!-- Illustration Area -->
            <div class="relative w-full aspect-video border border-stone-400 bg-stone-100/50 mb-8 p-4 z-10 flex items-center justify-center overflow-hidden group">
                <!-- Grid background -->
                <div class="absolute inset-0" style="background-image: linear-gradient(#d6d3d1 1px, transparent 1px), linear-gradient(90deg, #d6d3d1 1px, transparent 1px); background-size: 20px 20px; opacity: 0.4;"></div>
                
                <span class="absolute top-2 left-2 text-xs font-extralight text-stone-500" style="font-family: 'DM Mono', monospace;">Live-State</span>
                <span class="absolute top-2 right-2 text-xs font-extralight text-stone-500" style="font-family: 'DM Mono', monospace;">Auto-Calibrating</span>

                <!-- Robotic Arm SVG -->
                <svg viewBox="0 0 300 200" class="w-full h-full text-stone-800 relative z-10">
                    <g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round">
                        <!-- Base -->
                        <path d="M40 180 L80 180 L70 140 L50 140 Z"></path>
                        <circle cx="60" cy="140" r="6" fill="#e8e6e3"></circle>
                        
                        <!-- Animated Arm Assembly -->
                        <g>
                            <animateTransform attributeName="transform" type="rotate" values="0 60 140; 12 60 140; 12 60 140; -8 60 140; -8 60 140; 0 60 140" keyTimes="0; 0.15; 0.4; 0.55; 0.8; 1" dur="4s" repeatCount="indefinite"></animateTransform>
                            
                            <!-- Lower Arm -->
                            <path d="M60 140 L120 70" class="group-hover:stroke-orange-500 transition-colors duration-500"></path>
                            <circle cx="120" cy="70" r="8" fill="#e8e6e3"></circle>
                            <circle cx="120" cy="70" r="3"></circle>
                            
                            <g>
                                <animateTransform attributeName="transform" type="rotate" values="0 120 70; -20 120 70; -20 120 70; 15 120 70; 15 120 70; 0 120 70" keyTimes="0; 0.15; 0.4; 0.55; 0.8; 1" dur="4s" repeatCount="indefinite"></animateTransform>
                                
                                <!-- Upper Arm -->
                                <path d="M120 70 L190 110" class="group-hover:stroke-orange-500 transition-colors duration-500"></path>
                                <circle cx="190" cy="110" r="6" fill="#e8e6e3"></circle>
                                
                                <g>
                                    <animateTransform attributeName="transform" type="rotate" values="0 190 110; 25 190 110; 25 190 110; 0 190 110" keyTimes="0; 0.2; 0.7; 1" dur="2s" repeatCount="indefinite"></animateTransform>
                                    <!-- Gripper Mount -->
                                    <rect x="185" y="116" width="10" height="15"></rect>
                                    <!-- Gripper Claws -->
                                    <path d="M185 131 L175 150 L185 155"></path>
                                    <path d="M195 131 L205 150 L195 155"></path>
                                </g>
                            </g>
                        </g>

                        <!-- Target Box -->
                        <rect x="220" y="130" width="50" height="50" stroke-dasharray="4 4" class="text-orange-500">
                            <animate attributeName="stroke-dashoffset" from="8" to="0" dur="0.8s" repeatCount="indefinite"></animate>
                        </rect>
                        
                        <!-- Movement Lines -->
                        <path d="M190 110 Q230 70 245 130" stroke-dasharray="2 4" stroke-width="1" opacity="0.5">
                            <animate attributeName="stroke-dashoffset" from="6" to="0" dur="0.4s" repeatCount="indefinite"></animate>
                        </path>
                    </g>
                </svg>

                <div class="absolute bottom-2 left-2 text-xs text-stone-500 uppercase tracking-widest" style="font-family: 'DM Mono', monospace;">GEN5 - COMMERCIAL</div>
                <div class="absolute bottom-2 right-2 text-xs text-stone-500 uppercase tracking-widest" style="font-family: 'DM Mono', monospace;">0.05MM ACCURACY</div>
            </div>

            <!-- Footer Section -->
            <div class="mt-auto pt-6 border-t border-stone-400 grid grid-cols-[auto_1fr] gap-6 items-end z-10">
                <!-- Badge -->
                <div class="w-16 h-16 rounded-full border border-orange-500 flex items-center justify-center relative animate-[spin_20s_linear_infinite]">
                    <svg viewBox="0 0 100 100" class="absolute inset-0 w-full h-full text-orange-500" fill="none" stroke="currentColor" stroke-width="0.5">
                        <circle cx="50" cy="50" r="45" stroke-dasharray="4 4">
                            <animate attributeName="stroke-dashoffset" from="8" to="0" dur="1s" repeatCount="indefinite"></animate>
                        </circle>
                    </svg>
                    <span class="text-orange-600 font-light text-xl tracking-tight" style="font-family: 'Instrument Serif', serif;">A</span>
                </div>
                
                <!-- Orange Text Block -->
                <div class="text-orange-600 space-y-2">
                    <h3 class="text-sm font-light tracking-tight flex items-center gap-2">
                        <iconify-icon icon="solar:planet-3-linear" class="text-lg"></iconify-icon>
                        Orbital Relay Network
                    </h3>
                    <p class="text-xs leading-relaxed font-extralight">
                        Aero Core / X-9 / LINK<br>
                        <span class="text-stone-500 mt-1 block">Utilizing next-gen dynamic articulation for heavy-duty assembly and global logistics. Built for maximum resilience.</span>
                    </p>
                </div>
            </div>
        </section>

        <!-- Panel 3: Right -->
        <section class="p-6 md:p-10 flex flex-col justify-between relative bg-[#e8e6e3]">
            <!-- Top Illustration -->
            <div class="flex-1 relative min-h-[200px]">
                <svg viewBox="0 0 200 250" class="w-full h-full text-stone-800 absolute top-0 right-0">
                    <g fill="none" stroke="currentColor" stroke-width="1" stroke-linejoin="round">
                        <!-- Base Arm -->
                        <path d="M200 20 L120 70"></path>
                        <circle cx="120" cy="70" r="12" fill="#e8e6e3"></circle>
                        <circle cx="120" cy="70" r="4"></circle>
                        
                        <g>
                            <animateTransform attributeName="transform" type="rotate" values="0 120 70; 18 120 70; 18 120 70; -12 120 70; -12 120 70; 0 120 70" keyTimes="0; 0.1; 0.4; 0.5; 0.8; 1" dur="3.5s" repeatCount="indefinite"></animateTransform>
                            <!-- Lower Arm -->
                            <path d="M120 70 L100 120"></path>
                            <!-- End effector -->
                            <path d="M90 120 L110 120 L100 140 Z"></path>
                        </g>

                        <!-- Connecting line to box -->
                        <path d="M100 140 L100 180" stroke-dasharray="2 2">
                            <animate attributeName="stroke-dashoffset" from="4" to="0" dur="0.3s" repeatCount="indefinite"></animate>
                        </path>
                        <!-- Box -->
                        <rect x="60" y="180" width="80" height="60"></rect>
                        <path d="M60 180 L40 220" stroke-dasharray="2 4" opacity="0.5">
                            <animate attributeName="stroke-dashoffset" from="6" to="0" dur="0.5s" repeatCount="indefinite"></animate>
                        </path>
                    </g>
                </svg>
            </div>

            <!-- Bottom Illustration -->
            <div class="flex-1 relative min-h-[200px] mt-8">
                <svg viewBox="0 0 200 200" class="w-full h-full text-stone-800 absolute bottom-0 right-0">
                    <g fill="none" stroke="currentColor" stroke-width="1" stroke-linejoin="round">
                        <!-- Base Arm -->
                        <path d="M200 180 L120 140"></path>
                        <circle cx="120" cy="140" r="15" fill="#e8e6e3"></circle>
                        <circle cx="120" cy="140" r="5"></circle>
                        
                        <g>
                            <animateTransform attributeName="transform" type="rotate" values="0 120 140; -28 120 140; -28 120 140; 14 120 140; 14 120 140; 0 120 140" keyTimes="0; 0.15; 0.5; 0.65; 0.9; 1" dur="4.2s" repeatCount="indefinite"></animateTransform>
                            <!-- Lower Arm -->
                            <path d="M120 140 L80 160"></path>
                            <!-- Base mount -->
                            <path d="M70 155 L70 165 L90 165 L90 155"></path>
                            <circle cx="80" cy="160" r="2" fill="currentColor"></circle>
                        </g>

                        <!-- Rotation Indicator -->
                        <g class="animate-[spin_6s_linear_infinite]" style="transform-origin: 120px 140px;">
                            <path d="M100 120 A 28 28 0 0 0 95 160" stroke-dasharray="3 3">
                                <animate attributeName="stroke-dashoffset" from="6" to="0" dur="0.6s" repeatCount="indefinite"></animate>
                            </path>
                            <path d="M95 160 L90 155 M95 160 L100 155"></path>
                        </g>
                    </g>
                </svg>
            </div>
        </section>
    </main>

<script src="https://cdn.tailwindcss.com"></script>
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
<script>
                        for(let i=0; i<12; i++) {
                            document.write(`
                                <svg viewBox="0 0 24 24" class="w-4 h-4 text-stone-500 animate-[pulse_${(i%3)+2}s_ease-in-out_infinite]" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                                    <path d="M9 18l6-6-6-6" />
                                </svg>
                            `);
                        }
                    </script>
<script>
        const cvs = document.getElementById('fx-canvas');
        const ctx = cvs.getContext('2d');
        const main = document.getElementById('main-layout');
        let w, h, rect;
        
        const resize = () => {
            w = cvs.width = window.innerWidth;
            h = cvs.height = window.innerHeight;
            rect = main.getBoundingClientRect();
        };
        window.addEventListener('resize', resize);
        
        const debris = Array.from({length: 45}, () => ({x: Math.random()*window.innerWidth, y: Math.random()*window.innerHeight, vx: (Math.random()-0.5)*0.6, vy: (Math.random()-0.5)*0.6}));
        const rain = Array.from({length: 120}, () => ({x: Math.random()*window.innerWidth, y: Math.random()*window.innerHeight, vy: 18+Math.random()*12, l: 15+Math.random()*25}));
        const splashes = [];

        function render() {
            if(!w) resize();
            ctx.clearRect(0, 0, w, h);
            rect = main.getBoundingClientRect();
            
            ctx.fillStyle = 'rgba(28, 25, 23, 0.4)';
            ctx.lineWidth = 0.5;
            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, 1.5, 0, 6.28); ctx.fill();
                for(let j=i+1; j<debris.length; j++) {
                    let p2 = debris[j];
                    let d = Math.hypot(p.x-p2.x, p.y-p2.y);
                    if(d<130) {
                        ctx.strokeStyle = `rgba(28, 25, 23, ${0.2 - d/130*0.2})`;
                        ctx.beginPath(); ctx.moveTo(p.x, p.y); ctx.lineTo(p2.x, p2.y); ctx.stroke();
                    }
                }
            }

            ctx.strokeStyle = 'rgba(28, 25, 23, 0.35)';
            ctx.lineWidth = 1;
            for(let r of rain) {
                r.y += r.vy;
                if(r.y>h) { r.y = -r.l; r.x = Math.random()*w; }
                
                if(r.y>rect.top && r.y-r.vy<=rect.top && r.x>rect.left && r.x<rect.right) {
                    for(let k=0; k<4; k++) splashes.push({x: r.x, y: rect.top, vx: (Math.random()-0.5)*3.5, vy: -Math.random()*3-1.5, life: 1});
                    r.y = -r.l; r.x = Math.random()*w;
                } else {
                    ctx.beginPath(); ctx.moveTo(r.x, r.y); ctx.lineTo(r.x, r.y-r.l); ctx.stroke();
                }
            }

            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; s.life -= 0.04;
                if(s.life<=0) splashes.splice(i, 1);
                else {
                    ctx.fillStyle = `rgba(28, 25, 23, ${s.life})`;
                    ctx.beginPath(); ctx.arc(s.x, s.y, 1.2, 0, 6.28); ctx.fill();
                }
            }
            requestAnimationFrame(render);
        }
        render();
    </script>
</section>
All Prompts