Destinations Travel 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>Luxe Travel | Premium Destinations</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=Poppins:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap" rel="stylesheet"> </head> <body> <div class="container"> <div class="header"> <div class="header-icon"> <i class="fas fa-globe-americas"></i> </div> <h1>Luxe Travel Experiences</h1> <p>Discover handpicked destinations with exclusive packages. Each journey is carefully curated to offer unforgettable moments and seamless travel.</p> </div> <div class="cards-container"> <!-- Card 1: Japan --> <div class="card"> <div class="card-image"> <div class="card-badge"> <i class="fas fa-fire badge-icon"></i> Popular </div> <img src="https://images.unsplash.com/photo-1540959733332-eab4deabeeaf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80" alt="Japan with Mount Fuji and cherry blossoms"> </div> <div class="card-content"> <div class="card-header"> <h2 class="card-title"> <span class="card-flag">??</span> Japan </h2> <div class="card-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 style="color: var(--gray); font-size: 0.9rem; margin-left: 5px;">4.7</span> </div> </div> <p class="card-description"> Experience the perfect harmony of ancient traditions and cutting-edge modernity. From serene temples to bustling Tokyo streets, Japan offers an unforgettable cultural journey. </p> <div class="card-features"> <div class="feature"> <i class="fas fa-calendar-alt feature-icon"></i> <span>7-14 days</span> </div> <div class="feature"> <i class="fas fa-users feature-icon"></i> <span>Small groups</span> </div> <div class="feature"> <i class="fas fa-utensils feature-icon"></i> <span>Local cuisine</span> </div> </div> <div class="price-container"> <div class="price-label">Starting from</div> <div class="price">2,499</div> </div> <button class="card-cta"> <i class="fas fa-compass"></i> Explore Journey <i class="fas fa-arrow-right"></i> </button> </div> </div> <!-- Card 2: Italy --> <div class="card"> <div class="card-image"> <div class="card-badge"> <i class="fas fa-gem badge-icon"></i> Luxury </div> <img src="https://images.unsplash.com/photo-1534447677768-be436bb09401?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80" alt="Italian coastline with colorful buildings"> </div> <div class="card-content"> <div class="card-header"> <h2 class="card-title"> <span class="card-flag">??</span> Italy </h2> <div class="card-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 style="color: var(--gray); font-size: 0.9rem; margin-left: 5px;">5.0</span> </div> </div> <p class="card-description"> Indulge in world-class cuisine, breathtaking art, and stunning landscapes. From the canals of Venice to the ruins of Rome, Italy captivates every traveler. </p> <div class="card-features"> <div class="feature"> <i class="fas fa-calendar-alt feature-icon"></i> <span>10-21 days</span> </div> <div class="feature"> <i class="fas fa-wine-glass-alt feature-icon"></i> <span>Wine tasting</span> </div> <div class="feature"> <i class="fas fa-landmark feature-icon"></i> <span>Cultural tours</span> </div> </div> <div class="price-container"> <div class="price-label">Starting from</div> <div class="price">3,299</div> </div> <button class="card-cta"> <i class="fas fa-compass"></i> Explore Journey <i class="fas fa-arrow-right"></i> </button> </div> </div> <!-- Card 3: Costa Rica --> <div class="card"> <div class="card-image"> <div class="card-badge"> <i class="fas fa-leaf badge-icon"></i> Eco-friendly </div> <img src="https://images.unsplash.com/photo-1707343848552-893e05dba6ac?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDF8MHxzZWFyY2h8MXx8dHJhdmVsfGVufDB8fDB8fHww" alt="Costa Rican rainforest with waterfall"> </div> <div class="card-content"> <div class="card-header"> <h2 class="card-title"> <span class="card-flag">??</span> Costa Rica </h2> <div class="card-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 style="color: var(--gray); font-size: 0.9rem; margin-left: 5px;">4.9</span> </div> </div> <p class="card-description"> Discover unparalleled biodiversity and eco-adventures. With lush rainforests, pristine beaches, and abundant wildlife, Costa Rica is a nature lover's paradise. </p> <div class="card-features"> <div class="feature"> <i class="fas fa-calendar-alt feature-icon"></i> <span>8-16 days</span> </div> <div class="feature"> <i class="fas fa-hiking feature-icon"></i> <span>Adventure</span> </div> <div class="feature"> <i class="fas fa-spa feature-icon"></i> <span>Wellness</span> </div> </div> <div class="price-container"> <div class="price-label">Starting from</div> <div class="price">1,899</div> </div> <button class="card-cta"> <i class="fas fa-compass"></i> Explore Journey <i class="fas fa-arrow-right"></i> </button> </div> </div> </div> <div class="footer"> <p>All packages include flights, premium accommodation, and exclusive local experiences. Prices are per person based on double occupancy.</p> <div class="footer-links"> <a href="#" class="footer-link">Terms & Conditions</a> <a href="#" class="footer-link">Privacy Policy</a> <a href="#" class="footer-link">Contact Us</a> </div> <p style="margin-top: 1.5rem;">© 2023 Luxe Travel Experiences. All rights reserved.</p> </div> </div> </body> </html>
CSS
* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary: #0a2540; --secondary: #7c3aed; --accent: #00d4aa; --light: #f8fafc; --gray: #64748b; --dark: #0f172a; --card-bg: #ffffff; --shadow: 0 20px 40px rgba(0, 0, 0, 0.08); --shadow-hover: 0 30px 60px rgba(0, 0, 0, 0.12); --radius: 24px; --transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1); } body { font-family: 'Poppins', sans-serif; background: linear-gradient(135deg, #f6f9ff 0%, #f0f4ff 100%); color: var(--dark); min-height: 100vh; padding: 2rem 1rem; display: flex; justify-content: center; align-items: center; } .container { max-width: 1400px; width: 100%; margin: 0 auto; } /* Header Styles */ .header { text-align: center; margin-bottom: 4rem; position: relative; } .header::after { content: ''; position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); width: 80px; height: 4px; background: linear-gradient(90deg, var(--secondary), var(--accent)); border-radius: 2px; } .header h1 { font-family: 'Playfair Display', serif; font-size: 3.2rem; font-weight: 700; margin-bottom: 1rem; background: linear-gradient(90deg, var(--primary), var(--secondary)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -0.5px; } .header p { font-size: 1.15rem; color: var(--gray); max-width: 600px; margin: 0 auto; line-height: 1.7; } /* Cards Container */ .cards-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 2.5rem; margin-bottom: 4rem; } /* Card Styles */ .card { background: var(--card-bg); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); position: relative; display: flex; flex-direction: column; height: 100%; } .card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, var(--secondary), var(--accent)); z-index: 2; } .card:hover { transform: translateY(-20px); box-shadow: var(--shadow-hover); } /* Card Image */ .card-image { height: 240px; width: 100%; position: relative; overflow: hidden; } .card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); } .card:hover .card-image img { transform: scale(1.1); } .card-image::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 60px; background: linear-gradient(to top, rgba(0,0,0,0.1), transparent); pointer-events: none; } /* Card Badge */ .card-badge { position: absolute; top: 1.25rem; right: 1.25rem; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); color: var(--primary); font-weight: 600; padding: 0.5rem 1.25rem; border-radius: 50px; font-size: 0.85rem; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1); z-index: 2; display: flex; align-items: center; gap: 0.5rem; transition: var(--transition); } .card-badge:hover { transform: translateY(-3px); background: white; } .badge-icon { font-size: 0.8rem; color: var(--secondary); } /* Card Content */ .card-content { padding: 2rem; flex-grow: 1; display: flex; flex-direction: column; } .card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.25rem; } .card-title { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 600; color: var(--primary); display: flex; align-items: center; gap: 0.75rem; } .card-flag { font-size: 1.8rem; } .card-rating { display: flex; align-items: center; gap: 0.25rem; color: #ffb800; font-size: 1rem; } .card-description { color: var(--gray); line-height: 1.7; margin-bottom: 1.75rem; flex-grow: 1; font-size: 1rem; } /* Price Section */ .price-container { background: linear-gradient(to right, #f8fafc, #f0f5ff); border-radius: 16px; padding: 1.25rem; margin-bottom: 1.75rem; display: flex; justify-content: space-between; align-items: center; transition: var(--transition); } .card:hover .price-container { background: linear-gradient(to right, #f0f5ff, #e8efff); transform: translateY(-3px); } .price-label { font-size: 0.9rem; color: var(--gray); font-weight: 500; } .price { font-size: 2rem; font-weight: 700; color: var(--secondary); position: relative; } .price::before { content: '$'; font-size: 1.2rem; position: absolute; left: -15px; top: 5px; color: var(--secondary); opacity: 0.7; } /* Features */ .card-features { display: flex; gap: 1.5rem; margin-bottom: 1.75rem; } .feature { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: var(--gray); } .feature-icon { color: var(--accent); font-size: 1rem; } /* CTA Button */ .card-cta { background: linear-gradient(90deg, var(--primary), var(--secondary)); color: white; border: none; padding: 1.1rem; border-radius: 14px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: flex; justify-content: center; align-items: center; gap: 0.75rem; letter-spacing: 0.5px; position: relative; overflow: hidden; } .card-cta::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: left 0.7s ease; } .card-cta:hover { background: linear-gradient(90deg, var(--secondary), var(--primary)); transform: translateY(-3px); box-shadow: 0 12px 25px rgba(124, 58, 237, 0.25); } .card-cta:hover::before { left: 100%; } .card-cta i { font-size: 0.9rem; transition: transform 0.3s ease; } .card-cta:hover i { transform: translateX(5px); } /* Footer */ .footer { text-align: center; color: var(--gray); font-size: 0.9rem; padding-top: 3rem; border-top: 1px solid rgba(0, 0, 0, 0.05); max-width: 800px; margin: 0 auto; } .footer-links { display: flex; justify-content: center; gap: 2rem; margin-top: 1rem; } .footer-link { color: var(--secondary); text-decoration: none; transition: color 0.3s ease; } .footer-link:hover { color: var(--primary); text-decoration: underline; } /* Responsive Design */ @media (max-width: 1200px) { .cards-container { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 900px) { .header h1 { font-size: 2.6rem; } .cards-container { gap: 2rem; } } @media (max-width: 768px) { .cards-container { grid-template-columns: 1fr; max-width: 500px; margin-left: auto; margin-right: auto; } .header h1 { font-size: 2.2rem; } .header p { font-size: 1.05rem; } .card-features { flex-wrap: wrap; gap: 1rem; } } @media (max-width: 480px) { body { padding: 1.5rem 1rem; } .header { margin-bottom: 3rem; } .header h1 { font-size: 2rem; } .card-content { padding: 1.5rem; } .card-title { font-size: 1.6rem; } .price { font-size: 1.8rem; } } /* Animation for cards on load */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .card { animation: fadeInUp 0.6s ease-out forwards; opacity: 0; } .card:nth-child(2) { animation-delay: 0.1s; } .card:nth-child(3) { animation-delay: 0.2s; } /* Floating animation for visual interest */ @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .header-icon { display: inline-block; margin-bottom: 1rem; animation: float 3s ease-in-out infinite; color: var(--secondary); font-size: 2.5rem; }
JavaScript
// Enhanced interactivity document.querySelectorAll('.card-cta').forEach(button => { button.addEventListener('click', function() { const card = this.closest('.card'); const country = card.querySelector('.card-title').textContent.trim(); const price = card.querySelector('.price').textContent.trim(); // Ripple effect const ripple = document.createElement('span'); const rect = this.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); const x = event.clientX - rect.left - size/2; const y = event.clientY - rect.top - size/2; ripple.style.cssText = ` position: absolute; border-radius: 50%; background: rgba(255, 255, 255, 0.7); transform: scale(0); animation: ripple 0.6s linear; width: ${size}px; height: ${size}px; top: ${y}px; left: ${x}px; `; this.appendChild(ripple); // Show booking modal simulation setTimeout(() => { alert(`Excellent choice! You've selected the ${country} experience.\n\nStarting price: $${price}\n\nOur travel concierge will contact you within 24 hours to customize your perfect journey.`); ripple.remove(); }, 600); }); }); // Add CSS for ripple effect const style = document.createElement('style'); style.textContent = ` @keyframes ripple { to { transform: scale(4); opacity: 0; } } `; document.head.appendChild(style); // Card hover enhancement document.querySelectorAll('.card').forEach(card => { card.addEventListener('mouseenter', function() { this.style.zIndex = '10'; }); card.addEventListener('mouseleave', function() { this.style.zIndex = '1'; }); }); // Add floating animation to badges on hover document.querySelectorAll('.card-badge').forEach(badge => { badge.addEventListener('mouseenter', function() { this.style.animation = 'float 1s ease-in-out'; }); badge.addEventListener('mouseleave', function() { this.style.animation = ''; }); }); // Parallax effect on scroll window.addEventListener('scroll', () => { const scrolled = window.pageYOffset; const cards = document.querySelectorAll('.card'); cards.forEach((card, index) => { const rate = scrolled * 0.05; card.style.transform = `translateY(${rate}px)`; }); });
Output Preview
Desktop
Mobile
Fullscreen