Travel Honeymoon Card Template
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Luxury Honeymoon Escapes | รclat Voyages</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet"> </head> <body> <div class="container"> <!-- Decorative lines --> <div class="decorative-line decorative-line-1"></div> <div class="decorative-line decorative-line-2"></div> <!-- Header --> <div class="header"> <div class="logo"> <i class="fas fa-crown"></i> <span>รCLAT VOYAGES</span> </div> <h1>Luxury <span>Honeymoon</span> Escapes</h1> <p>Indulge in unforgettable romantic experiences crafted with exquisite attention to detail. Begin your forever journey with our exclusive honeymoon collections.</p> </div> <!-- Cards Container --> <div class="cards-container"> <!-- Card 1 --> <div class="card"> <div class="card-image" style="background-image: url('https://plus.unsplash.com/premium_photo-1666432045848-3fdbb2c74531?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8N3x8bWFsZGl2fGVufDB8fDB8fHww');"> <div class="package-days"> <i class="far fa-calendar"></i> 7 NIGHTS </div> <h2 class="package-title">Maldivian Paradise Escape</h2> </div> <div class="card-content"> <p class="description">Experience ultimate luxury in your private overwater bungalow with crystal-clear turquoise waters beneath you. Enjoy candlelit dinners on the beach, couples spa treatments, and sunset cruises in this island paradise.</p> <div class="features"> <div class="feature"> <div class="feature-icon"> <i class="fas fa-umbrella-beach"></i> </div> <span>Private Beach</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-wine-glass-alt"></i> </div> <span>All Inclusive</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-heart"></i> </div> <span>Romantic Dining</span> </div> </div> <div class="price-container"> <div class="price"> $5,299 <span>per couple</span> </div> <div class="rating"> <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> <span>(4.9)</span> </div> </div> <button class="btn-enquire"> <i class="far fa-heart"></i> Enquire About This Package </button> </div> </div> <!-- Card 2 --> <div class="card"> <div class="card-image" style="background-image: url('https://images.unsplash.com/photo-1551632811-561732d1e306?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1200&q=80');"> <div class="package-days"> <i class="far fa-calendar"></i> 5 NIGHTS </div> <h2 class="package-title">Venetian Romance Retreat</h2> </div> <div class="card-content"> <p class="description">Drift along serene canals in a private gondola, explore historic piazzas hand in hand, and savor authentic Italian cuisine under the stars. Stay in a boutique hotel with panoramic views of this timeless city.</p> <div class="features"> <div class="feature"> <div class="feature-icon"> <i class="fas fa-water"></i> </div> <span>Private Gondola</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-utensils"></i> </div> <span>Fine Dining</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-gem"></i> </div> <span>Luxury Suite</span> </div> </div> <div class="price-container"> <div class="price"> $4,199 <span>per couple</span> </div> <div class="rating"> <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> <span>(4.7)</span> </div> </div> <button class="btn-enquire"> <i class="far fa-heart"></i> Enquire About This Package </button> </div> </div> <!-- Card 3 --> <div class="card"> <div class="card-image" style="background-image: url('https://images.unsplash.com/photo-1537996194471-e657df975ab4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1200&q=80');"> <div class="package-days"> <i class="far fa-calendar"></i> 8 NIGHTS </div> <h2 class="package-title">Bali Tropical Bliss</h2> </div> <div class="card-content"> <p class="description">Discover romantic seclusion in a luxurious villa surrounded by lush tropical gardens. Experience private poolside breakfasts, traditional couple's massages, and breathtaking cliff-top ocean views for your perfect honeymoon.</p> <div class="features"> <div class="feature"> <div class="feature-icon"> <i class="fas fa-spa"></i> </div> <span>Spa Package</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-swimming-pool"></i> </div> <span>Private Pool</span> </div> <div class="feature"> <div class="feature-icon"> <i class="fas fa-sun"></i> </div> <span>Sunset Views</span> </div> </div> <div class="price-container"> <div class="price"> $3,899 <span>per couple</span> </div> <div class="rating"> <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> <span>(5.0)</span> </div> </div> <button class="btn-enquire"> <i class="far fa-heart"></i> Enquire About This Package </button> </div> </div> </div> <!-- Footer --> <div class="footer"> <p>ยฉ 2023 รclat Voyages. All packages are fully customizable to create your perfect honeymoon experience.</p> <p>Contact our honeymoon specialists: <strong>1-888-ECLAT-VG</strong> | <strong>honeymoon@eclatvoyages.com</strong></p> </div> </div> </body> </html>
CSS
:root { --primary: #D4AF85; --primary-dark: #B89470; --secondary: #1A2B3C; --accent: #9C7C5C; --light: #FAF7F2; --text: #333333; --text-light: #777777; --shadow: rgba(26, 43, 60, 0.08); --shadow-hover: rgba(26, 43, 60, 0.15); --transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); --radius: 24px; --radius-sm: 12px; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; color: var(--text); background-color: var(--light); line-height: 1.6; overflow-x: hidden; position: relative; min-height: 100vh; } body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 80%, rgba(212, 175, 133, 0.05) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(156, 124, 92, 0.05) 0%, transparent 50%); z-index: -1; } .container { max-width: 1280px; margin: 0 auto; padding: 0 24px; } /* Header */ .header { padding: 60px 0 40px; text-align: center; position: relative; } .header::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 200px; height: 2px; background: linear-gradient(90deg, transparent, var(--primary), transparent); } .header .logo { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 16px; color: var(--secondary); font-weight: 600; letter-spacing: 1px; font-size: 0.9rem; opacity: 0.8; } .header h1 { font-family: 'Playfair Display', serif; font-size: 3.5rem; font-weight: 700; color: var(--secondary); margin-bottom: 16px; line-height: 1.2; } .header h1 span { color: var(--primary); position: relative; display: inline-block; } .header h1 span::after { content: ''; position: absolute; bottom: 8px; left: 0; width: 100%; height: 6px; background-color: rgba(212, 175, 133, 0.2); z-index: -1; } .header p { font-size: 1.125rem; color: var(--text-light); max-width: 680px; margin: 0 auto; } /* Cards Container */ .cards-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 40px; padding: 40px 0 80px; } /* Card */ .card { background-color: white; border-radius: var(--radius); overflow: hidden; box-shadow: 0 15px 40px var(--shadow); transition: var(--transition); position: relative; height: 100%; display: flex; flex-direction: column; border: 1px solid rgba(212, 175, 133, 0.1); } .card:hover { transform: translateY(-15px); box-shadow: 0 25px 60px var(--shadow-hover); } .card:hover .card-image::after { opacity: 1; } /* Card Image */ .card-image { height: 280px; width: 100%; background-size: cover; background-position: center; position: relative; overflow: hidden; } .card-image::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(26, 43, 60, 0) 0%, rgba(26, 43, 60, 0.4) 100%); z-index: 1; } .card-image::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, rgba(212, 175, 133, 0.1), rgba(156, 124, 92, 0.1)); opacity: 0; transition: var(--transition); z-index: 2; } .package-title { position: absolute; bottom: 30px; left: 0; right: 0; text-align: center; color: white; font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; padding: 0 30px; z-index: 3; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); } .package-days { position: absolute; top: 24px; right: 24px; background: rgba(255, 255, 255, 0.95); color: var(--secondary); padding: 8px 16px; border-radius: 50px; font-weight: 600; font-size: 0.875rem; z-index: 3; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); display: flex; align-items: center; gap: 6px; } .package-days i { color: var(--primary); } /* Card Content */ .card-content { padding: 32px; flex-grow: 1; display: flex; flex-direction: column; } .description { color: var(--text-light); line-height: 1.7; margin-bottom: 28px; font-size: 1.05rem; flex-grow: 1; } /* Features */ .features { display: flex; justify-content: space-between; margin-bottom: 32px; padding: 24px 0; border-top: 1px solid rgba(212, 175, 133, 0.15); border-bottom: 1px solid rgba(212, 175, 133, 0.15); } .feature { text-align: center; color: var(--secondary); flex: 1; } .feature-icon { width: 56px; height: 56px; background-color: rgba(212, 175, 133, 0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; transition: var(--transition); } .card:hover .feature-icon { background-color: rgba(212, 175, 133, 0.2); transform: translateY(-4px); } .feature-icon i { font-size: 1.25rem; color: var(--primary); } .feature span { font-size: 0.9rem; font-weight: 600; display: block; } /* Price Tag */ .price-container { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; } .price { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 700; color: var(--secondary); } .price span { font-size: 1rem; font-weight: 400; color: var(--text-light); display: block; margin-top: 4px; } .rating { display: flex; align-items: center; gap: 6px; color: var(--primary); } .rating i { font-size: 1rem; } .rating span { font-weight: 600; font-size: 0.9rem; color: var(--text-light); margin-left: 4px; } /* Button */ .btn-enquire { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: white; border: none; padding: 18px; border-radius: var(--radius-sm); font-size: 1.05rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: flex; align-items: center; justify-content: center; letter-spacing: 0.5px; box-shadow: 0 8px 20px rgba(212, 175, 133, 0.3); position: relative; overflow: hidden; } .btn-enquire::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } .btn-enquire:hover { transform: translateY(-3px); box-shadow: 0 12px 25px rgba(212, 175, 133, 0.4); } .btn-enquire:hover::before { left: 100%; } .btn-enquire i { margin-right: 10px; font-size: 1.2rem; transition: var(--transition); } .btn-enquire:hover i { transform: scale(1.1); } /* Footer */ .footer { text-align: center; padding: 40px 0 30px; color: var(--text-light); font-size: 0.9rem; border-top: 1px solid rgba(212, 175, 133, 0.15); position: relative; } .footer p { margin-bottom: 8px; } .footer strong { color: var(--secondary); font-weight: 600; } /* Decorative elements */ .decorative-line { position: absolute; width: 100px; height: 1px; background-color: var(--primary); opacity: 0.5; } .decorative-line-1 { top: 20%; left: 5%; transform: rotate(45deg); } .decorative-line-2 { bottom: 30%; right: 5%; transform: rotate(-45deg); } /* Responsive */ @media (max-width: 992px) { .cards-container { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); } .header h1 { font-size: 2.8rem; } } @media (max-width: 768px) { .cards-container { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; } .header { padding: 40px 0 30px; } .header h1 { font-size: 2.4rem; } .card:hover { transform: translateY(-10px); } .features { flex-direction: column; gap: 20px; } .decorative-line { display: none; } } @media (max-width: 480px) { .container { padding: 0 16px; } .header h1 { font-size: 2rem; } .card-content { padding: 24px; } .package-title { font-size: 1.7rem; } } /* Loading animation for cards */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .card { animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; } .card:nth-child(1) { animation-delay: 0.1s; } .card:nth-child(2) { animation-delay: 0.3s; } .card:nth-child(3) { animation-delay: 0.5s; }
JavaScript
// Enhanced interactive functionality document.addEventListener('DOMContentLoaded', function() { const cards = document.querySelectorAll('.card'); const buttons = document.querySelectorAll('.btn-enquire'); // Add staggered animation to cards cards.forEach((card, index) => { card.style.animationDelay = `${index * 0.2}s`; }); // Button interaction with enhanced animation buttons.forEach(button => { button.addEventListener('click', function(e) { e.preventDefault(); const card = this.closest('.card'); const packageTitle = card.querySelector('.package-title').textContent; const price = card.querySelector('.price').textContent.split('\n')[0]; // Visual feedback const originalContent = this.innerHTML; this.innerHTML = '<i class="fas fa-check-circle"></i> Enquiry Sent!'; this.style.background = 'linear-gradient(135deg, #2E8B57, #3CB371)'; // Add a subtle confetti effect createConfetti(this); // Show success message setTimeout(() => { const modal = document.createElement('div'); modal.style.cssText = ` position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(26, 43, 60, 0.9); display: flex; align-items: center; justify-content: center; z-index: 1000; opacity: 0; animation: fadeIn 0.3s forwards; `; modal.innerHTML = ` <div style=" background-color: white; padding: 40px; border-radius: var(--radius); max-width: 500px; width: 90%; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,0.3); transform: translateY(30px); animation: slideUp 0.4s forwards; "> <div style=" width: 80px; height: 80px; background: linear-gradient(135deg, #2E8B57, #3CB371); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; "> <i class="fas fa-heart" style="font-size: 2rem; color: white;"></i> </div> <h2 style=" font-family: 'Playfair Display', serif; color: var(--secondary); margin-bottom: 15px; font-size: 1.8rem; ">Thank You!</h2> <p style="color: var(--text-light); margin-bottom: 25px;"> Your enquiry for <strong>"${packageTitle}"</strong> (${price}) has been received. Our honeymoon specialist will contact you within 24 hours to customize your perfect romantic getaway. </p> <button id="closeModal" style=" background-color: var(--primary); color: white; border: none; padding: 14px 30px; border-radius: var(--radius-sm); font-weight: 600; cursor: pointer; transition: var(--transition); ">Continue Browsing</button> </div> `; document.body.appendChild(modal); // Close modal functionality document.getElementById('closeModal').addEventListener('click', function() { modal.style.animation = 'fadeOut 0.3s forwards'; setTimeout(() => { document.body.removeChild(modal); }, 300); }); // Reset button after modal is closed setTimeout(() => { modal.addEventListener('animationend', function resetButton() { button.innerHTML = originalContent; button.style.background = 'linear-gradient(135deg, var(--primary), var(--primary-dark))'; modal.removeEventListener('animationend', resetButton); }); }, 100); }, 600); }); }); // Create confetti effect function createConfetti(element) { const rect = element.getBoundingClientRect(); const colors = ['#D4AF85', '#B89470', '#9C7C5C', '#1A2B3C']; for (let i = 0; i < 15; i++) { const confetti = document.createElement('div'); confetti.style.cssText = ` position: fixed; width: 8px; height: 8px; background-color: ${colors[Math.floor(Math.random() * colors.length)]}; border-radius: 50%; top: ${rect.top + rect.height/2}px; left: ${rect.left + rect.width/2}px; z-index: 100; pointer-events: none; `; document.body.appendChild(confetti); // Animate confetti const angle = Math.random() * Math.PI * 2; const velocity = 15 + Math.random() * 10; const vx = Math.cos(angle) * velocity; const vy = Math.sin(angle) * velocity; let opacity = 1; let posX = rect.left + rect.width/2; let posY = rect.top + rect.height/2; const animateConfetti = () => { opacity -= 0.02; posX += vx; posY += vy; vy += 0.5; // gravity confetti.style.opacity = opacity; confetti.style.transform = `translate(${posX - (rect.left + rect.width/2)}px, ${posY - (rect.top + rect.height/2)}px)`; if (opacity > 0) { requestAnimationFrame(animateConfetti); } else { document.body.removeChild(confetti); } }; requestAnimationFrame(animateConfetti); } } // Add CSS animations for modal const style = document.createElement('style'); style.textContent = ` @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes slideUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } `; document.head.appendChild(style); // Card hover enhancement cards.forEach(card => { card.addEventListener('mouseenter', function() { this.style.zIndex = '10'; }); card.addEventListener('mouseleave', function() { this.style.zIndex = '1'; }); }); });
Output Preview
Desktop
Mobile
Fullscreen