All Prompts
All Prompts

herotailwindresponsiveinteractivenavigationlanding
Cinematic Hero Layout with Floating Menu
Кинематографичный Hero-раздел с плавающим меню. Адаптивный макет для лендингов студий и портфолио. Tailwind CSS, интерактивные анимации.
Prompt
<div class="fixed -z-10 overflow-hidden pointer-events-none w-full h-screen top-0 left-0">
<div class="absolute top-[-20%] left-[-10%] w-[70%] h-[70%] bg-blue-500/10 rounded-full blur-[120px] mix-blend-screen animate-pulse">
</div>
<div class="absolute bottom-[-10%] right-[-10%] w-[60%] h-[60%] bg-cyan-500/10 rounded-full blur-[100px] mix-blend-screen">
</div>
<div class="absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMDI1Ii8+Cjwvc3ZnPg==')] opacity-20">
</div>
</div>
<!-- Header Section -->
<header class="flex flex-col w-full z-40 mb-6 md:mb-8 relative gap-6">
<div class="flex w-full gap-x-6 gap-y-6 items-start justify-between flex-wrap lg:flex-nowrap">
<div class="flex items-center gap-3 flex-shrink-0 w-full lg:w-auto">
<div class="flex bg-gradient-to-br w-8 h-8 rounded-full items-center justify-center border from-white/10 via-white/0 to-white/10 border-white/10">
<span class="w-2 h-2 rounded-full shadow-[0_0_10px_rgba(34,211,238,0.5)] bg-cyan-400"></span>
</div>
<a href="#" class="md:text-xl block text-lg font-medium tracking-tight font-grotesk text-slate-100">
blu.orbit
</a>
</div>
<div class="flex-1 lg:pr-10 z-10 transition-opacity duration-500 relative w-full lg:w-auto order-1 lg:order-none" id="headline-container">
<h1 class="md:text-5xl lg:text-[4rem] leading-[1.05] text-3xl font-medium tracking-tight mix-blend-screen lg:mx-20 text-slate-50">
We design digital experiences shaped by
<span class="bg-clip-text text-transparent bg-gradient-to-r from-amber-200 via-yellow-100 to-orange-200">
light
</span>
,
<span class="bg-clip-text text-transparent bg-gradient-to-r from-violet-300 via-fuchsia-200 to-pink-400">
motion
</span>
, and
<span class="bg-clip-text text-transparent bg-gradient-to-r from-emerald-300 via-teal-200 to-green-300">
meaning
</span>
.
</h1>
<p class="leading-relaxed md:text-base text-sm font-light max-w-lg mt-4 lg:ml-20 text-slate-400">
Crafting cinematic interfaces and minimal editorial experiences that
explore the space between stillness and motion.
</p>
</div>
<div class="hidden lg:flex items-start justify-start gap-3 pt-1 flex-shrink-0 z-50">
<button class="w-12 h-12 rounded-full border transition-all duration-300 items-center justify-center group backdrop-blur-md flex bg-slate-900/60 border-slate-700/50 hover:bg-slate-800/80 hover:border-slate-600" aria-label="Minimize">
<div class="w-3.5 h-0.5 group-hover:bg-slate-200 transition-colors bg-slate-400"></div>
</button>
<button class="h-12 pl-6 pr-4 rounded-full border items-center gap-3 hover:border-cyan-500/30 hover:shadow-[0_0_20px_-5px_rgba(34,211,238,0.25)] hover:scale-[1.02] transition-all duration-300 backdrop-blur-md group relative overflow-hidden flex bg-slate-900/60 border-slate-700/50 text-slate-100 hover:bg-slate-800">
<span class="text-[11px] uppercase font-semibold tracking-widest z-10 relative">
Let's Talk
</span>
<div class="relative flex h-2 w-2 mx-1">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full opacity-0 group-hover:opacity-75 transition-opacity duration-300 bg-cyan-400"></span>
<span class="relative inline-flex rounded-full h-2 w-2 group-hover:bg-cyan-400 group-hover:shadow-[0_0_10px_rgba(34,211,238,0.8)] transition-all duration-300 bg-slate-400"></span>
</div>
<div class="absolute inset-0 bg-gradient-to-tr from-cyan-500/0 via-cyan-500/5 to-cyan-500/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500 pointer-events-none"></div>
</button>
<button class="flex hover:scale-[1.02] transition-all duration-300 group z-50 w-[140px] h-12 rounded-full pr-6 pl-6 shadow-lg gap-x-3 gap-y-3 items-center justify-between shadow-white/5 text-slate-900 bg-white" id="menu-toggle">
<div class="btn-text-slider">
<span class="text-[11px] uppercase font-bold tracking-widest">
DISCOVER
</span>
<span class="text-[11px] uppercase font-bold tracking-widest">
CLOSE
</span>
</div>
<div id="menu-icon-wrapper" class="flex gap-1 transition-transform duration-500 group-[.menu-open]:rotate-90">
<span class="w-1 h-1 rounded-full bg-slate-900"></span>
<span class="w-1 h-1 rounded-full bg-slate-900"></span>
</div>
</button>
</div>
<div class="flex lg:hidden items-center justify-start gap-3 z-50 w-full order-2">
<button class="w-12 h-12 rounded-full border transition-all duration-300 items-center justify-center group backdrop-blur-md flex bg-slate-900/60 border-slate-700/50 hover:bg-slate-800/80 hover:border-slate-600" aria-label="Minimize">
<div class="w-3.5 h-0.5 group-hover:bg-slate-200 transition-colors bg-slate-400"></div>
</button>
<button class="h-12 pl-6 pr-4 rounded-full border items-center gap-3 hover:border-cyan-500/30 hover:shadow-[0_0_20px_-5px_rgba(34,211,238,0.25)] hover:scale-[1.02] transition-all duration-300 backdrop-blur-md group relative overflow-hidden flex bg-slate-900/60 border-slate-700/50 text-slate-100 hover:bg-slate-800">
<span class="text-[11px] uppercase font-semibold tracking-widest z-10 relative">
Let's Talk
</span>
<div class="relative flex h-2 w-2 mx-1">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full opacity-0 group-hover:opacity-75 transition-opacity duration-300 bg-cyan-400"></span>
<span class="relative inline-flex rounded-full h-2 w-2 group-hover:bg-cyan-400 group-hover:shadow-[0_0_10px_rgba(34,211,238,0.8)] transition-all duration-300 bg-slate-400"></span>
</div>
<div class="absolute inset-0 bg-gradient-to-tr from-cyan-500/0 via-cyan-500/5 to-cyan-500/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500 pointer-events-none"></div>
</button>
<button class="flex hover:scale-[1.02] transition-all duration-300 group z-50 w-[140px] h-12 rounded-full pr-6 pl-6 shadow-lg gap-x-3 gap-y-3 items-center justify-between shadow-white/5 text-slate-900 bg-white" id="menu-toggle-mobile">
<div class="btn-text-slider">
<span class="text-[11px] uppercase font-bold tracking-widest">
DISCOVER
</span>
<span class="text-[11px] uppercase font-bold tracking-widest">
CLOSE
</span>
</div>
<div id="menu-icon-wrapper-mobile" class="flex gap-1 transition-transform duration-500 group-[.menu-open]:rotate-90">
<span class="w-1 h-1 rounded-full bg-slate-900"></span>
<span class="w-1 h-1 rounded-full bg-slate-900"></span>
</div>
</button>
</div>
</div>
</header>
<!-- Floating Menu Container -->
<div id="menu-overlay" class="fixed inset-0 z-[100] flex justify-end px-4 md:px-6 lg:px-12 pt-[10rem] md:pt-[9rem] pointer-events-none">
<!-- Backdrop Blur (Optional, for focus) -->
<div id="menu-backdrop" class="absolute inset-0 backdrop-blur-sm transition-opacity duration-500 opacity-0 bg-slate-950/60"></div>
<!-- Menu Content Stack -->
<div class="relative z-40 flex flex-col gap-4 w-full max-w-[340px] pointer-events-none" id="menu-stack">
<!-- Navigation Card -->
<nav class="menu-card w-full bg-gradient-to-br rounded-3xl p-6 shadow-2xl backdrop-blur-xl from-white/10 to-white/0 shadow-black/20" style="position: relative; --border-gradient: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); --border-radius-before: 24px">
<ul class="flex flex-col gap-4 font-medium text-xl tracking-tight text-slate-50">
<li class="group flex items-center justify-between cursor-pointer">
<span class="group-hover:opacity-80 transition-opacity text-cyan-100">
WELCOME
</span>
<span class="w-1.5 h-1.5 rounded-full shadow-[0_0_10px_rgba(34,211,238,0.5)] bg-cyan-400"></span>
</li>
<li class="group flex items-center justify-between cursor-pointer">
<div class="h-7 overflow-hidden">
<div class="menu-hover-link">
<div class="h-7 overflow-hidden pr-4">
<div class="flex flex-col transition-transform duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] group-hover:-translate-y-7 group-hover:translate-x-2">
<span class="h-7 flex items-center text-slate-200">
The Studio
</span>
<span class="h-7 flex items-center font-medium text-cyan-400">
The Studio
</span>
</div>
</div>
</div>
</div>
<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" class="lucide lucide-arrow-right opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] text-cyan-400">
<path d="M5 12h14" class=""></path>
<path d="m12 5 7 7-7 7" class=""></path>
</svg>
</li>
<li class="group flex items-center justify-between cursor-pointer">
<div class="h-7 overflow-hidden">
<div class="menu-hover-link">
<div class="h-7 overflow-hidden pr-4">
<div class="flex flex-col transition-transform duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] group-hover:-translate-y-7 group-hover:translate-x-2">
<span class="h-7 flex items-center text-slate-200">
The Vision
</span>
<span class="h-7 flex items-center font-medium text-cyan-400">
The Vision
</span>
</div>
</div>
</div>
</div>
<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" class="lucide lucide-arrow-right opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] text-cyan-400">
<path d="M5 12h14" class=""></path>
<path d="m12 5 7 7-7 7" class=""></path>
</svg>
</li>
<li class="group flex items-center justify-between cursor-pointer">
<div class="h-7 overflow-hidden">
<div class="menu-hover-link">
<div class="h-7 overflow-hidden pr-4">
<div class="flex flex-col transition-transform duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] group-hover:-translate-y-7 group-hover:translate-x-2">
<span class="h-7 flex items-center text-slate-200">
The Gallery
</span>
<span class="h-7 flex items-center font-medium text-cyan-400">
The Gallery
</span>
</div>
</div>
</div>
</div>
<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" class="lucide lucide-arrow-right opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] text-cyan-400">
<path d="M5 12h14" class=""></path>
<path d="m12 5 7 7-7 7" class=""></path>
</svg>
</li>
</ul>
</nav>
<!-- Newsletter Card -->
<div class="menu-card w-full bg-gradient-to-br rounded-3xl p-6 shadow-2xl backdrop-blur-xl from-white/10 to-white/0 shadow-black/20" style="position: relative; --border-gradient: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); --border-radius-before: 24px">
<h3 class="text-2xl font-medium leading-[1.1] tracking-tight mb-6 text-slate-50">
Get exclusive updates
</h3>
<div class="relative group">
<div class="absolute inset-0 rounded-xl border transition-colors group-focus-within:bg-slate-900/60 group-focus-within:border-cyan-500/30 bg-slate-900/40 border-white/10">
</div>
<div class="relative flex items-center p-1.5">
<input type="email" placeholder="Your email" class="w-full bg-transparent border-none outline-none placeholder:text-slate-500 px-3 py-2 text-sm font-medium text-slate-200">
<button class="w-9 h-9 flex-shrink-0 rounded-lg flex items-center justify-center hover:bg-cyan-500 transition-all duration-200 bg-white/10 text-slate-200 hover:text-slate-900">
<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" class="lucide lucide-arrow-right w-4 h-4">
<path d="M5 12h14" class=""></path>
<path d="m12 5 7 7-7 7" class=""></path>
</svg>
</button>
</div>
</div>
</div>
<!-- Labs Link Card -->
<a href="#" class="menu-card w-full bg-gradient-to-br rounded-3xl p-6 flex items-center justify-between group hover:scale-[1.02] transition-transform duration-300 shadow-2xl backdrop-blur-xl from-white/10 to-white/0 shadow-black/20" style="position: relative; --border-gradient: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); --border-radius-before: 24px">
<div class="connect-inner w-full flex justify-between items-center">
<div class="flex items-center gap-3">
<span class="text-lg font-bold tracking-widest uppercase text-slate-200">
CONNECT
</span>
</div>
<div class="w-10 h-10 rounded-full border flex items-center justify-center group-hover:bg-cyan-400 group-hover:text-slate-900 transition-colors duration-300 shadow-[0_0_0_1px_rgba(255,255,255,0)] group-hover:shadow-[0_0_15px_rgba(34,211,238,0.5)] bg-white/5 border-white/10 text-slate-200">
<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" class="lucide lucide-arrow-up-right w-5 h-5">
<path d="M7 7h10v10" class=""></path>
<path d="M7 17 17 7" class=""></path>
</svg>
</div>
</div>
</a>
</div>
</div>
<!-- Main Visual Section -->
<main class="flex-1 flex flex-col relative w-full z-0 transition-all duration-700 ease-out" id="main-content" style="opacity: 1; filter: blur(0);">
<!-- 3D Image Container -->
<div class="relative w-full h-[55vh] md:h-[65vh] rounded-[2rem] md:rounded-[2.5rem] overflow-hidden border shadow-2xl group cursor-pointer backdrop-blur-sm bg-slate-900/40 border-slate-800/60 shadow-black/40" style="--border-gradient: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); --border-radius-before: 2.5rem">
<!-- Abstract 3D Image -->
<img src="https://hoirqrkdgbmvpwutwuwj.supabase.co/storage/v1/object/public/assets/assets/ad12226b-9c56-48b6-81b8-bf1ef9f0cb87_3840w.webp" alt="Abstract 3D connecting shapes" class="group-hover:scale-105 group-hover:opacity-60 transition-all duration-1000 ease-out hover:saturate-50 opacity-80 mix-blend-lighten w-full h-full object-cover absolute top-0 right-0 bottom-0 left-0 saturate-0">
<!-- Gradient Overlay -->
<div class="absolute inset-0 bg-gradient-to-t from-[#020617] via-transparent to-transparent opacity-80 pointer-events-none">
</div>
<div class="absolute inset-0 bg-gradient-to-tr mix-blend-overlay pointer-events-none from-cyan-900/20 to-purple-900/20">
</div>
<!-- Floating Meta Information -->
<div class="absolute left-4 bottom-4 md:left-6 md:bottom-6 lg:left-8 lg:bottom-8 flex flex-col items-start gap-3 rounded-2xl border px-4 py-3 md:px-5 md:py-4 backdrop-blur-xl shadow-lg transition-transform duration-500 group-hover:translate-y-[-4px] bg-slate-950/40 border-slate-700/40">
<div class="flex items-start justify-between w-full gap-3">
<div class="flex flex-col gap-0.5 flex-1">
<span class="text-[10px] font-medium uppercase tracking-[0.2em] text-cyan-400">
Featured Series
</span>
<span class="text-lg md:text-xl lg:text-2xl font-medium tracking-tight text-slate-100">
Whispers in Liquid Glass
</span>
</div>
</div>
<div class="flex items-center justify-between w-full pt-2 border-t border-slate-700/40">
<div class="flex flex-col">
<span class="text-[10px] uppercase tracking-wider text-slate-400">
Project ID
</span>
<span class="text-sm font-medium tracking-tight text-slate-200">
#8A-24
</span>
</div>
<button class="w-8 h-8 flex-shrink-0 rounded-full border flex items-center justify-center group-hover:bg-cyan-500 group-hover:text-black group-hover:border-cyan-400 transition-all duration-300 border-slate-600/50 bg-slate-800/50 text-slate-300">
<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="arrow-up-right" class="lucide lucide-arrow-up-right w-4 h-4"><path d="M7 7h10v10" class=""></path><path d="M7 17 17 7" class=""></path></svg>
</button>
</div>
</div>
<!-- Top Right Badge -->
<div class="absolute top-4 right-4 md:top-6 md:right-6 lg:top-8 lg:right-8">
<div class="flex items-center gap-2 px-3 py-1.5 rounded-full border backdrop-blur-md bg-slate-950/40 border-slate-800/40">
<span class="relative flex h-2 w-2">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 bg-emerald-400"></span>
<span class="relative inline-flex rounded-full h-2 w-2 bg-emerald-500"></span>
</span>
<span class="text-[10px] font-semibold uppercase tracking-widest text-slate-300">
Live Render
</span>
</div>
</div>
</div>
</main>
<!-- Simple Footer Meta -->
<div class="w-full flex justify-between items-end mt-6 px-2 opacity-60 z-0">
<div class="flex gap-3 md:gap-6 text-[10px] md:text-[11px] text-slate-500 font-medium uppercase tracking-widest">
<span class="">© 2025 blu.orbit</span>
<span class="hidden sm:inline">Visual Narrative</span>
</div>
<div class="flex gap-3 md:gap-4">
<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="instagram" class="lucide lucide-instagram w-4 h-4 text-slate-500 transition-colors cursor-pointer hover:text-slate-300">
<rect width="20" height="20" x="2" y="2" rx="5" ry="5" class=""></rect>
<path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" class=""></path>
<line x1="17.5" x2="17.51" y1="6.5" y2="6.5" class=""></line>
</svg>
<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="twitter" class="lucide lucide-twitter w-4 h-4 text-slate-500 transition-colors cursor-pointer hover:text-slate-300">
<path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" class=""></path>
</svg>
</div>
</div>
<script>
lucide.createIcons();
const menuToggle = document.getElementById('menu-toggle');
const menuToggleMobile = document.getElementById('menu-toggle-mobile');
const menuOverlay = document.getElementById('menu-overlay');
const menuStack = document.getElementById('menu-stack');
const menuBackdrop = document.getElementById('menu-backdrop');
const mainContent = document.getElementById('main-content');
const cards = document.querySelectorAll('.menu-card');
let isMenuOpen = false;
function toggleMenu() {
isMenuOpen = !isMenuOpen;
// Toggle classes on both buttons
if (menuToggle) menuToggle.classList.toggle('menu-open', isMenuOpen);
if (menuToggleMobile) menuToggleMobile.classList.toggle('menu-open', isMenuOpen);
if (isMenuOpen) {
// Activate Overlay
menuOverlay.classList.remove('pointer-events-none');
menuStack.classList.remove('pointer-events-none');
menuBackdrop.classList.remove('opacity-0');
// Cascade Animation In
cards.forEach((card, index) => {
setTimeout(() => {
card.classList.add('active');
}, index * 100);
});
// Push/Dim main content
mainContent.style.opacity = '0.4';
mainContent.style.filter = 'blur(4px)';
} else {
// Deactivate Overlay
menuOverlay.classList.add('pointer-events-none');
menuStack.classList.add('pointer-events-none');
menuBackdrop.classList.add('opacity-0');
// Cascade Animation Out
const total = cards.length;
cards.forEach((card, index) => {
setTimeout(() => {
card.classList.remove('active');
}, (total - 1 - index) * 100);
});
// Reset Main Content
mainContent.style.opacity = '1';
mainContent.style.filter = 'blur(0)';
}
}
if (menuToggle) {
menuToggle.addEventListener('click', toggleMenu);
}
if (menuToggleMobile) {
menuToggleMobile.addEventListener('click', toggleMenu);
}
// Close menu when clicking backdrop
menuBackdrop.addEventListener('click', () => {
if (isMenuOpen) {
toggleMenu();
}
});
</script>