codeg52's picture
Create a high-fidelity web UI design for an application called AIPHY — a “Giphy but for sound clips” platform.
4ea3c28 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AIPHY | Giphy for Sound Clips</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#6D4AFF',
secondary: '#F3F4F6',
}
}
}
}
</script>
</head>
<body class="bg-[#F8F8F8] font-sans antialiased">
<custom-navbar></custom-navbar>
<div class="container mx-auto px-6 max-w-6xl">
<!-- Search Section -->
<div class="flex justify-center py-12">
<div class="relative w-full max-w-2xl">
<input type="text" placeholder="Search sounds..." class="w-full px-6 py-4 rounded-2xl border border-gray-200 focus:outline-none focus:ring-2 focus:ring-[#5A5BEA] focus:border-transparent shadow-sm text-gray-900">
<button class="absolute right-3 top-3.5 text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
</svg>
</button>
</div>
</div>
<!-- Categories -->
<section class="mb-10">
<h2 class="text-xl font-semibold mb-4 text-[#1A1A1A]">Categories:</h2>
<div class="flex flex-wrap gap-3">
<a href="#" class="px-5 py-2 bg-[#5A5BEA] text-white rounded-full font-medium">All</a>
<a href="#" class="px-5 py-2 bg-white border border-gray-200 rounded-full text-[#6B6B6B] hover:bg-gray-50 transition">Laughs</a>
<a href="#" class="px-5 py-2 bg-white border border-gray-200 rounded-full text-[#6B6B6B] hover:bg-gray-50 transition">Shock</a>
<a href="#" class="px-5 py-2 bg-white border border-gray-200 rounded-full text-[#6B6B6B] hover:bg-gray-50 transition">Hype</a>
<a href="#" class="px-5 py-2 bg-white border border-gray-200 rounded-full text-[#6B6B6B] hover:bg-gray-50 transition">African</a>
</div>
</section>
<!-- Sound Grid -->
<section>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Sound Card 1 -->
<div class="bg-white rounded-2xl shadow-[0_4px_12px_rgba(0,0,0,0.05)] border border-gray-100 overflow-hidden hover:shadow-md transition-all">
<div class="p-6 flex items-start gap-4">
<button class="w-14 h-14 rounded-full bg-black text-white flex items-center justify-center hover:bg-opacity-90 transition">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</button>
<div class="flex-1">
<h3 class="font-semibold text-[#1A1A1A]">Surprised Gasp</h3>
<p class="text-sm text-[#6B6B6B] mt-1">Shock</p>
</div>
</div>
<div class="px-6 pb-6 flex justify-end gap-3">
<button class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition text-sm font-medium">
Download
</button>
<button class="px-4 py-2 bg-[#1A1A1A] text-white rounded-lg hover:bg-opacity-90 transition text-sm font-medium">
Share
</button>
</div>
</div>
<!-- Sound Card 2 -->
<div class="bg-white rounded-2xl shadow-[0_4px_12px_rgba(0,0,0,0.05)] border border-gray-100 overflow-hidden hover:shadow-md transition-all">
<div class="p-6 flex items-start gap-4">
<button class="w-14 h-14 rounded-full bg-black text-white flex items-center justify-center hover:bg-opacity-90 transition">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</button>
<div class="flex-1">
<h3 class="font-semibold text-[#1A1A1A]">Evil Laugh</h3>
<p class="text-sm text-[#6B6B6B] mt-1">Laughs</p>
</div>
</div>
<div class="px-6 pb-6 flex justify-end gap-3">
<button class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition text-sm font-medium">
Download
</button>
<button class="px-4 py-2 bg-[#1A1A1A] text-white rounded-lg hover:bg-opacity-90 transition text-sm font-medium">
Share
</button>
</div>
</div>
<!-- Sound Card 3 -->
<div class="bg-white rounded-2xl shadow-[0_4px_12px_rgba(0,0,0,0.05)] border border-gray-100 overflow-hidden hover:shadow-md transition-all">
<div class="p-6 flex items-start gap-4">
<button class="w-14 h-14 rounded-full bg-black text-white flex items-center justify-center hover:bg-opacity-90 transition">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z" />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
</button>
<div class="flex-1">
<h3 class="font-semibold text-[#1A1A1A]">Bass Drop</h3>
<p class="text-sm text-[#6B6B6B] mt-1">Hype</p>
</div>
</div>
<div class="px-6 pb-6 flex justify-end gap-3">
<button class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition text-sm font-medium">
Download
</button>
<button class="px-4 py-2 bg-[#1A1A1A] text-white rounded-lg hover:bg-opacity-90 transition text-sm font-medium">
Share
</button>
</div>
</div>
</div>
</section>
</div>
<main class="container mx-auto px-4 py-8">
<!-- Hero Section -->
<section class="text-center mb-16">
<h1 class="text-4xl md:text-5xl font-bold text-gray-900 mb-4">Discover & Share<br>Audio Reactions</h1>
<p class="text-xl text-gray-600 max-w-2xl mx-auto mb-8">The best collection of short, expressive sound bites for any situation</p>
<div class="max-w-xl mx-auto relative">
<input type="text" placeholder="Search sounds..." class="w-full px-6 py-4 rounded-full border border-gray-200 focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent shadow-sm">
<button class="absolute right-2 top-2 bg-primary text-white p-2 rounded-full hover:bg-opacity-90 transition">
<i data-feather="search"></i>
</button>
</div>
</section>
<!-- Categories -->
<section class="mb-12">
<h2 class="text-2xl font-semibold mb-6 text-gray-800">Popular Categories</h2>
<div class="flex flex-wrap gap-3">
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">All</a>
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">Laughs</a>
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">Shock</a>
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">Hype</a>
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">Meme</a>
<a href="#" class="px-4 py-2 bg-secondary rounded-full text-gray-700 hover:bg-gray-200 transition">Suspense</a>
</div>
</section>
<!-- Sound Grid -->
<section>
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6">
<!-- Sound Card 1 -->
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden hover:shadow-md transition">
<div class="p-4 flex items-start gap-4">
<button class="w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center hover:bg-opacity-90 transition">
<i data-feather="play"></i>
</button>
<div class="flex-1">
<h3 class="font-medium text-gray-900">Surprised Gasp</h3>
<p class="text-sm text-gray-500">0.8s · Shock</p>
</div>
</div>
<div class="px-4 pb-4 flex justify-between">
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="download"></i>
</button>
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="share-2"></i>
</button>
</div>
</div>
<!-- Sound Card 2 -->
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden hover:shadow-md transition">
<div class="p-4 flex items-start gap-4">
<button class="w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center hover:bg-opacity-90 transition">
<i data-feather="play"></i>
</button>
<div class="flex-1">
<h3 class="font-medium text-gray-900">Evil Laugh</h3>
<p class="text-sm text-gray-500">2.1s · Laughs</p>
</div>
</div>
<div class="px-4 pb-4 flex justify-between">
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="download"></i>
</button>
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="share-2"></i>
</button>
</div>
</div>
<!-- Sound Card 3 -->
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden hover:shadow-md transition">
<div class="p-4 flex items-start gap-4">
<button class="w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center hover:bg-opacity-90 transition">
<i data-feather="play"></i>
</button>
<div class="flex-1">
<h3 class="font-medium text-gray-900">Dramatic Whoosh</h3>
<p class="text-sm text-gray-500">1.5s · Suspense</p>
</div>
</div>
<div class="px-4 pb-4 flex justify-between">
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="download"></i>
</button>
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="share-2"></i>
</button>
</div>
</div>
<!-- Sound Card 4 -->
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden hover:shadow-md transition">
<div class="p-4 flex items-start gap-4">
<button class="w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center hover:bg-opacity-90 transition">
<i data-feather="play"></i>
</button>
<div class="flex-1">
<h3 class="font-medium text-gray-900">Crowd Cheer</h3>
<p class="text-sm text-gray-500">3.2s · Hype</p>
</div>
</div>
<div class="px-4 pb-4 flex justify-between">
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="download"></i>
</button>
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="share-2"></i>
</button>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="mt-16 text-center">
<h2 class="text-2xl font-semibold mb-4 text-gray-800">Got a great reaction sound?</h2>
<p class="text-gray-600 mb-6 max-w-2xl mx-auto">Upload your own short audio clips to share with the community</p>
<a href="/upload" class="inline-block bg-primary text-white px-6 py-3 rounded-lg hover:bg-opacity-90 transition font-medium">Upload a Reaction</a>
</section>
</main>
<custom-footer></custom-footer>
<!-- Audio Player (fixed at bottom) -->
<div class="fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 p-3 shadow-lg">
<div class="container mx-auto flex items-center justify-between">
<div class="flex items-center gap-3">
<button class="w-10 h-10 rounded-full bg-primary text-white flex items-center justify-center hover:bg-opacity-90 transition">
<i data-feather="play"></i>
</button>
<div>
<p class="font-medium text-gray-900">Currently Playing</p>
<p class="text-sm text-gray-500">0:12 / 0:45</p>
</div>
</div>
<div class="flex items-center gap-4">
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="download"></i>
</button>
<button class="text-gray-500 hover:text-primary transition">
<i data-feather="share-2"></i>
</button>
</div>
</div>
</div>
<!-- Component Scripts -->
<script src="components/navbar.js"></script>
<script src="components/footer.js"></script>
<script src="script.js"></script>
<script>feather.replace();</script>
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
</body>
</html>