awifi-place / index.html
bibbler's picture
Add 2 files
f161618 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>aWiFi - Find Free WiFi Spots</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">
<style>
.map-container {
height: 500px;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
position: relative;
overflow: hidden;
}
.wifi-spot {
position: absolute;
width: 16px;
height: 16px;
background-color: #3b82f6;
border-radius: 50%;
border: 2px solid white;
cursor: pointer;
transition: all 0.3s ease;
}
.wifi-spot:hover {
transform: scale(1.5);
background-color: #2563eb;
}
.wifi-spot.active {
transform: scale(1.5);
background-color: #1d4ed8;
box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3);
}
.pulse {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
}
70% {
transform: scale(1);
box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
}
100% {
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
}
}
.search-container {
position: relative;
}
.search-icon {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
}
.search-input {
padding-left: 40px;
}
</style>
</head>
<body class="bg-gray-50 font-sans">
<header class="bg-white shadow-sm">
<div class="container mx-auto px-4 py-4 flex justify-between items-center">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-blue-500 flex items-center justify-center text-white font-bold mr-3">
aW
</div>
<h1 class="text-xl font-bold text-gray-800">aWiFi</h1>
</div>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-blue-500 font-medium">Map</a>
<a href="#" class="text-gray-600 hover:text-blue-500">Add Spot</a>
<a href="#" class="text-gray-600 hover:text-blue-500">About</a>
<a href="#" class="text-gray-600 hover:text-blue-500">Contact</a>
</nav>
<div class="flex items-center space-x-4">
<button class="hidden md:block px-4 py-2 text-blue-500 border border-blue-500 rounded-md hover:bg-blue-50">
Sign In
</button>
<button class="px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600">
Sign Up
</button>
<button class="md:hidden text-gray-600">
<i class="fas fa-bars text-xl"></i>
</button>
</div>
</div>
</header>
<main class="container mx-auto px-4 py-8">
<div class="mb-8 text-center">
<h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Find Free WiFi Spots Near You</h2>
<p class="text-lg text-gray-600 max-w-2xl mx-auto">
Discover and share free WiFi hotspots around the world. Connect anywhere, anytime.
</p>
</div>
<div class="search-container mb-8 max-w-2xl mx-auto">
<div class="search-icon text-gray-400">
<i class="fas fa-search"></i>
</div>
<input type="text" placeholder="Search for locations, cafes, or addresses..."
class="search-input w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
</div>
<div class="bg-white rounded-xl shadow-md overflow-hidden mb-8">
<div class="map-container" id="map">
<!-- WiFi spots will be added dynamically -->
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-12">
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow">
<div class="w-12 h-12 bg-blue-100 rounded-full flex items-center justify-center text-blue-500 mb-4">
<i class="fas fa-wifi text-xl"></i>
</div>
<h3 class="text-xl font-semibold mb-2">Find WiFi</h3>
<p class="text-gray-600">Discover thousands of free WiFi spots around you with detailed information about speed and reliability.</p>
</div>
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow">
<div class="w-12 h-12 bg-green-100 rounded-full flex items-center justify-center text-green-500 mb-4">
<i class="fas fa-plus text-xl"></i>
</div>
<h3 class="text-xl font-semibold mb-2">Add Spots</h3>
<p class="text-gray-600">Contribute to the community by adding new WiFi spots you discover in your travels.</p>
</div>
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow">
<div class="w-12 h-12 bg-purple-100 rounded-full flex items-center justify-center text-purple-500 mb-4">
<i class="fas fa-heart text-xl"></i>
</div>
<h3 class="text-xl font-semibold mb-2">Save Favorites</h3>
<p class="text-gray-600">Bookmark your favorite spots for quick access when you need them most.</p>
</div>
</div>
<div class="bg-blue-50 rounded-xl p-8 md:p-12 mb-12">
<div class="max-w-3xl mx-auto text-center">
<h2 class="text-2xl md:text-3xl font-bold text-gray-800 mb-4">Join Our Community</h2>
<p class="text-lg text-gray-600 mb-6">
Be part of a global community helping people stay connected. Share WiFi spots, rate connections, and help others find the best places to work remotely.
</p>
<button class="px-6 py-3 bg-blue-500 text-white rounded-lg hover:bg-blue-600 font-medium">
Sign Up Now
</button>
</div>
</div>
</main>
<footer class="bg-gray-800 text-white py-12">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
<div>
<div class="flex items-center mb-4">
<div class="w-10 h-10 rounded-full bg-blue-500 flex items-center justify-center text-white font-bold mr-3">
aW
</div>
<h3 class="text-xl font-bold">aWiFi</h3>
</div>
<p class="text-gray-400">
Connecting people to free WiFi spots around the world since 2023.
</p>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Explore</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Map</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Popular Spots</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Cities</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Categories</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Community</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Guidelines</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Contributors</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Blog</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Forum</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Company</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">About Us</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Careers</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Privacy</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Terms</a></li>
</ul>
</div>
</div>
<div class="pt-8 border-t border-gray-700 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-400 mb-4 md:mb-0">
© 2023 aWiFi. All rights reserved.
</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-twitter text-xl"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-instagram text-xl"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-facebook text-xl"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white">
<i class="fab fa-github text-xl"></i>
</a>
</div>
</div>
</div>
</footer>
<div id="spot-details" class="fixed bottom-0 left-0 right-0 bg-white shadow-lg rounded-t-xl transform translate-y-full transition-transform duration-300 z-10 max-w-2xl mx-auto">
<div class="p-6">
<div class="flex justify-between items-start mb-4">
<div>
<h3 class="text-xl font-bold">Starbucks Downtown</h3>
<p class="text-gray-600">123 Main Street, New York</p>
</div>
<button id="close-details" class="text-gray-400 hover:text-gray-600">
<i class="fas fa-times"></i>
</button>
</div>
<div class="flex items-center mb-4">
<div class="flex items-center mr-4">
<i class="fas fa-wifi text-blue-500 mr-2"></i>
<span>Fast (25 Mbps)</span>
</div>
<div class="flex items-center mr-4">
<i class="fas fa-coffee text-orange-500 mr-2"></i>
<span>Cafe</span>
</div>
<div class="flex items-center">
<i class="fas fa-star text-yellow-500 mr-2"></i>
<span>4.8 (124)</span>
</div>
</div>
<p class="text-gray-700 mb-4">
Free WiFi for customers. Password changes monthly and is displayed at the counter. Great place to work with plenty of outlets.
</p>
<div class="flex space-x-3">
<button class="px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 flex items-center">
<i class="fas fa-directions mr-2"></i> Directions
</button>
<button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 flex items-center">
<i class="fas fa-heart mr-2 text-red-500"></i> Save
</button>
<button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 flex items-center">
<i class="fas fa-share-alt mr-2"></i> Share
</button>
</div>
</div>
</div>
<script>
// Generate random WiFi spots on the map
const map = document.getElementById('map');
const spotDetails = document.getElementById('spot-details');
const closeDetails = document.getElementById('close-details');
// Create 20 random WiFi spots
for (let i = 0; i < 20; i++) {
const spot = document.createElement('div');
spot.className = 'wifi-spot';
// Random position within the map container
const x = Math.random() * 90 + 5; // 5-95%
const y = Math.random() * 90 + 5; // 5-95%
spot.style.left = `${x}%`;
spot.style.top = `${y}%`;
// Add pulse animation to some spots
if (Math.random() > 0.7) {
spot.classList.add('pulse');
}
// Add click event to show details
spot.addEventListener('click', function(e) {
e.stopPropagation();
// Remove active class from all spots
document.querySelectorAll('.wifi-spot').forEach(s => {
s.classList.remove('active');
});
// Add active class to clicked spot
this.classList.add('active');
// Show details panel
spotDetails.classList.remove('translate-y-full');
});
map.appendChild(spot);
}
// Close details when clicking the close button
closeDetails.addEventListener('click', function() {
spotDetails.classList.add('translate-y-full');
document.querySelectorAll('.wifi-spot').forEach(s => {
s.classList.remove('active');
});
});
// Close details when clicking outside
document.addEventListener('click', function() {
spotDetails.classList.add('translate-y-full');
document.querySelectorAll('.wifi-spot').forEach(s => {
s.classList.remove('active');
});
});
// Prevent details panel from closing when clicking inside it
spotDetails.addEventListener('click', function(e) {
e.stopPropagation();
});
// Mobile menu toggle (placeholder functionality)
document.querySelector('.md\\:hidden').addEventListener('click', function() {
alert('Mobile menu would open here');
});
</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=bibbler/awifi-place" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>