Tako12's picture
Create a sophisticated and atmospheric website experience for "Moodscape," a platform designed to help users discover articles and content with similar "vibes" to books, films/series, anime, or games they've recently enjoyed.
1e32b5c verified
Raw History Blame Contribute Delete
16.6 kB
<!DOCTYPE html>
<html lang="en" class="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Moodscape | Discover Your Next Vibe</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<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">
<style>
body {
font-family: 'Inter', sans-serif;
transition: background-color 0.3s ease, color 0.3s ease;
}
.playfair {
font-family: 'Playfair Display', serif;
}
.hero-bg {
background-image: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('https://images.unsplash.com/photo-1506744038136-46273834b3fb?ixlib=rb-1.2.1&auto=format&fit=crop&w=1950&q=80');
background-size: cover;
background-position: center;
}
.dark .hero-bg {
background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1506744038136-46273834b3fb?ixlib=rb-1.2.1&auto=format&fit=crop&w=1950&q=80');
}
.card-hover {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-hover:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}
.dark .card-hover:hover {
box-shadow: 0 10px 25px -5px rgba(255, 255, 255, 0.05);
}
.theme-toggle {
transition: transform 0.3s ease;
}
.theme-toggle:hover {
transform: rotate(30deg);
}
.search-input {
transition: box-shadow 0.3s ease;
}
.search-input:focus {
box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.3);
}
.dark .search-input:focus {
box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.5);
}
</style>
</head>
<body class="bg-[#F8F8F8] text-gray-800 dark:bg-gray-900 dark:text-gray-100 min-h-screen">
<!-- Header -->
<header class="sticky top-0 z-50 bg-white/80 backdrop-blur-sm dark:bg-gray-800/80 shadow-sm">
<div class="container mx-auto px-4 py-4 flex items-center justify-between">
<div class="flex items-center space-x-8">
<a href="#" class="text-2xl font-bold playfair text-gray-800 dark:text-white">Moodscape</a>
<nav class="hidden md:flex space-x-6">
<a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Books</a>
<a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Films/Series</a>
<a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Anime</a>
<a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Games</a>
</nav>
</div>
<div class="flex items-center space-x-4">
<div class="relative hidden md:block">
<input type="text" placeholder="Search for a mood, title, or vibe..." class="search-input pl-10 pr-4 py-2 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 focus:outline-none w-64">
<i data-feather="search" class="absolute left-3 top-2.5 text-gray-400 dark:text-gray-300"></i>
</div>
<button id="theme-toggle" class="theme-toggle p-2 rounded-full bg-gray-100 dark:bg-gray-700">
<i data-feather="sun" class="text-yellow-500 dark:hidden"></i>
<i data-feather="moon" class="text-indigo-300 hidden dark:block"></i>
</button>
<button class="md:hidden p-2">
<i data-feather="menu"></i>
</button>
</div>
</div>
</header>
<!-- Hero Section -->
<section class="hero-bg min-h-[70vh] flex items-center justify-center text-center text-white px-4">
<div class="max-w-3xl mx-auto">
<h1 class="playfair text-4xl md:text-6xl font-bold mb-6">Discover Your Next Vibe</h1>
<p class="text-xl md:text-2xl mb-8">Explore articles and content that resonate with the stories you love.</p>
<div class="relative max-w-xl mx-auto">
<input type="text" placeholder="What did you just experience?" class="search-input w-full pl-6 pr-32 py-4 rounded-full border border-white/30 bg-white/20 focus:outline-none focus:bg-white/30 backdrop-blur-sm">
<button class="absolute right-2 top-2 bg-white text-gray-800 px-6 py-2 rounded-full font-medium hover:bg-gray-100 transition">Search</button>
</div>
</div>
</section>
<!-- Main Content -->
<main class="container mx-auto px-4 py-16">
<h2 class="playfair text-3xl font-bold mb-12 text-center">Featured Articles</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12">
<!-- Article Card 1 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1507842217343-583bb7270b66?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Library" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-indigo-600 dark:text-indigo-300 font-medium">Books</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">The Melancholic Beauty of Classic Literature</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">Exploring how 19th century novels capture the human condition with poetic melancholy.</p>
<a href="#" class="text-indigo-600 dark:text-indigo-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
<!-- Article Card 2 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1489599849927-2ee91cede3ba?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Cinema" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-purple-600 dark:text-purple-300 font-medium">Films</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">Neon Noir: The Visual Language of Cyberpunk</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">How Blade Runner 2049 and similar films create immersive dystopian atmospheres.</p>
<a href="#" class="text-purple-600 dark:text-purple-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
<!-- Article Card 3 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1545566237-0a2ca6bea37e?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Anime" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-rose-600 dark:text-rose-300 font-medium">Anime</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">The Quiet Intensity of Studio Ghibli</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">Examining the atmospheric storytelling in Spirited Away and My Neighbor Totoro.</p>
<a href="#" class="text-rose-600 dark:text-rose-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
<!-- Article Card 4 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1542751371-adc38448a05e?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Games" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-emerald-600 dark:text-emerald-300 font-medium">Games</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">The Haunting Worlds of Indie Horror</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">How games like Limbo and Inside create tension through minimalist design.</p>
<a href="#" class="text-emerald-600 dark:text-emerald-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
<!-- Article Card 5 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1510172951991-856a62a9e395?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Books" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-amber-600 dark:text-amber-300 font-medium">Books</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">Magical Realism and Everyday Wonder</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">The delicate balance between the mundane and magical in contemporary fiction.</p>
<a href="#" class="text-amber-600 dark:text-amber-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
<!-- Article Card 6 -->
<article class="card-hover bg-white dark:bg-gray-800 rounded-xl overflow-hidden shadow-md">
<img src="https://images.unsplash.com/photo-1536440136628-849c177e76a1?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Cinema" class="w-full h-48 object-cover">
<div class="p-6">
<span class="text-sm text-blue-600 dark:text-blue-300 font-medium">Films</span>
<h3 class="playfair text-xl font-bold mt-2 mb-3">The Comfort of Wes Anderson's Symmetry</h3>
<p class="text-gray-600 dark:text-gray-300 mb-4">Why the director's distinctive visual style creates such satisfying viewing experiences.</p>
<a href="#" class="text-blue-600 dark:text-blue-300 font-medium flex items-center hover:underline">
Read More <i data-feather="arrow-right" class="ml-2 w-4 h-4"></i>
</a>
</div>
</article>
</div>
<div class="flex justify-center">
<nav class="flex items-center space-x-2">
<button class="px-4 py-2 rounded-md bg-gray-200 dark:bg-gray-700 text-gray-800 dark:text-white">1</button>
<button class="px-4 py-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700">2</button>
<button class="px-4 py-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700">3</button>
<button class="px-4 py-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700">
<i data-feather="chevron-right"></i>
</button>
</nav>
</div>
</main>
<!-- Footer -->
<footer class="bg-gray-100 dark:bg-gray-800 py-12">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h3 class="playfair text-xl font-bold mb-4">Moodscape</h3>
<p class="text-gray-600 dark:text-gray-300">Discover content that resonates with your current mood and favorite stories.</p>
</div>
<div>
<h4 class="font-bold mb-4">Explore</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Books</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Films & Series</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Anime</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Games</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Company</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">About</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Blog</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Careers</a></li>
<li><a href="#" class="text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition">Contact</a></li>
</ul>
</div>
<div>
<h4 class="font-bold mb-4">Subscribe</h4>
<p class="text-gray-600 dark:text-gray-300 mb-4">Get the latest mood recommendations straight to your inbox.</p>
<div class="flex">
<input type="email" placeholder="Your email" class="px-4 py-2 rounded-l-md border border-r-0 border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 focus:outline-none w-full">
<button class="bg-indigo-600 text-white px-4 py-2 rounded-r-md hover:bg-indigo-700 transition">
<i data-feather="send"></i>
</button>
</div>
</div>
</div>
<div class="border-t border-gray-200 dark:border-gray-700 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-500 dark:text-gray-400 mb-4 md:mb-0">© 2023 Moodscape. All rights reserved.</p>
<div class="flex space-x-6">
<a href="#" class="text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-white transition">
<i data-feather="twitter"></i>
</a>
<a href="#" class="text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-white transition">
<i data-feather="instagram"></i>
</a>
<a href="#" class="text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-white transition">
<i data-feather="facebook"></i>
</a>
</div>
</div>
</div>
</footer>
<script>
// Theme toggle functionality
const themeToggle = document.getElementById('theme-toggle');
const html = document.documentElement;
// Check for saved user preference, if any, on load
const currentTheme = localStorage.getItem('theme') || 'light';
html.classList.add(currentTheme);
themeToggle.addEventListener('click', () => {
if (html.classList.contains('dark')) {
html.classList.remove('dark');
localStorage.setItem('theme', 'light');
} else {
html.classList.add('dark');
localStorage.setItem('theme', 'dark');
}
});
// Feather icons
feather.replace();
</script>
</body>
</html>