Beautiful travel blog template with destination guides, travel tips, and photo galleries.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wanderlust Diaries | Travel Blog</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav class="navbar">
<div class="container">
<a href="#" class="logo">Wanderlust Diaries</a>
<div class="nav-links">
<a href="#home">Home</a>
<a href="#destinations">Destinations</a>
<a href="#tips">Travel Tips</a>
<a href="#gallery">Gallery</a>
<a href="#contact">Contact</a>
</div>
<button class="mobile-menu"><i class="fas fa-bars"></i></button>
</div>
</nav>
<header id="home" class="hero">
<div class="hero-overlay"></div>
<div class="container">
<div class="hero-content">
<div class="hero-badge">Exploring the World</div>
<h1>Wander. Explore. <span>Discover</span></h1>
<p>Join me on a journey across continents, cultures, and cuisines. Travel tips, destination guides, and inspiring stories.</p>
<a href="#destinations" class="btn-primary">Start Exploring <i class="fas fa-arrow-right"></i></a>
</div>
</div>
</header>
<section id="destinations" class="destinations">
<div class="container">
<div class="section-header">
<span class="section-tag">Featured Destinations</span>
<h2>Recent Adventures</h2>
<p>Explore my latest journeys around the world.</p>
</div>
<div class="destinations-grid">
<div class="destination-card">
<div class="destination-image">🌴</div>
<div class="destination-info">
<h3>Bali, Indonesia</h3>
<p>Paradise beaches, lush rice terraces, and spiritual culture.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
<div class="destination-card">
<div class="destination-image">🗼</div>
<div class="destination-info">
<h3>Paris, France</h3>
<p>Romantic city of lights, art, and incredible cuisine.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
<div class="destination-card">
<div class="destination-image">🗻</div>
<div class="destination-info">
<h3>Tokyo, Japan</h3>
<p>Futuristic city meets ancient traditions.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
<div class="destination-card">
<div class="destination-image">🏔️</div>
<div class="destination-info">
<h3>New Zealand</h3>
<p>Stunning landscapes and adventure activities.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
<div class="destination-card">
<div class="destination-image">🏛️</div>
<div class="destination-info">
<h3>Rome, Italy</h3>
<p>Ancient history, amazing food, and vibrant culture.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
<div class="destination-card">
<div class="destination-image">🦁</div>
<div class="destination-info">
<h3>Safari, Kenya</h3>
<p>Wildlife adventure in the African savanna.</p>
<a href="#" class="read-more">Read More →</a>
</div>
</div>
</div>
</div>
</section>
<section id="tips" class="tips">
<div class="container">
<div class="section-header">
<span class="section-tag">Travel Tips</span>
<h2>Practical Advice</h2>
<p>Everything you need to know before your next trip.</p>
</div>
<div class="tips-grid">
<div class="tip-card">
<i class="fas fa-passport"></i>
<h3>Visa Guide</h3>
<p>Essential visa requirements for popular destinations around the world.</p>
</div>
<div class="tip-card">
<i class="fas fa-dollar-sign"></i>
<h3>Budget Travel</h3>
<p>Save money without compromising on experience.</p>
</div>
<div class="tip-card">
<i class="fas fa-utensils"></i>
<h3>Food Guide</h3>
<p>Must-try dishes and local food experiences.</p>
</div>
<div class="tip-card">
<i class="fas fa-camera"></i>
<h3>Photo Tips</h3>
<p>Capture stunning travel photos like a pro.</p>
</div>
</div>
</div>
</section>
<section id="gallery" class="gallery">
<div class="container">
<div class="section-header">
<span class="section-tag">Visual Stories</span>
<h2>Photo Gallery</h2>
<p>Moments captured around the world.</p>
</div>
<div class="gallery-grid">
<div class="gallery-item">🌅</div>
<div class="gallery-item">🏝️</div>
<div class="gallery-item">🏔️</div>
<div class="gallery-item">🌊</div>
<div class="gallery-item">🏯</div>
<div class="gallery-item">🕌</div>
</div>
</div>
</section>
<section id="contact" class="contact">
<div class="container">
<div class="contact-grid">
<div class="contact-info">
<h2>Let's Connect</h2>
<p>Follow my adventures on social media or send me a message. I'd love to hear from you!</p>
<div class="social-links">
<a href="#"><i class="fab fa-instagram"></i> Instagram</a>
<a href="#"><i class="fab fa-youtube"></i> YouTube</a>
<a href="#"><i class="fab fa-twitter"></i> Twitter</a>
<a href="#"><i class="fab fa-facebook-f"></i> Facebook</a>
</div>
</div>
<form class="contact-form" id="contactForm">
<h3>Send a Message</h3>
<input type="text" placeholder="Your Name" required>
<input type="email" placeholder="Your Email" required>
<textarea rows="4" placeholder="Your Message..." required></textarea>
<button type="submit" class="btn-primary">Send Message <i class="fas fa-paper-plane"></i></button>
</form>
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2025 Wanderlust Diaries. Built with <i class="fas fa-heart"></i> by WordTune®</p>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>
/* Travel Blog Styles */
:root {
--primary: #e94560;
--primary-dark: #c7354e;
--secondary: #06b6d4;
--dark: #1a1a2e;
--light: #faf9f8;
--gray: #666;
--white: #ffffff;
--border: #e9ecef;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
color: var(--dark);
line-height: 1.6;
background: var(--light);
}
h1, h2, .logo {
font-family: 'Playfair Display', serif;
}
.container {
max-width: 1280px;
margin: 0 auto;
padding: 0 2rem;
}
/* Navigation */
.navbar {
position: fixed;
top: 0;
width: 100%;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(10px);
z-index: 1000;
padding: 1rem 0;
border-bottom: 1px solid var(--border);
}
.navbar .container {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.3rem;
font-weight: 700;
text-decoration: none;
color: var(--primary);
}
.nav-links {
display: flex;
gap: 2rem;
align-items: center;
}
.nav-links a {
text-decoration: none;
color: var(--dark);
font-weight: 500;
transition: color 0.3s;
}
.nav-links a:hover {
color: var(--primary);
}
.mobile-menu {
display: none;
background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
}
/* Hero */
.hero {
min-height: 90vh;
background: url('https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=1600') center/cover fixed;
position: relative;
display: flex;
align-items: center;
text-align: center;
color: white;
}
.hero-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
}
.hero .container {
position: relative;
z-index: 1;
}
.hero-badge {
display: inline-block;
background: var(--primary);
padding: 0.3rem 1rem;
border-radius: 50px;
font-size: 0.8rem;
margin-bottom: 1.5rem;
}
.hero h1 {
font-size: 3.5rem;
margin-bottom: 1rem;
}
.hero h1 span {
color: var(--primary);
}
.hero p {
font-size: 1.2rem;
max-width: 600px;
margin: 0 auto 2rem;
opacity: 0.9;
}
.btn-primary {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: var(--primary);
color: white;
padding: 0.8rem 1.8rem;
border-radius: 40px;
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
}
.btn-primary:hover {
background: var(--primary-dark);
transform: translateY(-2px);
}
/* Section Header */
.section-header {
text-align: center;
margin-bottom: 3rem;
}
.section-tag {
display: inline-block;
background: rgba(233,69,96,0.1);
color: var(--primary);
padding: 0.3rem 1rem;
border-radius: 50px;
font-size: 0.8rem;
margin-bottom: 1rem;
}
.section-header h2 {
font-size: 2.5rem;
margin-bottom: 1rem;
}
.section-header p {
color: var(--gray);
max-width: 600px;
margin: 0 auto;
}
/* Destinations */
.destinations {
padding: 5rem 0;
}
.destinations-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
}
.destination-card {
background: var(--white);
border-radius: 20px;
overflow: hidden;
box-shadow: 0 5px 20px rgba(0,0,0,0.05);
transition: all 0.3s;
}
.destination-card:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0,0,0,0.1);
}
.destination-image {
height: 220px;
background: linear-gradient(135deg, var(--primary), var(--secondary));
display: flex;
align-items: center;
justify-content: center;
font-size: 5rem;
}
.destination-info {
padding: 1.5rem;
}
.destination-info h3 {
margin-bottom: 0.5rem;
font-size: 1.3rem;
}
.destination-info p {
color: var(--gray);
margin-bottom: 1rem;
}
.read-more {
color: var(--primary);
text-decoration: none;
font-weight: 600;
}
/* Tips */
.tips {
padding: 5rem 0;
background: var(--white);
}
.tips-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.tip-card {
text-align: center;
padding: 2rem;
background: var(--light);
border-radius: 20px;
transition: all 0.3s;
}
.tip-card:hover {
transform: translateY(-5px);
}
.tip-card i {
font-size: 2.5rem;
color: var(--primary);
margin-bottom: 1rem;
}
.tip-card h3 {
margin-bottom: 0.5rem;
}
.tip-card p {
color: var(--gray);
}
/* Gallery */
.gallery {
padding: 5rem 0;
}
.gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
.gallery-item {
background: linear-gradient(135deg, var(--primary), var(--secondary));
height: 250px;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 4rem;
transition: all 0.3s;
}
.gallery-item:hover {
transform: scale(1.02);
}
/* Contact */
.contact {
padding: 5rem 0;
background: var(--white);
}
.contact-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
}
.contact-info h2 {
font-size: 2rem;
margin-bottom: 1rem;
}
.social-links {
display: flex;
flex-direction: column;
gap: 1rem;
margin-top: 2rem;
}
.social-links a {
text-decoration: none;
color: var(--dark);
font-weight: 500;
display: flex;
align-items: center;
gap: 0.5rem;
transition: color 0.3s;
}
.social-links a:hover {
color: var(--primary);
}
.social-links i {
font-size: 1.2rem;
width: 30px;
}
.contact-form {
background: var(--light);
padding: 2rem;
border-radius: 20px;
}
.contact-form h3 {
margin-bottom: 1rem;
}
.contact-form input,
.contact-form textarea {
width: 100%;
padding: 0.8rem;
border: 1px solid var(--border);
border-radius: 8px;
margin-bottom: 1rem;
font-family: inherit;
}
.contact-form textarea {
resize: vertical;
}
/* Footer */
footer {
background: var(--dark);
color: #888;
text-align: center;
padding: 2rem;
}
footer i {
color: var(--primary);
}
/* Responsive */
@media (max-width: 900px) {
.contact-grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 768px) {
.nav-links {
display: none;
}
.mobile-menu {
display: block;
}
.hero h1 {
font-size: 2.2rem;
}
.section-header h2 {
font-size: 1.8rem;
}
.destinations-grid {
grid-template-columns: 1fr;
}
.gallery-grid {
grid-template-columns: repeat(2, 1fr);
}
}
// Travel Blog JavaScript
// Mobile Menu Toggle
const mobileMenu = document.querySelector('.mobile-menu');
const navLinks = document.querySelector('.nav-links');
if (mobileMenu) {
mobileMenu.addEventListener('click', () => {
navLinks.classList.toggle('active');
mobileMenu.classList.toggle('active');
});
}
// Smooth Scroll
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth' });
if (navLinks && navLinks.classList.contains('active')) {
navLinks.classList.remove('active');
mobileMenu.classList.remove('active');
}
}
});
});
// Contact Form Handler
const contactForm = document.getElementById('contactForm');
if (contactForm) {
contactForm.addEventListener('submit', (e) => {
e.preventDefault();
alert('✈️ Message sent! Thanks for reaching out.');
contactForm.reset();
});
}
// Intersection Observer for animations
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}
});
}, observerOptions);
document.querySelectorAll('.destination-card, .tip-card, .gallery-item').forEach(el => {
el.style.opacity = '0';
el.style.transform = 'translateY(20px)';
el.style.transition = 'all 0.5s ease';
observer.observe(el);
});
console.log('Travel blog ready!');