harmonie / index.html
Phethap's picture
include location bar and feeds features where users can interact - Follow Up Deployment
ed7daa5 verified
<!DOCTYPE html>
<html lang="en" class="h-full">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Harmony | Music Social Network</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#4F46E5',
'primary-dark': '#4338CA',
dark: '#111827',
'dark-light': '#1F2937',
}
}
}
}
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Inter', sans-serif;
-webkit-tap-highlight-color: transparent;
}
.song-artwork {
transition: all 0.3s ease;
}
.song-artwork:hover {
transform: scale(1.05);
}
.tab-active {
position: relative;
}
.tab-active:after {
content: '';
position: absolute;
bottom: -12px;
left: 50%;
transform: translateX(-50%);
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #8B5CF6;
}
.blur-bg {
backdrop-filter: blur(20px);
}
.now-playing-card {
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
</style>
</head>
<body class="bg-gray-50 text-gray-900 h-full">
<div class="flex h-full max-w-2xl mx-auto">
<!-- Main App Container -->
<div class="flex flex-col w-full bg-white shadow-xl">
<!-- Header -->
<header class="flex items-center justify-between p-5 border-b border-gray-200">
<h1 class="text-2xl font-bold text-primary">Harmony</h1>
<div class="flex space-x-4">
<button class="text-gray-500 hover:text-gray-700">
<i class="fas fa-search text-xl"></i>
</button>
<button class="text-gray-500 hover:text-gray-700">
<i class="fas fa-bell text-xl"></i>
</button>
</div>
</header>
<!-- Main Content -->
<main class="flex-1 overflow-y-auto">
<!-- Location Bar -->
<div class="flex items-center px-5 py-3 space-x-2 overflow-x-auto no-scrollbar border-b border-gray-200">
<button class="whitespace-nowrap px-4 py-1 rounded-full bg-primary text-white text-sm">
All
</button>
<button class="whitespace-nowrap px-4 py-1 rounded-full bg-gray-100 text-gray-700 text-sm">
Nearby
</button>
<button class="whitespace-nowrap px-4 py-1 rounded-full bg-gray-100 text-gray-700 text-sm">
New York
</button>
<button class="whitespace-nowrap px-4 py-1 rounded-full bg-gray-100 text-gray-700 text-sm">
Los Angeles
</button>
<button class="whitespace-nowrap px-4 py-1 rounded-full bg-gray-100 text-gray-700 text-sm">
Chicago
</button>
</div>
<!-- Stories/Now Playing Section -->
<div class="px-5 pt-5">
<div class="bg-gradient-to-r from-purple-400 via-pink-500 to-blue-500 rounded-xl p-4 shadow-lg">
<div class="flex items-center justify-between mb-4">
<div>
<h3 class="text-white font-bold text-lg">Now Playing</h3>
<p class="text-purple-100 text-sm">From your Spotify</p>
</div>
<button class="bg-white bg-opacity-20 rounded-full p-2">
<i class="fas fa-ellipsis-h text-white"></i>
</button>
</div>
<div class="flex items-center space-x-3">
<div class="song-artwork flex items-center justify-center w-16 h-16 text-4xl text-primary">
<i class="fas fa-compact-disc"></i>
</div>
<div class="flex-1">
<h4 class="text-white font-semibold">Blinding Lights</h4>
<p class="text-purple-100 text-sm">The Weeknd</p>
</div>
<button class="bg-primary text-white rounded-full w-10 h-10 flex items-center justify-center">
<i class="fas fa-play"></i>
</button>
</div>
</div>
</div>
<!-- Feeds Section -->
<div class="px-5 mt-5">
<div class="flex items-center space-x-3 mb-4">
<img src="https://randomuser.me/api/portraits/women/21.jpg" class="w-10 h-10 rounded-full object-cover" alt="Profile">
<div class="flex-1 bg-gray-100 rounded-full px-4 py-2 text-sm text-gray-500 cursor-pointer">
What are you listening to?
</div>
</div>
<!-- Feed Item 1 -->
<div class="bg-white rounded-xl shadow-sm p-4 mb-3">
<div class="flex items-start space-x-3 mb-3">
<img src="https://randomuser.me/api/portraits/men/46.jpg" class="w-10 h-10 rounded-full object-cover" alt="Profile">
<div class="flex-1">
<div class="font-medium">James Wilson</div>
<div class="text-xs text-gray-500">New York · 15 min ago</div>
</div>
<button class="text-gray-400">
<i class="fas fa-ellipsis-h"></i>
</button>
</div>
<div class="ml-13">
<p class="mb-3">Just discovered this amazing new artist! 🔥</p>
<div class="bg-gray-50 rounded-lg p-3 flex items-center">
<div class="w-12 h-12 rounded-lg overflow-hidden flex items-center justify-center text-3xl text-primary">
<i class="fas fa-compact-disc"></i>
</div>
<div class="ml-3">
<h4 class="text-sm font-medium">Midnight City</h4>
<p class="text-xs text-gray-500">M83 · Electronic</p>
</div>
</div>
<div class="flex items-center justify-between mt-3 text-gray-500 text-sm">
<div class="flex space-x-4">
<button class="flex items-center space-x-1">
<i class="far fa-heart"></i>
<span>24</span>
</button>
<button class="flex items-center space-x-1">
<i class="far fa-comment"></i>
<span>8</span>
</button>
</div>
<button class="flex items-center space-x-1">
<i class="far fa-share-square"></i>
<span>Share</span>
</button>
</div>
</div>
</div>
<!-- Feed Item 2 -->
<div class="bg-white rounded-xl shadow-sm p-4 mb-3">
<div class="flex items-start space-x-3 mb-3">
<img src="https://randomuser.me/api/portraits/women/33.jpg" class="w-10 h-10 rounded-full object-cover" alt="Profile">
<div class="flex-1">
<div class="font-medium">Emma Johnson</div>
<div class="text-xs text-gray-500">Los Angeles · 30 min ago</div>
</div>
<button class="text-gray-400">
<i class="fas fa-ellipsis-h"></i>
</button>
</div>
<div class="ml-13">
<p class="mb-3">Having a chill sunday with this playlist 🌞</p>
<div class="bg-gray-50 rounded-lg p-3 flex items-center">
<div class="w-12 h-12 rounded-lg overflow-hidden flex items-center justify-center text-3xl text-primary">
<i class="fas fa-compact-disc"></i>
</div>
<div class="ml-3">
<h4 class="text-sm font-medium">Sunday Morning</h4>
<p class="text-xs text-gray-500">Various Artists · Indie</p>
</div>
</div>
<div class="flex items-center justify-between mt-3 text-gray-500 text-sm">
<div class="flex space-x-4">
<button class="flex items-center space-x-1">
<i class="far fa-heart"></i>
<span>42</span>
</button>
<button class="flex items-center space-x-1">
<i class="far fa-comment"></i>
<span>15</span>
</button>
</div>
<button class="flex items-center space-x-1">
<i class="far fa-share-square"></i>
<span>Share</span>
</button>
</div>
</div>
</div>
</div>
<!-- Hobbies Matching Section -->
<div class="px-5 mt-8">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-bold">Match by Hobbies</h2>
<a href="#" class="text-primary text-sm font-medium">See all</a>
</div>
<div class="grid grid-cols-3 gap-3">
<div class="bg-gray-100 rounded-xl p-3 text-center">
<div class="bg-primary bg-opacity-10 rounded-full w-12 h-12 flex items-center justify-center mx-auto mb-2">
<i class="fas fa-headphones text-primary text-xl"></i>
</div>
<span class="text-xs font-medium">Music Production</span>
</div>
<div class="bg-gray-100 rounded-xl p-3 text-center">
<div class="bg-primary bg-opacity-10 rounded-full w-12 h-12 flex items-center justify-center mx-auto mb-2">
<i class="fas fa-basketball-ball text-primary text-xl"></i>
</div>
<span class="text-xs font-medium">Basketball</span>
</div>
<div class="bg-gray-100 rounded-xl p-3 text-center">
<div class="bg-primary bg-opacity-10 rounded-full w-12 h-12 flex items-center justify-center mx-auto mb-2">
<i class="fas fa-paint-brush text-primary text-xl"></i>
</div>
<span class="text-xs font-medium">Art</span>
</div>
</div>
</div>
<!-- Trending Now Section -->
<div class="px-5 mt-8">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-bold">Trending Now</h2>
<a href="#" class="text-primary text-sm font-medium">See all</a>
</div>
<div class="space-y-3">
<div class="flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-50">
<div class="w-12 h-12 rounded-lg overflow-hidden flex items-center justify-center text-3xl text-primary">
<i class="fas fa-compact-disc"></i>
</div>
<div class="flex-1">
<h4 class="font-medium">Today's Top Hits</h4>
<p class="text-gray-500 text-xs">2,450,845 listeners</p>
</div>
<div class="w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-heart text-gray-400 text-sm"></i>
</div>
</div>
<div class="flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-50">
<div class="w-12 h-12 rounded-lg overflow-hidden flex items-center justify-center text-3xl text-primary">
<i class="fas fa-compact-disc"></i>
</div>
<div class="flex-1">
<h4 class="font-medium">Stay</h4>
<p class="text-gray-500 text-xs">The Kid LAROI, Justin Bieber</p>
</div>
<div class="w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center">
<i class="fas fa-heart text-gray-400 text-sm"></i>
</div>
</div>
</div>
</div>
<!-- Matched Profiles Section -->
<div class="px-5 mt-8">
<div class="flex items-center justify-between mb-4">
<h2 class="text-lg font-bold">People You Might Like</h2>
<a href="#" class="text-primary text-sm font-medium">See all</a>
</div>
<div class="grid grid-cols-2 gap-3">
<div class="bg-gray-50 rounded-xl p-4">
<div class="flex flex-col items-center text-center">
<div class="w-16 h-16 rounded-full overflow-hidden mb-3">
<img src="https://randomuser.me/api/portraits/women/44.jpg" class="w-full h-full object-cover" alt="Profile">
</div>
<h4 class="font-medium">Sarah J.</h4>
<p class="text-xs text-gray-500 mb-2">89% match</p>
<div class="flex space-x-1 mb-3">
<span class="bg-primary bg-opacity-10 text-primary text-xs px-2 py-1 rounded-full">Indie</span>
<span class="bg-primary bg-opacity-10 text-primary text-xs px-2 py-1 rounded-full">Guitar</span>
</div>
<button class="bg-primary text-white text-sm rounded-full px-4 py-1 w-full">
Connect
</button>
</div>
</div>
<div class="bg-gray-50 rounded-xl p-4">
<div class="flex flex-col items-center text-center">
<div class="w-16 h-16 rounded-full overflow-hidden mb-3">
<img src="https://randomuser.me/api/portraits/men/32.jpg" class="w-full h-full object-cover" alt="Profile">
</div>
<h4 class="font-medium">Alex K.</h4>
<p class="text-xs text-gray-500 mb-2">92% match</p>
<div class="flex space-x-1 mb-3">
<span class="bg-primary bg-opacity-10 text-primary text-xs px-2 py-1 rounded-full">Hip Hop</span>
<span class="bg-primary bg-opacity-10 text-primary text-xs px-2 py-1 rounded-full">Basketball</span>
</div>
<button class="bg-primary text-white text-sm rounded-full px-4 py-1 w-full">
Connect
</button>
</div>
</div>
</div>
</div>
</main>
<!-- Bottom Navigation -->
<nav class="border-t border-gray-200 px-6 pt-3 pb-5 blur-bg">
<div class="flex justify-between">
<a href="#" class="flex flex-col items-center text-primary tab-active">
<i class="fas fa-home text-xl mb-1"></i>
<span class="text-xs">Home</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-500">
<i class="fas fa-microphone-alt text-xl mb-1"></i>
<span class="text-xs">Discover</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-500">
<i class="fas fa-user-friends text-xl mb-1"></i>
<span class="text-xs">Connections</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-500">
<i class="fas fa-inbox text-xl mb-1"></i>
<span class="text-xs">Messages</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-500">
<i class="fas fa-user text-xl mb-1"></i>
<span class="text-xs">Profile</span>
</a>
</div>
</nav>
</div>
</div>
<script>
// Mock music player functionality
document.querySelectorAll('.song-artwork, .fa-play').forEach(el => {
el.addEventListener('click', function() {
alert('Now playing: Blinding Lights by The Weeknd');
});
});
// Connect button functionality
document.querySelectorAll('button').forEach(btn => {
if(btn.textContent === 'Connect') {
btn.addEventListener('click', function() {
alert('Connection request sent!');
});
}
});
// Like functionality
document.querySelectorAll('.fa-heart').forEach(icon => {
icon.addEventListener('click', function() {
this.classList.toggle('text-red-500');
this.classList.toggle('text-gray-400');
this.classList.toggle('fas');
this.classList.toggle('far');
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Phethap/harmonie" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>