test / index.html
mpuff77's picture
Add 2 files
2d613c9 verified
Raw
History Blame Contribute Delete
31.3 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Airbnb Clone | Vacation Rentals, Cabins, Beach Houses & More</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>
@import url('https://fonts.googleapis.com/css2?family=Cereal:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Cereal', -apple-system, BlinkMacSystemFont, sans-serif;
color: #222222;
}
.hero-search {
background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('https://images.unsplash.com/photo-1566073771259-6a8506099945') center/cover;
}
.category-item:hover {
border-bottom: 2px solid #717171;
}
.category-item.active {
border-bottom: 2px solid black;
}
.listing-card:hover {
transform: scale(1.02);
}
.map-button {
box-shadow: 0 0 0 1px rgba(0,0,0,0.04), 0 8px 16px rgba(0,0,0,0.15);
}
.search-bar {
box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05);
}
.filter-button:hover {
border: 1px solid #222222;
}
.heart-icon:hover {
transform: scale(1.2);
}
.footer-link:hover {
text-decoration: underline;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.modal {
animation: fadeIn 0.3s ease-in-out;
}
</style>
</head>
<body>
<!-- Header/Navigation -->
<header class="sticky top-0 z-50 bg-white border-b border-gray-200">
<div class="container mx-auto px-4 py-4">
<div class="flex items-center justify-between">
<!-- Logo -->
<div class="flex items-center">
<i class="fab fa-airbnb text-red-500 text-3xl mr-2"></i>
<span class="text-red-500 font-bold text-xl hidden md:block">airbnb</span>
</div>
<!-- Search Bar -->
<div class="hidden md:flex flex-1 mx-8">
<div class="search-bar flex items-center border border-gray-300 rounded-full py-2 px-4 w-full max-w-md">
<button class="font-medium text-sm px-3">Anywhere</button>
<span class="border-l border-gray-300 h-5"></span>
<button class="font-medium text-sm px-3">Any week</button>
<span class="border-l border-gray-300 h-5"></span>
<button class="text-gray-500 text-sm px-3">Add guests</button>
<button class="bg-red-500 p-2 rounded-full ml-auto">
<i class="fas fa-search text-white text-xs"></i>
</button>
</div>
</div>
<!-- User Menu -->
<div class="flex items-center space-x-4">
<button class="hidden md:block text-sm font-medium">Become a Host</button>
<div class="flex items-center space-x-2 border border-gray-300 rounded-full py-1 px-3 hover:shadow-md transition cursor-pointer">
<i class="fas fa-bars text-gray-600"></i>
<i class="fas fa-user-circle text-gray-600 text-xl"></i>
</div>
</div>
</div>
<!-- Mobile Search -->
<div class="md:hidden mt-4">
<div class="search-bar flex items-center border border-gray-300 rounded-full py-2 px-4 w-full">
<i class="fas fa-search text-gray-500 mr-2"></i>
<div class="flex flex-col">
<span class="font-medium text-sm">Anywhere</span>
<span class="text-xs text-gray-500">Any week · Add guests</span>
</div>
<button class="ml-auto border border-gray-300 rounded-full p-1">
<i class="fas fa-sliders-h text-gray-600 text-xs"></i>
</button>
</div>
</div>
</div>
</header>
<!-- Categories -->
<div class="container mx-auto px-4 py-4 border-b border-gray-200 overflow-x-auto">
<div class="flex space-x-8 min-w-max">
<div class="category-item active flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-igloo text-gray-500 mb-1"></i>
<span class="text-xs">Rooms</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-umbrella-beach text-gray-500 mb-1"></i>
<span class="text-xs">Beach</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-home text-gray-500 mb-1"></i>
<span class="text-xs">Tiny homes</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-tree text-gray-500 mb-1"></i>
<span class="text-xs">Countryside</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-building text-gray-500 mb-1"></i>
<span class="text-xs">Mansions</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-water text-gray-500 mb-1"></i>
<span class="text-xs">Lakefront</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-snowflake text-gray-500 mb-1"></i>
<span class="text-xs">Arctic</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-campground text-gray-500 mb-1"></i>
<span class="text-xs">Camping</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-swimming-pool text-gray-500 mb-1"></i>
<span class="text-xs">Amazing pools</span>
</div>
<div class="category-item flex flex-col items-center pb-2 cursor-pointer">
<i class="fas fa-chess-rook text-gray-500 mb-1"></i>
<span class="text-xs">Castles</span>
</div>
</div>
</div>
<!-- Filters -->
<div class="container mx-auto px-4 py-4">
<div class="flex items-center space-x-4 overflow-x-auto pb-2">
<button class="filter-button flex items-center border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
<i class="fas fa-sliders-h text-gray-600 mr-2"></i>
Filters
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Price
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Type of place
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Free cancellation
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Instant Book
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Wifi
</button>
<button class="filter-button border border-gray-300 rounded-full px-4 py-2 text-sm whitespace-nowrap">
Washer
</button>
</div>
</div>
<!-- Listings Grid -->
<main class="container mx-auto px-4 py-6">
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6">
<!-- Listing 1 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1564013799919-ab600027ffc6" alt="Modern house" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Modern house in downtown</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.92</span>
</div>
</div>
<p class="text-gray-500 text-sm">1,234 miles away</p>
<p class="text-gray-500 text-sm">Nov 12-17</p>
<p class="mt-1 text-sm"><span class="font-semibold">$120</span> night</p>
</div>
</div>
<!-- Listing 2 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1580587771525-78b9dba3b914" alt="Cabin" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Cozy mountain cabin</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.85</span>
</div>
</div>
<p class="text-gray-500 text-sm">567 miles away</p>
<p class="text-gray-500 text-sm">Dec 5-10</p>
<p class="mt-1 text-sm"><span class="font-semibold">$95</span> night</p>
</div>
</div>
<!-- Listing 3 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1522708323590-d24dbb6b0267" alt="Apartment" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Luxury apartment with view</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.98</span>
</div>
</div>
<p class="text-gray-500 text-sm">890 miles away</p>
<p class="text-gray-500 text-sm">Jan 15-20</p>
<p class="mt-1 text-sm"><span class="font-semibold">$210</span> night</p>
</div>
</div>
<!-- Listing 4 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1493809842364-78817add7ffb" alt="Beach house" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Beachfront villa</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.79</span>
</div>
</div>
<p class="text-gray-500 text-sm">1,500 miles away</p>
<p class="text-gray-500 text-sm">Feb 3-8</p>
<p class="mt-1 text-sm"><span class="font-semibold">$175</span> night</p>
</div>
</div>
<!-- Listing 5 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1512917774080-9991f1c4c750" alt="Modern home" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Minimalist designer home</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.91</span>
</div>
</div>
<p class="text-gray-500 text-sm">2,100 miles away</p>
<p class="text-gray-500 text-sm">Mar 10-15</p>
<p class="mt-1 text-sm"><span class="font-semibold">$195</span> night</p>
</div>
</div>
<!-- Listing 6 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1502672260266-1c1ef2d93688" alt="Country house" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Charming country house</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.87</span>
</div>
</div>
<p class="text-gray-500 text-sm">340 miles away</p>
<p class="text-gray-500 text-sm">Apr 22-27</p>
<p class="mt-1 text-sm"><span class="font-semibold">$135</span> night</p>
</div>
</div>
<!-- Listing 7 -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1484154218962-a197022b5858" alt="Kitchen" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Stylish loft with great kitchen</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.95</span>
</div>
</div>
<p class="text-gray-500 text-sm">780 miles away</p>
<p class="text-gray-500 text-sm">May 7-12</p>
<p class="mt-1 text-sm"><span class="font-semibold">$165</span> night</p>
</div>
</div>
<!-- Listing 8 - Fixed Lake House Image -->
<div class="listing-card rounded-xl overflow-hidden transition duration-300 cursor-pointer">
<div class="relative">
<img src="https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1" alt="Lake house" class="w-full h-64 object-cover rounded-xl">
<button class="heart-icon absolute top-3 right-3 text-white text-2xl transition">
<i class="far fa-heart"></i>
</button>
</div>
<div class="mt-3">
<div class="flex justify-between">
<h3 class="font-semibold">Lakefront retreat</h3>
<div class="flex items-center">
<i class="fas fa-star text-xs"></i>
<span class="ml-1 text-sm">4.82</span>
</div>
</div>
<p class="text-gray-500 text-sm">1,020 miles away</p>
<p class="text-gray-500 text-sm">Jun 18-23</p>
<p class="mt-1 text-sm"><span class="font-semibold">$155</span> night</p>
</div>
</div>
</div>
<!-- Show Map Button -->
<div class="flex justify-center mt-8">
<button class="map-button flex items-center bg-black text-white rounded-full px-5 py-3 font-medium">
<i class="fas fa-map-marked-alt mr-2"></i>
Show map
</button>
</div>
</main>
<!-- Footer -->
<footer class="bg-gray-100 border-t border-gray-200 mt-12">
<div class="container mx-auto px-4 py-8">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h4 class="font-bold mb-4">Support</h4>
<ul class="space-y-3">
<li><a href="#" class="footer-link text-sm text-gray-600">Help Center</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">AirCover</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Safety information</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Supporting people with disabilities</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Cancellation options</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Community</h4>
<ul class="space-y-3">
<li><a href="#" class="footer-link text-sm text-gray-600">Airbnb.org: disaster relief housing</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Combating discrimination</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Hosting</h4>
<ul class="space-y-3">
<li><a href="#" class="footer-link text-sm text-gray-600">Airbnb your home</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">AirCover for Hosts</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Hosting resources</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Community forum</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Airbnb</h4>
<ul class="space-y-3">
<li><a href="#" class="footer-link text-sm text-gray-600">Newsroom</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">New features</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Careers</a></li>
<li><a href="#" class="footer-link text-sm text-gray-600">Investors</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-300 mt-8 pt-8">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="flex items-center space-x-4 mb-4 md:mb-0">
<span class="text-sm">© 2023 Airbnb, Inc.</span>
<span class="hidden md:block">·</span>
<a href="#" class="footer-link text-sm">Privacy</a>
<span class="hidden md:block">·</span>
<a href="#" class="footer-link text-sm">Terms</a>
<span class="hidden md:block">·</span>
<a href="#" class="footer-link text-sm">Sitemap</a>
</div>
<div class="flex items-center space-x-6">
<div class="flex items-center">
<i class="fas fa-globe mr-2"></i>
<span class="font-medium text-sm">English (US)</span>
</div>
<div class="flex items-center">
<i class="fas fa-dollar-sign mr-2"></i>
<span class="font-medium text-sm">USD</span>
</div>
<div class="flex space-x-4">
<a href="#"><i class="fab fa-facebook-f"></i></a>
<a href="#"><i class="fab fa-twitter"></i></a>
<a href="#"><i class="fab fa-instagram"></i></a>
</div>
</div>
</div>
</div>
</div>
</footer>
<!-- Mobile Bottom Navigation -->
<div class="md:hidden fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 py-3 px-6 flex justify-around">
<a href="#" class="flex flex-col items-center text-gray-600">
<i class="fas fa-search"></i>
<span class="text-xs mt-1">Explore</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-600">
<i class="far fa-heart"></i>
<span class="text-xs mt-1">Wishlists</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-600">
<i class="fas fa-plane"></i>
<span class="text-xs mt-1">Trips</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-600">
<i class="fas fa-inbox"></i>
<span class="text-xs mt-1">Inbox</span>
</a>
<a href="#" class="flex flex-col items-center text-gray-600">
<i class="fas fa-user"></i>
<span class="text-xs mt-1">Profile</span>
</a>
</div>
<!-- Search Modal -->
<div id="searchModal" class="fixed inset-0 bg-white z-50 hidden modal">
<div class="container mx-auto px-4 py-6">
<div class="flex items-center justify-between mb-6">
<button id="closeSearch" class="p-2 rounded-full hover:bg-gray-100">
<i class="fas fa-times text-xl"></i>
</button>
<div class="flex-1 max-w-md mx-4">
<div class="search-bar flex items-center border border-gray-300 rounded-full py-3 px-4 w-full shadow-sm">
<i class="fas fa-search text-gray-500 mr-2"></i>
<div class="flex flex-col">
<span class="font-medium text-sm">Anywhere</span>
<span class="text-xs text-gray-500">Any week · Add guests</span>
</div>
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="border border-gray-300 rounded-xl p-4 cursor-pointer hover:border-black">
<h3 class="font-bold mb-2">Where to?</h3>
<p class="text-gray-500 text-sm">Search destinations</p>
</div>
<div class="border border-gray-300 rounded-xl p-4 cursor-pointer hover:border-black">
<h3 class="font-bold mb-2">Check in</h3>
<p class="text-gray-500 text-sm">Add dates</p>
</div>
<div class="border border-gray-300 rounded-xl p-4 cursor-pointer hover:border-black">
<h3 class="font-bold mb-2">Check out</h3>
<p class="text-gray-500 text-sm">Add dates</p>
</div>
</div>
<div class="mt-8">
<h3 class="font-bold mb-4">Filter by property type</h3>
<div class="grid grid-cols-3 md:grid-cols-5 gap-4">
<div class="flex flex-col items-center cursor-pointer">
<div class="w-16 h-16 rounded-full bg-gray-100 flex items-center justify-center mb-2">
<i class="fas fa-home text-xl"></i>
</div>
<span class="text-xs">Houses</span>
</div>
<div class="flex flex-col items-center cursor-pointer">
<div class="w-16 h-16 rounded-full bg-gray-100 flex items-center justify-center mb-2">
<i class="fas fa-building text-xl"></i>
</div>
<span class="text-xs">Apartments</span>
</div>
<div class="flex flex-col items-center cursor-pointer">
<div class="w-16 h-16 rounded-full bg-gray-100 flex items-center justify-center mb-2">
<i class="fas fa-umbrella-beach text-xl"></i>
</div>
<span class="text-xs">Beachfront</span>
</div>
<div class="flex flex-col items-center cursor-pointer">
<div class="w-16 h-16 rounded-full bg-gray-100 flex items-center justify-center mb-2">
<i class="fas fa-tree text-xl"></i>
</div>
<span class="text-xs">Cabins</span>
</div>
<div class="flex flex-col items-center cursor-pointer">
<div class="w-16 h-16 rounded-full bg-gray-100 flex items-center justify-center mb-2">
<i class="fas fa-water text-xl"></i>
</div>
<span class="text-xs">Lakefront</span>
</div>
</div>
</div>
<div class="mt-8">
<button class="bg-black text-white rounded-lg px-6 py-3 font-medium">
Show results
</button>
</div>
</div>
</div>
<script>
// Toggle search modal
document.addEventListener('DOMContentLoaded', function() {
const searchBar = document.querySelector('.search-bar');
const searchModal = document.getElementById('searchModal');
const closeSearch = document.getElementById('closeSearch');
// Mobile search bar click
if (window.innerWidth < 768) {
searchBar.addEventListener('click', function() {
searchModal.classList.remove('hidden');
});
}
// Close modal
closeSearch.addEventListener('click', function() {
searchModal.classList.add('hidden');
});
// Category selection
const categories = document.querySelectorAll('.category-item');
categories.forEach(category => {
category.addEventListener('click', function() {
categories.forEach(c => c.classList.remove('active'));
this.classList.add('active');
});
});
// Heart icon toggle
const heartIcons = document.querySelectorAll('.heart-icon');
heartIcons.forEach(icon => {
icon.addEventListener('click', function(e) {
e.stopPropagation();
const heart = this.querySelector('i');
if (heart.classList.contains('far')) {
heart.classList.remove('far');
heart.classList.add('fas', 'text-red-500');
} else {
heart.classList.remove('fas', 'text-red-500');
heart.classList.add('far');
}
});
});
// Listing card click
const listingCards = document.querySelectorAll('.listing-card');
listingCards.forEach(card => {
card.addEventListener('click', function() {
alert('Listing details would show here in a real app');
});
});
});
</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=mpuff77/test" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>