|
|
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Dale's Detailing - Gallery</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=Poppins:wght@300;400;500;600;700&display=swap'); |
| |
| body { |
| font-family: 'Poppins', sans-serif; |
| background-color: #f8f8f8; |
| } |
| |
| .gallery-item { |
| transition: all 0.3s ease; |
| } |
| |
| .gallery-item:hover { |
| transform: scale(1.02); |
| } |
| </style> |
| </head> |
| <body class="bg-gray-100"> |
| <div class="max-w-md mx-auto bg-white min-h-screen shadow-xl overflow-hidden relative"> |
| |
| <header class="bg-black text-white p-4 flex items-center justify-between sticky top-0 z-10"> |
| <div class="flex items-center space-x-2"> |
| <div class="w-10 h-10 bg-orange-500 rounded-full flex items-center justify-center"> |
| <i class="fas fa-car text-xl"></i> |
| </div> |
| <h1 class="text-xl font-bold">DALE'S GALLERY</h1> |
| </div> |
| <button class="bg-orange-500 text-white px-3 py-1 rounded-full text-sm"> |
| <i class="fas fa-plus mr-1"></i> Add |
| </button> |
| </header> |
| |
| |
| <main class="pb-20 p-4"> |
| <div class="grid grid-cols-2 gap-4"> |
| |
| <div class="gallery-item bg-gray-200 h-40 rounded-lg overflow-hidden relative"> |
| <input type="file" accept="image/*" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"> |
| <div class="w-full h-full flex items-center justify-center"> |
| <i class="fas fa-plus text-gray-400 text-2xl"></i> |
| </div> |
| </div> |
| <div class="gallery-item bg-gray-200 h-40 rounded-lg flex items-center justify-center"> |
| <i class="fas fa-plus text-gray-400 text-2xl"></i> |
| </div> |
| <div class="gallery-item bg-gray-200 h-40 rounded-lg flex items-center justify-center"> |
| <i class="fas fa-plus text-gray-400 text-2xl"></i> |
| </div> |
| <div class="gallery-item bg-gray-200 h-40 rounded-lg flex items-center justify-center"> |
| <i class="fas fa-plus text-gray-400 text-2xl"></i> |
| </div> |
| </div> |
| </main> |
| |
| |
| <footer class="fixed bottom-0 w-full max-w-md bg-white border-t border-gray-200 flex justify-around py-3"> |
| <a href="index.html" class="text-center text-gray-500"> |
| <i class="fas fa-home block text-xl"></i> |
| <span class="text-xs mt-1">Home</span> |
| </a> |
| <a href="#" class="text-center text-orange-500"> |
| <i class="fas fa-images block text-xl"></i> |
| <span class="text-xs mt-1">Gallery</span> |
| </a> |
| <a href="#" class="text-center text-gray-500"> |
| <i class="fas fa-map-marker-alt block text-xl"></i> |
| <span class="text-xs mt-1">Locations</span> |
| </a> |
| <a href="#" class="text-center text-gray-500"> |
| <i class="fas fa-user block text-xl"></i> |
| <span class="text-xs mt-1">Profile</span> |
| </a> |
| </footer> |
| </div> |
|
|
| <script> |
| document.addEventListener('DOMContentLoaded', function() { |
| |
| const addButtons = document.querySelectorAll('.gallery-item'); |
| const headerAddButton = document.querySelector('header button'); |
| |
| function addPhoto() { |
| const newPhoto = document.createElement('div'); |
| newPhoto.className = 'gallery-item bg-gray-200 h-40 rounded-lg overflow-hidden relative'; |
| newPhoto.innerHTML = ` |
| <input type="file" accept="image/*" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"> |
| <div class="w-full h-full flex items-center justify-center"> |
| <i class="fas fa-plus text-gray-400 text-2xl"></i> |
| </div> |
| `; |
| |
| |
| const galleryGrid = document.querySelector('.grid'); |
| galleryGrid.appendChild(newPhoto); |
| |
| |
| newPhoto.addEventListener('click', addPhoto); |
| } |
| |
| addButtons.forEach(button => { |
| button.addEventListener('click', addPhoto); |
| }); |
| |
| headerAddButton.addEventListener('click', addPhoto); |
| |
| |
| document.addEventListener('change', function(e) { |
| if (e.target.matches('input[type="file"]')) { |
| const file = e.target.files[0]; |
| if (file) { |
| const reader = new FileReader(); |
| reader.onload = function(event) { |
| const parent = e.target.parentElement; |
| parent.innerHTML = ` |
| <img src="${event.target.result}" class="w-full h-full object-cover"> |
| <input type="file" accept="image/*" class="absolute inset-0 w-full h-full opacity-0 cursor-pointer"> |
| `; |
| }; |
| reader.readAsDataURL(file); |
| } |
| } |
| }); |
| }); |
| </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=leon325/dales" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |
|
|
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Dale's Detailing - Premium Car Care</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=Poppins:wght@300;400;500;600;700&display=swap'); |
| |
| body { |
| font-family: 'Poppins', sans-serif; |
| background-color: #f8f8f8; |
| } |
| |
| .service-card:hover { |
| transform: translateY(-5px); |
| box-shadow: 0 10px 20px rgba(0,0,0,0.1); |
| } |
| |
| .nav-item.active { |
| color: #FF6B00; |
| border-bottom: 3px solid #FF6B00; |
| } |
| |
| .booking-step.active { |
| background-color: #FF6B00; |
| color: white; |
| } |
| |
| .swiper-slide { |
| transition: all 0.3s ease; |
| } |
| |
| .swiper-slide:hover { |
| transform: scale(1.02); |
| } |
| </style> |
| </head> |
| <body class="bg-gray-100"> |
| |
| <div class="max-w-md mx-auto bg-white min-h-screen shadow-xl overflow-hidden relative"> |
| |
| <header class="bg-black text-white p-4 flex items-center justify-between sticky top-0 z-10"> |
| <div class="flex items-center space-x-2"> |
| <div class="w-10 h-10 bg-orange-500 rounded-full flex items-center justify-center"> |
| <i class="fas fa-car text-xl"></i> |
| </div> |
| <h1 class="text-xl font-bold">DALE'S</h1> |
| </div> |
| <div class="flex items-center space-x-4"> |
| <button class="text-orange-500"> |
| <i class="fas fa-bell text-xl"></i> |
| </button> |
| <button class="w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center"> |
| <i class="fas fa-user text-sm"></i> |
| </button> |
| </div> |
| </header> |
| |
| |
| <main class="pb-20"> |
| |
| <section class="relative h-48 bg-black overflow-hidden"> |
| <div class="absolute inset-0 bg-gradient-to-r from-black to-transparent z-10"></div> |
| <img src="https://images.unsplash.com/photo-1494972308805-463d61949c46?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1473&q=80" |
| alt="Premium Car Detailing" class="w-full h-full object-cover opacity-70"> |
| <div class="absolute bottom-4 left-4 z-20 text-white"> |
| <h2 class="text-2xl font-bold">Premium Detailing</h2> |
| <p class="text-sm">Bringing back that showroom shine</p> |
| <button class="mt-2 bg-orange-500 text-white px-4 py-2 rounded-full text-sm font-medium"> |
| Book Now |
| </button> |
| </div> |
| </section> |
| |
| |
| <nav class="flex justify-around border-b border-gray-200 py-3 sticky top-16 bg-white z-10"> |
| <a href="#" class="nav-item active px-4 py-2 text-sm font-medium">Services</a> |
| <a href="gallery.html" class="nav-item px-4 py-2 text-sm font-medium">Gallery</a> |
| <a href="#" class="nav-item px-4 py-2 text-sm font-medium">Locations</a> |
| </nav> |
| |
| |
| <section class="p-4"> |
| <h3 class="text-lg font-bold mb-4">Our Services</h3> |
| |
| <div class="grid grid-cols-2 gap-4"> |
| |
| <div class="service-card bg-white rounded-xl shadow-md overflow-hidden transition-all duration-300"> |
| <div class="h-24 bg-gray-800 flex items-center justify-center"> |
| <i class="fas fa-spray-can text-orange-500 text-3xl"></i> |
| </div> |
| <div class="p-3"> |
| <h4 class="font-semibold text-sm">Exterior Wash</h4> |
| <p class="text-xs text-gray-500 mt-1">From $25</p> |
| <button class="mt-2 text-orange-500 text-xs font-medium">View Details</button> |
| </div> |
| </div> |
| |
| |
| <div class="service-card bg-white rounded-xl shadow-md overflow-hidden transition-all duration-300"> |
| <div class="h-24 bg-gray-800 flex items-center justify-center"> |
| <i class="fas fa-vacuum text-orange-500 text-3xl"></i> |
| </div> |
| <div class="p-3"> |
| <h4 class="font-semibold text-sm">Interior Detailing</h4> |
| <p class="text-xs text-gray-500 mt-1">From $75</p> |
| <button class="mt-2 text-orange-500 text-xs font-medium">View Details</button> |
| </div> |
| </div> |
| |
| |
| <div class="service-card bg-white rounded-xl shadow-md overflow-hidden transition-all duration-300"> |
| <div class="h-24 bg-gray-800 flex items-center justify-center"> |
| <i class="fas fa-car-battery text-orange-500 text-3xl"></i> |
| </div> |
| <div class="p-3"> |
| <h4 class="font-semibold text-sm">Full Detailing</h4> |
| <p class="text-xs text-gray-500 mt-1">From $150</p> |
| <button class="mt-2 text-orange-500 text-xs font-medium">View Details</button> |
| </div> |
| </div> |
| |
| |
| <div class="service-card bg-white rounded-xl shadow-md overflow-hidden transition-all duration-300"> |
| <div class="h-24 bg-gray-800 flex items-center justify-center"> |
| <i class="fas fa-wax-candle text-orange-500 text-3xl"></i> |
| </div> |
| <div class="p-3"> |
| <h4 class="font-semibold text-sm">Ceramic Coating</h4> |
| <p class="text-xs text-gray-500 mt-1">From $300</p> |
| <button class="mt-2 text-orange-500 text-xs font-medium">View Details</button> |
| </div> |
| </div> |
| </div> |
| </section> |
| |
| |
| <section class="p-4"> |
| <h3 class="text-lg font-bold mb-4">How It Works</h3> |
| |
| <div class="flex justify-between items-center mb-6"> |
| <div class="text-center"> |
| <div class="booking-step w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center mx-auto mb-2 font-bold">1</div> |
| <p class="text-xs">Select Service</p> |
| </div> |
| <div class="h-1 w-10 bg-gray-200"></div> |
| <div class="text-center"> |
| <div class="booking-step w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center mx-auto mb-2 font-bold">2</div> |
| <p class="text-xs">Choose Time</p> |
| </div> |
| <div class="h-1 w-10 bg-gray-200"></div> |
| <div class="text-center"> |
| <div class="booking-step w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center mx-auto mb-2 font-bold">3</div> |
| <p class="text-xs">Confirm</p> |
| </div> |
| </div> |
| |
| <button class="w-full bg-orange-500 text-white py-3 rounded-full font-bold"> |
| Get Started |
| </button> |
| </section> |
| |
| |
| <section class="p-4 bg-gray-50"> |
| <h3 class="text-lg font-bold mb-4">What Our Clients Say</h3> |
| |
| <div class="bg-white p-4 rounded-xl shadow-sm"> |
| <div class="flex items-center mb-3"> |
| <div class="w-10 h-10 rounded-full bg-gray-300 mr-3"></div> |
| <div> |
| <h4 class="font-semibold">Michael R.</h4> |
| <div class="flex text-orange-500 text-sm"> |
| <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> |
| </div> |
| <p class="text-sm text-gray-600">"Dale's Detailing transformed my 10-year-old car to look brand new. The attention to detail is unmatched!"</p> |
| </div> |
| |
| <div class="flex justify-center mt-4"> |
| <div class="w-2 h-2 rounded-full bg-orange-500 mx-1"></div> |
| <div class="w-2 h-2 rounded-full bg-gray-300 mx-1"></div> |
| <div class="w-2 h-2 rounded-full bg-gray-300 mx-1"></div> |
| </div> |
| </section> |
| </main> |
| |
| |
| <footer class="fixed bottom-0 w-full max-w-md bg-white border-t border-gray-200 flex justify-around py-3"> |
| <a href="#" class="text-center text-orange-500"> |
| <i class="fas fa-home block text-xl"></i> |
| <span class="text-xs mt-1">Home</span> |
| </a> |
| <a href="#" class="text-center text-gray-500"> |
| <i class="fas fa-calendar-alt block text-xl"></i> |
| <span class="text-xs mt-1">Bookings</span> |
| </a> |
| <a href="#" class="text-center text-gray-500"> |
| <i class="fas fa-map-marker-alt block text-xl"></i> |
| <span class="text-xs mt-1">Locations</span> |
| </a> |
| <a href="#" class="text-center text-gray-500"> |
| <i class="fas fa-user block text-xl"></i> |
| <span class="text-xs mt-1">Profile</span> |
| </a> |
| </footer> |
| </div> |
|
|
| <script> |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| |
| const navItems = document.querySelectorAll('.nav-item'); |
| navItems.forEach(item => { |
| item.addEventListener('click', function(e) { |
| e.preventDefault(); |
| navItems.forEach(i => i.classList.remove('active')); |
| this.classList.add('active'); |
| }); |
| }); |
| |
| |
| const bookingSteps = document.querySelectorAll('.booking-step'); |
| let currentStep = 0; |
| |
| setInterval(() => { |
| bookingSteps.forEach(step => step.classList.remove('active')); |
| bookingSteps[currentStep].classList.add('active'); |
| bookingSteps[currentStep].classList.add('bg-orange-500'); |
| bookingSteps[currentStep].classList.add('text-white'); |
| |
| currentStep = (currentStep + 1) % bookingSteps.length; |
| }, 2000); |
| |
| |
| const serviceCards = document.querySelectorAll('.service-card'); |
| serviceCards.forEach(card => { |
| card.addEventListener('mouseenter', function() { |
| this.style.transform = 'translateY(-5px)'; |
| this.style.boxShadow = '0 10px 20px rgba(0,0,0,0.1)'; |
| }); |
| |
| card.addEventListener('mouseleave', function() { |
| this.style.transform = ''; |
| this.style.boxShadow = ''; |
| }); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |