hook-up / index.html
freemanjrknox's picture
Add 3 files
a53f8d4 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hook Up - Find Professional Instrumentalists</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">
<link href="https://fonts.cdnfonts.com/css/century-gothic" rel="stylesheet">
<style>
:root {
--primary: #6C63FF;
--secondary: #4A42EC;
--accent: #FF6584;
--dark: #2D3748;
--light: #F7FAFC;
}
body {
font-family: 'Century Gothic', sans-serif;
background-color: #f8f9fa;
overflow-x: hidden;
}
.gradient-bg {
background: linear-gradient(135deg, var(--primary), var(--secondary));
}
.musician-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.nav-link {
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
width: 0;
height: 2px;
bottom: -2px;
left: 0;
background-color: var(--accent);
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
.floating {
animation: float 6s ease-in-out infinite;
}
.hero-image {
filter: drop-shadow(0 20px 13px rgba(0, 0, 0, 0.1));
}
.search-box {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.rating-stars {
color: #F59E0B;
}
.fade-in {
animation: fadeIn 1s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.slide-up {
animation: slideUp 0.8s ease-out;
}
@keyframes slideUp {
from { transform: translateY(50px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
/* Century Gothic fallback for elements that might not inherit properly */
h1, h2, h3, h4, h5, h6, p, a, span, button, input, select, textarea {
font-family: 'Century Gothic', sans-serif;
}
</style>
</head>
<body class="antialiased">
<!-- Animated Background -->
<div class="fixed inset-0 -z-10 overflow-hidden">
<div class="absolute inset-0 bg-gradient-to-br from-purple-100 via-blue-50 to-indigo-100 opacity-70"></div>
<div class="absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-10"></div>
</div>
<!-- Navigation -->
<nav class="bg-white/80 backdrop-blur-md shadow-sm sticky top-0 z-50 transition-all duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i class="fas fa-guitar text-2xl text-purple-600 mr-2"></i>
<span class="text-xl font-bold text-gray-800">Hook Up</span>
</div>
</div>
<div class="hidden md:ml-6 md:flex md:items-center md:space-x-8">
<a href="#" class="nav-link text-gray-700 hover:text-purple-600 px-3 py-2 text-sm font-medium">Home</a>
<a href="#" class="nav-link text-gray-700 hover:text-purple-600 px-3 py-2 text-sm font-medium">Browse</a>
<a href="#" class="nav-link text-gray-700 hover:text-purple-600 px-3 py-2 text-sm font-medium">How It Works</a>
<a href="#" class="nav-link text-gray-700 hover:text-purple-600 px-3 py-2 text-sm font-medium">Testimonials</a>
<a href="#" class="nav-link text-gray-700 hover:text-purple-600 px-3 py-2 text-sm font-medium">Contact</a>
</div>
<div class="hidden md:ml-4 md:flex md:items-center">
<button class="bg-gradient-to-r from-purple-500 to-indigo-600 text-white px-4 py-2 rounded-full text-sm font-medium hover:shadow-lg transition-all duration-300 transform hover:scale-105">
Sign Up
</button>
</div>
<div class="-mr-2 flex items-center md:hidden">
<button id="mobile-menu-button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-700 hover:text-purple-600 focus:outline-none">
<i class="fas fa-bars"></i>
</button>
</div>
</div>
</div>
<!-- Mobile menu -->
<div id="mobile-menu" class="hidden md:hidden bg-white shadow-lg rounded-lg mx-4 mt-2 py-2">
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-purple-50 hover:text-purple-600">Home</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-purple-50 hover:text-purple-600">Browse</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-purple-50 hover:text-purple-600">How It Works</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-purple-50 hover:text-purple-600">Testimonials</a>
<a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-purple-50 hover:text-purple-600">Contact</a>
<div class="px-4 py-2">
<button class="w-full bg-gradient-to-r from-purple-500 to-indigo-600 text-white px-4 py-2 rounded-full text-sm font-medium">
Sign Up
</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<section class="relative overflow-hidden">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 md:py-24">
<div class="grid md:grid-cols-2 gap-12 items-center">
<div class="slide-up">
<h1 class="text-4xl md:text-5xl lg:text-6xl font-bold text-gray-900 leading-tight">
Find the Perfect <span class="text-purple-600">Musician</span> for Your Event
</h1>
<p class="mt-6 text-lg text-gray-600">
Hook Up connects you with professional instrumentalists for weddings, concerts, studio sessions and more.
Browse our curated selection of talented musicians ready to elevate your event.
</p>
<div class="mt-8 flex flex-col sm:flex-row gap-4">
<button class="bg-gradient-to-r from-purple-500 to-indigo-600 text-white px-6 py-3 rounded-full text-sm font-medium hover:shadow-lg transition-all duration-300 transform hover:scale-105">
Browse Musicians
</button>
<button class="border border-purple-600 text-purple-600 px-6 py-3 rounded-full text-sm font-medium hover:bg-purple-50 transition-all duration-300">
How It Works
</button>
</div>
</div>
<div class="relative">
<div class="floating hero-image">
<img src="https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80"
alt="Musician playing guitar"
class="rounded-2xl shadow-xl w-full h-auto">
</div>
<div class="absolute -bottom-6 -left-6 w-24 h-24 bg-purple-200 rounded-full -z-10"></div>
<div class="absolute -top-6 -right-6 w-32 h-32 bg-indigo-200 rounded-full -z-10"></div>
</div>
</div>
</div>
</section>
<!-- Search Section -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<div class="bg-white rounded-2xl shadow-xl p-6 md:p-8 search-box slide-up">
<h2 class="text-2xl font-bold text-gray-900 mb-6">Find Your Perfect Match</h2>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label for="instrument" class="block text-sm font-medium text-gray-700 mb-1">Instrument</label>
<select id="instrument" class="w-full rounded-lg border-gray-300 shadow-sm focus:border-purple-500 focus:ring-purple-500 text-gray-700">
<option value="">All Instruments</option>
<option value="guitarist">Guitarist</option>
<option value="pianist">Pianist</option>
<option value="drummer">Drummer</option>
<option value="bassist">Bassist</option>
<option value="violinist">Violinist</option>
<option value="saxophonist">Saxophonist</option>
</select>
</div>
<div>
<label for="genre" class="block text-sm font-medium text-gray-700 mb-1">Genre</label>
<select id="genre" class="w-full rounded-lg border-gray-300 shadow-sm focus:border-purple-500 focus:ring-purple-500 text-gray-700">
<option value="">All Genres</option>
<option value="jazz">Jazz</option>
<option value="rock">Rock</option>
<option value="classical">Classical</option>
<option value="pop">Pop</option>
<option value="blues">Blues</option>
<option value="r&b">R&B</option>
</select>
</div>
<div>
<label for="location" class="block text-sm font-medium text-gray-700 mb-1">Location</label>
<input type="text" id="location" placeholder="City or Zip" class="w-full rounded-lg border-gray-300 shadow-sm focus:border-purple-500 focus:ring-purple-500 text-gray-700">
</div>
<div class="flex items-end">
<button class="w-full bg-gradient-to-r from-purple-500 to-indigo-600 text-white px-4 py-3 rounded-lg text-sm font-medium hover:shadow-lg transition-all duration-300">
Search Musicians
</button>
</div>
</div>
</div>
</section>
<!-- Popular Instruments -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<div class="text-center mb-12 fade-in">
<h2 class="text-3xl font-bold text-gray-900">Popular Instruments</h2>
<p class="mt-4 text-lg text-gray-600 max-w-2xl mx-auto">
Browse our most requested instrumentalists across various categories
</p>
</div>
<div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6">
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-guitar text-2xl text-purple-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Guitarists</h3>
<p class="text-sm text-gray-500 mt-1">245 available</p>
</div>
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-indigo-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-drum text-2xl text-indigo-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Drummers</h3>
<p class="text-sm text-gray-500 mt-1">189 available</p>
</div>
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-pink-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-music text-2xl text-pink-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Pianists</h3>
<p class="text-sm text-gray-500 mt-1">312 available</p>
</div>
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-violin text-2xl text-blue-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Violinists</h3>
<p class="text-sm text-gray-500 mt-1">156 available</p>
</div>
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-yellow-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-saxophone text-2xl text-yellow-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Saxophonists</h3>
<p class="text-sm text-gray-500 mt-1">98 available</p>
</div>
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-all duration-300 transform hover:-translate-y-1">
<div class="p-4 flex flex-col items-center">
<div class="w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mb-3">
<i class="fas fa-microphone text-2xl text-green-600"></i>
</div>
<h3 class="text-lg font-medium text-gray-900">Vocalists</h3>
<p class="text-sm text-gray-500 mt-1">276 available</p>
</div>
</div>
</div>
</section>
<!-- Featured Musicians -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 bg-gray-50 rounded-3xl">
<div class="text-center mb-12 fade-in">
<h2 class="text-3xl font-bold text-gray-900">Featured Musicians</h2>
<p class="mt-4 text-lg text-gray-600 max-w-2xl mx-auto">
Top-rated instrumentalists available for your next event
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8" id="musicians-container">
<!-- Musician cards will be loaded here via JavaScript -->
</div>
<div class="mt-12 text-center">
<button class="border border-purple-600 text-purple-600 px-6 py-3 rounded-full text-sm font-medium hover:bg-purple-50 transition-all duration-300">
View All Musicians
</button>
</div>
</section>
<!-- How It Works -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<div class="text-center mb-12 fade-in">
<h2 class="text-3xl font-bold text-gray-900">How Hook Up Works</h2>
<p class="mt-4 text-lg text-gray-600 max-w-2xl mx-auto">
Simple steps to find and book your perfect musician
</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="bg-white p-6 rounded-xl shadow-md hover:shadow-lg transition-all duration-300">
<div class="w-12 h-12 bg-purple-100 rounded-full flex items-center justify-center mb-4">
<span class="text-purple-600 font-bold text-xl">1</span>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">Search & Discover</h3>
<p class="text-gray-600">
Browse our extensive database of professional musicians by instrument, genre, location and more.
</p>
</div>
<div class="bg-white p-6 rounded-xl shadow-md hover:shadow-lg transition-all duration-300">
<div class="w-12 h-12 bg-indigo-100 rounded-full flex items-center justify-center mb-4">
<span class="text-indigo-600 font-bold text-xl">2</span>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">Connect & Discuss</h3>
<p class="text-gray-600">
Message musicians directly to discuss your event details, requirements and availability.
</p>
</div>
<div class="bg-white p-6 rounded-xl shadow-md hover:shadow-lg transition-all duration-300">
<div class="w-12 h-12 bg-pink-100 rounded-full flex items-center justify-center mb-4">
<span class="text-pink-600 font-bold text-xl">3</span>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">Book & Enjoy</h3>
<p class="text-gray-600">
Secure your booking with our safe payment system and enjoy an amazing musical experience.
</p>
</div>
</div>
</section>
<!-- Testimonials -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 bg-gradient-to-r from-purple-500 to-indigo-600 rounded-3xl text-white">
<div class="text-center mb-12 fade-in">
<h2 class="text-3xl font-bold mb-4">What Our Clients Say</h2>
<p class="text-purple-100 max-w-2xl mx-auto">
Don't just take our word for it - hear from people who've used Hook Up
</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="bg-white/10 backdrop-blur-sm p-6 rounded-xl">
<div class="flex items-center mb-4">
<div class="rating-stars mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>
<p class="mb-4 italic">
"Found an incredible jazz pianist for our wedding reception through Hook Up. The process was seamless and the musician was phenomenal!"
</p>
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-purple-200 mr-3 overflow-hidden">
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Sarah J." class="w-full h-full object-cover">
</div>
<div>
<h4 class="font-medium">Sarah J.</h4>
<p class="text-sm text-purple-200">Wedding Client</p>
</div>
</div>
</div>
<div class="bg-white/10 backdrop-blur-sm p-6 rounded-xl">
<div class="flex items-center mb-4">
<div class="rating-stars mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>
<p class="mb-4 italic">
"As a music producer, I regularly use Hook Up to find session musicians. The quality of talent is consistently excellent."
</p>
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-purple-200 mr-3 overflow-hidden">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Mark T." class="w-full h-full object-cover">
</div>
<div>
<h4 class="font-medium">Mark T.</h4>
<p class="text-sm text-purple-200">Music Producer</p>
</div>
</div>
</div>
<div class="bg-white/10 backdrop-blur-sm p-6 rounded-xl">
<div class="flex items-center mb-4">
<div class="rating-stars mr-2">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
</div>
</div>
<p class="mb-4 italic">
"The drummer we found for our corporate event was professional, punctual and incredibly talented. Will definitely use Hook Up again!"
</p>
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-purple-200 mr-3 overflow-hidden">
<img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Lisa M." class="w-full h-full object-cover">
</div>
<div>
<h4 class="font-medium">Lisa M.</h4>
<p class="text-sm text-purple-200">Event Coordinator</p>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
<div class="bg-gradient-to-r from-purple-500 to-indigo-600 rounded-3xl p-8 md:p-12 text-white">
<div class="grid md:grid-cols-2 gap-8 items-center">
<div>
<h2 class="text-3xl font-bold mb-4">Ready to Find Your Musician?</h2>
<p class="text-lg text-purple-100 mb-6">
Join thousands of happy clients who've found their perfect musical match through Hook Up.
</p>
<button class="bg-white text-purple-600 px-6 py-3 rounded-full text-sm font-medium hover:shadow-lg transition-all duration-300">
Get Started Now
</button>
</div>
<div class="flex justify-center">
<div class="relative w-64 h-64">
<div class="absolute top-0 left-0 w-16 h-16 bg-white/20 rounded-full animate-pulse"></div>
<div class="absolute bottom-0 right-0 w-20 h-20 bg-white/20 rounded-full animate-pulse delay-100"></div>
<div class="absolute inset-0 flex items-center justify-center">
<i class="fas fa-music text-6xl text-white opacity-80"></i>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-900 text-white py-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<div class="flex items-center mb-4">
<i class="fas fa-guitar text-2xl text-purple-400 mr-2"></i>
<span class="text-xl font-bold">Hook Up</span>
</div>
<p class="text-gray-400">
Connecting you with the best musical talent for any occasion.
</p>
<div class="flex space-x-4 mt-4">
<a href="#" class="text-gray-400 hover:text-white transition-colors">
<i class="fab fa-facebook-f"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white transition-colors">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white transition-colors">
<i class="fab fa-instagram"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white transition-colors">
<i class="fab fa-linkedin-in"></i>
</a>
</div>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Quick Links</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Home</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Browse Musicians</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">How It Works</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Pricing</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Testimonials</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Instruments</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Guitarists</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Pianists</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Drummers</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Bassists</a></li>
<li><a href="#" class="text-gray-400 hover:text-white transition-colors">Violinists</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Contact Us</h3>
<ul class="space-y-2">
<li class="flex items-center text-gray-400">
<i class="fas fa-map-marker-alt mr-2 text-purple-400"></i> 123 Music St, Nashville, TN
</li>
<li class="flex items-center text-gray-400">
<i class="fas fa-phone-alt mr-2 text-purple-400"></i> (555) 123-4567
</li>
<li class="flex items-center text-gray-400">
<i class="fas fa-envelope mr-2 text-purple-400"></i> hello@hookup.com
</li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 mt-12 pt-8 text-center text-gray-400">
<p>&copy; 2023 Hook Up. All rights reserved.</p>
</div>
</div>
</footer>
<script>
// Mobile menu toggle
document.getElementById('mobile-menu-button').addEventListener('click', function() {
const menu = document.getElementById('mobile-menu');
menu.classList.toggle('hidden');
});
// Sample musician data
const musicians = [
{
id: 1,
name: "Alex Johnson",
instrument: "Guitarist",
genre: "Jazz, Blues",
location: "New York, NY",
rating: 4.9,
price: "$150/hr",
image: "https://images.unsplash.com/photo-1508700115892-45ecd05ae2ad?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80",
bio: "Professional jazz guitarist with 15 years of experience performing at venues across the country."
},
{
id: 2,
name: "Maria Garcia",
instrument: "Pianist",
genre: "Classical, Pop",
location: "Los Angeles, CA",
rating: 5.0,
price: "$200/hr",
image: "https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
bio: "Classically trained pianist available for weddings, corporate events and studio sessions."
},
{
id: 3,
name: "Jamal Williams",
instrument: "Drummer",
genre: "Rock, Funk",
location: "Chicago, IL",
rating: 4.8,
price: "$120/hr",
image: "https://images.unsplash.com/photo-1519892305096-4ce5f5f251a1?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
bio: "High-energy drummer with extensive touring experience. Perfect for live performances."
},
{
id: 4,
name: "Sophie Chen",
instrument: "Violinist",
genre: "Classical, Folk",
location: "Boston, MA",
rating: 4.7,
price: "$180/hr",
image: "https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
bio: "Acclaimed violinist available for weddings, orchestral performances and private lessons."
},
{
id: 5,
name: "David Kim",
instrument: "Bassist",
genre: "Jazz, R&B",
location: "Austin, TX",
rating: 4.5,
price: "$130/hr",
image: "https://images.unsplash.com/photo-1508700115892-45ecd05ae2ad?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80",
bio: "Versatile bass player with experience in multiple genres. Studio and live performance available."
},
{
id: 6,
name: "Elena Rodriguez",
instrument: "Saxophonist",
genre: "Jazz, Blues",
location: "Miami, FL",
rating: 4.6,
price: "$160/hr",
image: "https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
bio: "Soulful saxophonist perfect for weddings, jazz clubs and corporate events."
}
];
// Load musician cards
const musiciansContainer = document.getElementById('musicians-container');
musicians.forEach(musician => {
const stars = [];
const fullStars = Math.floor(musician.rating);
const hasHalfStar = musician.rating % 1 >= 0.5;
for (let i = 0; i < fullStars; i++) {
stars.push('<i class="fas fa-star"></i>');
}
if (hasHalfStar) {
stars.push('<i class="fas fa-star-half-alt"></i>');
}
const emptyStars = 5 - stars.length;
for (let i = 0; i < emptyStars; i++) {
stars.push('<i class="far fa-star"></i>');
}
const card = document.createElement('div');
card.className = 'bg-white rounded-xl overflow-hidden shadow-md musician-card transition-all duration-300 hover:cursor-pointer';
card.innerHTML = `
<div class="h-48 overflow-hidden">
<img src="${musician.image}" alt="${musician.name}" class="w-full h-full object-cover">
</div>
<div class="p-6">
<div class="flex justify-between items-start mb-2">
<div>
<h3 class="text-xl font-bold text-gray-900">${musician.name}</h3>
<p class="text-purple-600 font-medium">${musician.instrument}</p>
</div>
<div class="bg-purple-100 text-purple-800 text-sm font-semibold px-3 py-1 rounded-full">
${musician.price}
</div>
</div>
<div class="flex items-center mb-3">
<div class="rating-stars mr-2">
${stars.join('')}
</div>
<span class="text-gray-600 text-sm">${musician.rating}</span>
</div>
<p class="text-gray-600 text-sm mb-4">${musician.bio}</p>
<div class="flex justify-between items-center">
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-map-marker-alt mr-1"></i>
<span>${musician.location}</span>
</div>
<button class="bg-purple-600 text-white px-4 py-2 rounded-lg text-sm font-medium hover:bg-purple-700 transition-colors">
Book Now
</button>
</div>
</div>
`;
// Add animation delay based on index
card.style.animationDelay = `${musicians.indexOf(musician) * 0.1}s`;
card.classList.add('fade-in');
musiciansContainer.appendChild(card);
});
// Animate elements when they come into view
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('slide-up');
observer.unobserve(entry.target);
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.fade-in, .slide-up').forEach(el => {
observer.observe(el);
});
// Add scroll effect to navbar
window.addEventListener('scroll', function() {
const nav = document.querySelector('nav');
if (window.scrollY > 50) {
nav.classList.add('shadow-lg');
nav.classList.remove('bg-white/80');
nav.classList.add('bg-white');
} else {
nav.classList.remove('shadow-lg');
nav.classList.add('bg-white/80');
nav.classList.remove('bg-white');
}
});
</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=freemanjrknox/hook-up" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>