sonic-bloom-fest / index.html
MoShow's picture
Add a real map in the mapo section, either from leaflet por google maps
f88c53f verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sonic Bloom Fest | The Ultimate Music Experience</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 src="components/navbar.js"></script>
<script src="components/footer.js"></script>
<script src="components/artist-card.js"></script>
</head>
<body class="bg-black text-white">
<custom-navbar></custom-navbar>
<!-- Hero Section -->
<section class="relative h-screen flex items-center justify-center bg-gradient-to-b from-black to-gray-900 overflow-hidden">
<video autoplay muted loop class="absolute w-full h-full object-cover opacity-50">
<source src="http://static.photos/music/1200x630/1" type="video/mp4">
</video>
<div class="relative z-10 text-center px-4">
<h1 class="text-5xl md:text-7xl font-bold mb-6 text-yellow-400">SONIC BLOOM FEST</h1>
<p class="text-xl md:text-2xl mb-8">July 15-17, 2023 • Harmony Valley</p>
<div class="flex flex-col md:flex-row gap-4 justify-center">
<a href="#tickets" class="bg-yellow-500 hover:bg-yellow-600 text-black font-bold py-3 px-8 rounded-full text-lg transition duration-300">BUY TICKETS</a>
<a href="#lineup" class="border-2 border-yellow-500 hover:bg-yellow-500 hover:text-black font-bold py-3 px-8 rounded-full text-lg transition duration-300">SEE LINEUP</a>
</div>
</div>
</section>
<!-- Lineup Section -->
<section id="lineup" class="py-20 bg-gradient-to-b from-gray-900 to-black">
<div class="container mx-auto px-4">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">ARTIST LINEUP</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<custom-artist-card
name="Cosmic Waves"
genre="Psytrance"
image="http://static.photos/music/640x360/1"
day="Friday"
time="10:00 PM">
</custom-artist-card>
<custom-artist-card
name="Electric Dream"
genre="EDM"
image="http://static.photos/music/640x360/2"
day="Saturday"
time="11:30 PM">
</custom-artist-card>
<custom-artist-card
name="Bass Drop"
genre="Dubstep"
image="http://static.photos/music/640x360/3"
day="Friday"
time="9:00 PM">
</custom-artist-card>
<custom-artist-card
name="Neon Pulse"
genre="House"
image="http://static.photos/music/640x360/4"
day="Sunday"
time="8:00 PM">
</custom-artist-card>
<custom-artist-card
name="Solar Flare"
genre="Techno"
image="http://static.photos/music/640x360/5"
day="Saturday"
time="10:30 PM">
</custom-artist-card>
<custom-artist-card
name="Lunar Echo"
genre="Ambient"
image="http://static.photos/music/640x360/6"
day="Sunday"
time="7:00 PM">
</custom-artist-card>
</div>
</div>
</section>
<!-- Schedule Section -->
<section id="schedule" class="py-20 bg-black">
<div class="container mx-auto px-4">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">STAGE SCHEDULE</h2>
<div class="overflow-x-auto">
<table class="w-full text-left border-collapse">
<thead>
<tr class="border-b border-yellow-500">
<th class="py-4 px-6 bg-gray-900 font-bold uppercase text-yellow-400">Time</th>
<th class="py-4 px-6 bg-gray-900 font-bold uppercase text-yellow-400">Main Stage</th>
<th class="py-4 px-6 bg-gray-900 font-bold uppercase text-yellow-400">Bass Tent</th>
<th class="py-4 px-6 bg-gray-900 font-bold uppercase text-yellow-400">Chill Zone</th>
</tr>
</thead>
<tbody>
<tr class="border-b border-gray-800 hover:bg-gray-900">
<td class="py-4 px-6 font-bold">6:00 PM</td>
<td class="py-4 px-6">Opening Ceremony</td>
<td class="py-4 px-6">-</td>
<td class="py-4 px-6">Yoga Session</td>
</tr>
<tr class="border-b border-gray-800 hover:bg-gray-900">
<td class="py-4 px-6 font-bold">8:00 PM</td>
<td class="py-4 px-6">Bass Drop</td>
<td class="py-4 px-6">Subsonic</td>
<td class="py-4 px-6">Ambient Dreams</td>
</tr>
<tr class="border-b border-gray-800 hover:bg-gray-900">
<td class="py-4 px-6 font-bold">10:00 PM</td>
<td class="py-4 px-6">Cosmic Waves</td>
<td class="py-4 px-6">Digital Vortex</td>
<td class="py-4 px-6">-</td>
</tr>
<tr class="border-b border-gray-800 hover:bg-gray-900">
<td class="py-4 px-6 font-bold">12:00 AM</td>
<td class="py-4 px-6">Electric Dream</td>
<td class="py-4 px-6">Bass Mechanics</td>
<td class="py-4 px-6">Chillhop Collective</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<!-- Tickets Section -->
<section id="tickets" class="py-20 bg-gradient-to-b from-black to-gray-900">
<div class="container mx-auto px-4">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">TICKET OPTIONS</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- GA Ticket -->
<div class="bg-gray-800 rounded-lg overflow-hidden shadow-lg transform hover:scale-105 transition duration-300">
<div class="bg-yellow-500 text-black py-4 text-center">
<h3 class="text-2xl font-bold">GENERAL ADMISSION</h3>
</div>
<div class="p-6">
<p class="text-4xl font-bold mb-4 text-yellow-400">$199<span class="text-lg text-gray-400">/person</span></p>
<ul class="mb-6 space-y-2">
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> 3-Day Festival Access</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> All Stages</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Food & Drink Vendors</li>
<li class="flex items-center"><i data-feather="x" class="mr-2 text-gray-500"></i> VIP Lounge Access</li>
</ul>
<button class="w-full bg-yellow-500 hover:bg-yellow-600 text-black font-bold py-3 px-4 rounded transition duration-300">BUY NOW</button>
</div>
</div>
<!-- VIP Ticket -->
<div class="bg-gray-800 rounded-lg overflow-hidden shadow-lg transform hover:scale-105 transition duration-300 border-2 border-yellow-500">
<div class="bg-yellow-500 text-black py-4 text-center">
<h3 class="text-2xl font-bold">VIP EXPERIENCE</h3>
</div>
<div class="p-6">
<p class="text-4xl font-bold mb-4 text-yellow-400">$399<span class="text-lg text-gray-400">/person</span></p>
<ul class="mb-6 space-y-2">
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> All GA Benefits</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> VIP Lounge Access</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Premium Restrooms</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Fast Lane Entry</li>
</ul>
<button class="w-full bg-yellow-500 hover:bg-yellow-600 text-black font-bold py-3 px-4 rounded transition duration-300">BUY NOW</button>
</div>
</div>
<!-- Camping Ticket -->
<div class="bg-gray-800 rounded-lg overflow-hidden shadow-lg transform hover:scale-105 transition duration-300">
<div class="bg-yellow-500 text-black py-4 text-center">
<h3 class="text-2xl font-bold">CAMPING PACKAGE</h3>
</div>
<div class="p-6">
<p class="text-4xl font-bold mb-4 text-yellow-400">$299<span class="text-lg text-gray-400">/person</span></p>
<ul class="mb-6 space-y-2">
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> 3-Day Festival Access</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Camping Spot (10x10)</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Shower Access</li>
<li class="flex items-center"><i data-feather="check" class="mr-2 text-yellow-400"></i> Morning Yoga Sessions</li>
</ul>
<button class="w-full bg-yellow-500 hover:bg-yellow-600 text-black font-bold py-3 px-4 rounded transition duration-300">BUY NOW</button>
</div>
</div>
</div>
<div class="mt-12 text-center">
<p class="text-yellow-400 font-bold">Early Bird Special: 20% off until May 1st!</p>
</div>
</div>
</section>
<!-- Gallery Section -->
<section id="gallery" class="py-20 bg-black">
<div class="container mx-auto px-4">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">MEMORIES FROM PAST YEARS</h2>
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<img src="http://static.photos/music/320x240/1" alt="Festival crowd" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/2" alt="Main stage" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/3" alt="DJ performing" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/4" alt="Camping area" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/5" alt="Light show" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/6" alt="Food vendors" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/7" alt="Sunset view" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
<img src="http://static.photos/music/320x240/8" alt="Art installation" class="w-full h-48 object-cover rounded hover:scale-105 transition duration-300">
</div>
</div>
</section>
<!-- Map Section -->
<section id="map" class="py-20 bg-gradient-to-b from-gray-900 to-black">
<div class="container mx-auto px-4">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">VENUE MAP</h2>
<div class="bg-gray-800 p-4 rounded-lg shadow-lg">
<div id="festival-map" class="w-full h-96 rounded-lg z-0"></div>
<div class="mt-6 grid grid-cols-1 md:grid-cols-3 gap-4">
<div class="flex items-start">
<div class="bg-yellow-500 p-2 rounded-full mr-3 mt-1">
<i data-feather="map-pin" class="text-black"></i>
</div>
<div>
<h4 class="font-bold text-yellow-400">Main Stage</h4>
<p class="text-gray-400">Center of the festival grounds with the largest production</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-yellow-500 p-2 rounded-full mr-3 mt-1">
<i data-feather="map-pin" class="text-black"></i>
</div>
<div>
<h4 class="font-bold text-yellow-400">Bass Tent</h4>
<p class="text-gray-400">Covered area with heavy bass and underground sounds</p>
</div>
</div>
<div class="flex items-start">
<div class="bg-yellow-500 p-2 rounded-full mr-3 mt-1">
<i data-feather="map-pin" class="text-black"></i>
</div>
<div>
<h4 class="font-bold text-yellow-400">Camping Area</h4>
<p class="text-gray-400">Designated spots with showers and amenities</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- FAQ Section -->
<section id="faq" class="py-20 bg-black">
<div class="container mx-auto px-4 max-w-4xl">
<h2 class="text-4xl font-bold text-center mb-16 text-yellow-400">FREQUENTLY ASKED QUESTIONS</h2>
<div class="space-y-4">
<div class="border-b border-gray-800 pb-4">
<button class="flex justify-between items-center w-full text-left font-bold text-lg hover:text-yellow-400 transition duration-300">
<span>What are the festival dates and hours?</span>
<i data-feather="chevron-down" class="text-yellow-400"></i>
</button>
<div class="mt-2 text-gray-400">
The festival runs from July 15-17, 2023. Gates open at 4:00 PM each day and music ends at 2:00 AM. Campgrounds open at 12:00 PM on Friday.
</div>
</div>
<div class="border-b border-gray-800 pb-4">
<button class="flex justify-between items-center w-full text-left font-bold text-lg hover:text-yellow-400 transition duration-300">
<span>What items are allowed/prohibited?</span>
<i data-feather="chevron-down" class="text-yellow-400"></i>
</button>
<div class="mt-2 text-gray-400">
Allowed: Small bags, empty water bottles, sunscreen. Prohibited: Glass containers, weapons, illegal substances. See full list on our website.
</div>
</div>
<div class="border-b border-gray-800 pb-4">
<button class="flex justify-between items-center w-full text-left font-bold text-lg hover:text-yellow-400 transition duration-300">
<span>Is there parking available?</span>
<i data-feather="chevron-down" class="text-yellow-400"></i>
</button>
<div class="mt-2 text-gray-400">
Yes, general parking is available for $20 per day. VIP parking is included with VIP tickets. We encourage carpooling!
</div>
</div>
<div class="border-b border-gray-800 pb-4">
<button class="flex justify-between items-center w-full text-left font-bold text-lg hover:text-yellow-400 transition duration-300">
<span>What camping amenities are provided?</span>
<i data-feather="chevron-down" class="text-yellow-400"></i>
</button>
<div class="mt-2 text-gray-400">
Camping includes access to showers, portable toilets, water stations, and a general store. Bring your own tent and sleeping gear.
</div>
</div>
<div class="border-b border-gray-800 pb-4">
<button class="flex justify-between items-center w-full text-left font-bold text-lg hover:text-yellow-400 transition duration-300">
<span>Are refunds available?</span>
<i data-feather="chevron-down" class="text-yellow-400"></i>
</button>
<div class="mt-2 text-gray-400">
All ticket sales are final. However, you may transfer your ticket to someone else through our official transfer system.
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="py-20 bg-gradient-to-r from-yellow-600 to-yellow-500">
<div class="container mx-auto px-4 text-center">
<h2 class="text-4xl font-bold mb-6 text-black">READY TO EXPERIENCE SONIC BLOOM?</h2>
<p class="text-xl mb-8 text-black">Join thousands of music lovers for an unforgettable weekend</p>
<a href="#tickets" class="bg-black hover:bg-gray-900 text-yellow-500 font-bold py-4 px-12 rounded-full text-lg transition duration-300 inline-block">GET YOUR TICKETS NOW</a>
</div>
</section>
<custom-footer></custom-footer>
<!-- Leaflet CSS -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
crossorigin=""/>
<!-- Leaflet JS -->
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
crossorigin=""></script>
<script>
feather.replace();
// Initialize the map
document.addEventListener('DOMContentLoaded', function() {
const map = L.map('festival-map').setView([40.7128, -74.0060], 15);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
maxZoom: 18,
}).addTo(map);
// Add markers for festival locations
const mainStage = L.marker([40.7128, -74.0060]).addTo(map)
.bindPopup("<b>Main Stage</b><br>Center of the festival");
const bassTent = L.marker([40.7135, -74.0055]).addTo(map)
.bindPopup("<b>Bass Tent</b><br>Heavy bass area");
const camping = L.marker([40.7120, -74.0070]).addTo(map)
.bindPopup("<b>Camping Area</b><br>Tents and amenities");
// Add a circle to show festival grounds
L.circle([40.7128, -74.0060], {
color: '#f59e0b',
fillColor: '#f59e0b',
fillOpacity: 0.2,
radius: 200
}).addTo(map).bindPopup("Festival Grounds");
});
// FAQ accordion functionality
document.querySelectorAll('#faq button').forEach(button => {
button.addEventListener('click', () => {
const content = button.nextElementSibling;
const icon = button.querySelector('i');
if (content.style.maxHeight) {
content.style.maxHeight = null;
icon.setAttribute('data-feather', 'chevron-down');
} else {
content.style.maxHeight = content.scrollHeight + 'px';
icon.setAttribute('data-feather', 'chevron-up');
}
feather.replace();
});
});
</script>
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
</body>
</html>