Toggle navigation
☰
HTML
CSS
Scripting
Database
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tailwind CSS Animated Tabs</title> <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4.2.1"></script> </head> <body class="bg-gray-50 flex items-center justify-center min-h-screen p-6 antialiased" x-data="{ activeTab: 1 }"> <div class="w-full max-w-lg bg-white p-12 rounded-[4rem] shadow-4xl border border-white"> <!-- Animated Tab Container --> <div class="relative flex bg-slate-100 p-1.5 rounded-[2rem] border border-slate-200 mb-12"> <!-- Sliding Background --> <div class="absolute h-[calc(100%-12px)] top-1.5 bg-indigo-600 rounded-[1.8rem] shadow-xl shadow-indigo-100 transition-all duration-500 ease-[cubic-bezier(0.68,-0.1,0.32,1.2)]" :style="'width: 33.333%; left: ' + ((activeTab - 1) * 33.333) + '%'" ></div> <!-- Tab Buttons --> <button @click="activeTab = 1" class="relative z-10 flex-1 py-4 text-[10px] font-black uppercase tracking-widest transition-colors duration-300 whitespace-nowrap cursor-pointer" :class="activeTab === 1 ? 'text-white' : 'text-slate-400'"> Network </button> <button @click="activeTab = 2" class="relative z-10 flex-1 py-4 text-[10px] font-black uppercase tracking-widest transition-colors duration-300 whitespace-nowrap cursor-pointer" :class="activeTab === 2 ? 'text-white' : 'text-slate-400'"> Security </button> <button @click="activeTab = 3" class="relative z-10 flex-1 py-4 text-[10px] font-black uppercase tracking-widest transition-colors duration-300 whitespace-nowrap cursor-pointer" :class="activeTab === 3 ? 'text-white' : 'text-slate-400'"> Database </button> </div> <div class="min-h-40"> <div x-show="activeTab === 1" x-transition:enter="transition ease-out duration-300 delay-150" x-transition:enter-start="opacity-0 translate-y-4" x-transition:enter-end="opacity-100 translate-y-0" class="space-y-4"> <h3 class="text-xl font-black text-slate-900 tracking-tighter italic uppercase">Network Backbone.</h3> <p class="text-sm text-slate-500 font-medium leading-relaxed italic">Global interconnection mesh at 98% capacity. All regional hubs currently reporting optimal sync status.</p> </div> <div x-show="activeTab === 2" x-transition:enter="transition ease-out duration-300 delay-150" x-transition:enter-start="opacity-0 translate-y-4" x-transition:enter-end="opacity-100 translate-y-0" class="space-y-4"> <h3 class="text-xl font-black text-slate-900 tracking-tighter italic uppercase">Security Protocols.</h3> <p class="text-sm text-slate-500 font-medium leading-relaxed italic">Advanced encryption tiers active across all sectors. Perimeter firewall integrity verified at 100%.</p> </div> <div x-show="activeTab === 3" x-transition:enter="transition ease-out duration-300 delay-150" x-transition:enter-start="opacity-0 translate-y-4" x-transition:enter-end="opacity-100 translate-y-0" class="space-y-4"> <h3 class="text-xl font-black text-slate-900 tracking-tighter italic uppercase">Database Sync.</h3> <p class="text-sm text-slate-500 font-medium leading-relaxed italic">Primary manifest replicates across 12 distributed nodes. Last verification completed 42ms ago.</p> </div> </div> </div> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script> </body> </html>