duuinh's picture
can you complete the UI.
38e5eac verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Characters - Lingua Noel</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<link rel="stylesheet" href="style.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#C62828',
secondary: '#388E3C',
accent: '#D32F2F',
background: '#FFF3E0',
text: '#263238',
}
}
}
}
</script>
</head>
<body class="bg-background text-text min-h-screen">
<custom-header></custom-header>
<main class="container mx-auto px-4 py-8">
<div class="max-w-6xl mx-auto">
<!-- Header -->
<div class="bg-gradient-to-r from-secondary to-primary text-white rounded-2xl p-8 mb-8 shadow-xl">
<div class="flex items-center justify-between">
<div>
<h1 class="text-3xl font-bold mb-2">Meet the Characters of Noëlville</h1>
<p class="text-lg opacity-90">Each character helps you learn different aspects of French language and culture</p>
</div>
<a href="/" class="bg-white text-primary px-6 py-2 rounded-full font-bold hover:bg-gray-100 transition">
← Back to Story
</a>
</div>
</div>
<!-- Characters Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12">
<!-- Pierre -->
<div class="bg-white rounded-2xl shadow-lg overflow-hidden">
<div class="h-48 bg-red-100 relative">
<img src="http://static.photos/people/640x360/10" alt="Pierre" class="w-full h-full object-cover">
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
<h3 class="text-2xl font-bold text-white">Pierre</h3>
<p class="text-white opacity-90">The Baker</p>
</div>
</div>
<div class="p-6">
<div class="flex items-center mb-4">
<div class="bg-primary text-white p-2 rounded-full mr-3">
<i data-feather="coffee"></i>
</div>
<div>
<p class="font-bold">Teaches: Food & Greetings</p>
<p class="text-sm text-gray-600">Appears in: Chapters 1, 3, 7</p>
</div>
</div>
<p class="text-gray-700 mb-4">A friendly baker who runs "La Boulangerie de Pierre." He loves teaching visitors about French pastries and basic conversational phrases.</p>
<div class="space-y-2">
<p class="font-bold text-primary">Key Phrases:</p>
<p class="text-sm bg-gray-50 p-3 rounded">"Bonjour! Je suis Pierre. Voulez-vous goûter un croissant?"</p>
<p class="text-sm bg-gray-50 p-3 rounded">"C'est délicieux, n'est-ce pas?"</p>
</div>
</div>
</div>
<!-- Claire -->
<div class="bg-white rounded-2xl shadow-lg overflow-hidden">
<div class="h-48 bg-green-100 relative">
<img src="http://static.photos/people/640x360/11" alt="Claire" class="w-full h-full object-cover">
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
<h3 class="text-2xl font-bold text-white">Claire</h3>
<p class="text-white opacity-90">Market Vendor</p>
</div>
</div>
<div class="p-6">
<div class="flex items-center mb-4">
<div class="bg-secondary text-white p-2 rounded-full mr-3">
<i data-feather="shopping-bag"></i>
</div>
<div>
<p class="font-bold">Teaches: Shopping & Numbers</p>
<p class="text-sm text-gray-600">Appears in: Chapters 2, 5, 8</p>
</div>
</div>
<p class="text-gray-700 mb-4">Runs a Christmas ornament stall at the market. She'll help you learn numbers, prices, and holiday vocabulary while shopping.</p>
<div class="space-y-2">
<p class="font-bold text-secondary">Key Phrases:</p>
<p class="text-sm bg-gray-50 p-3 rounded">"Combien ça coûte? Cinq euros, s'il vous plaît."</p>
<p class="text-sm bg-gray-50 p-3 rounded">"C'est pour offrir? (Is it a gift?)"</p>
</div>
</div>
</div>
<!-- Luc -->
<div class="bg-white rounded-2xl shadow-lg overflow-hidden">
<div class="h-48 bg-blue-100 relative">
<img src="http://static.photos/people/640x360/12" alt="Luc" class="w-full h-full object-cover">
<div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
<h3 class="text-2xl font-bold text-white">Luc</h3>
<p class="text-white opacity-90">Town Musician</p>
</div>
</div>
<div class="p-6">
<div class="flex items-center mb-4">
<div class="bg-accent text-white p-2 rounded-full mr-3">
<i data-feather="music"></i>
</div>
<div>
<p class="font-bold">Teaches: Music & Culture</p>
<p class="text-sm text-gray-600">Appears in: Chapters 4, 9, 12</p>
</div>
</div>
<p class="text-gray-700 mb-4">A talented musician who plays Christmas carols in the town square. He teaches French through songs and cultural traditions.</p>
<div class="space-y-2">
<p class="font-bold text-accent">Key Phrases:</p>
<p class="text-sm bg-gray-50 p-3 rounded">"Chantez avec moi! (Sing with me!)"</p>
<p class="text-sm bg-gray-50 p-3 rounded">"Connaissez-vous cette chanson? (Do you know this song?)"</p>
</div>
</div>
</div>
</div>
<!-- Character Interactions -->
<div class="bg-white rounded-2xl shadow-lg p-8">
<h2 class="text-2xl font-bold text-primary mb-6">Practice Conversations</h2>
<div class="space-y-6">
<div class="p-6 bg-gradient-to-r from-blue-50 to-green-50 rounded-xl">
<h3 class="font-bold text-xl mb-4">Dialogue Exercise with Pierre</h3>
<div class="space-y-4">
<div class="flex items-start">
<div class="bg-primary text-white rounded-full p-2 mr-4">
<i data-feather="user"></i>
</div>
<div class="flex-1">
<p class="font-medium">You enter the bakery. What do you say?</p>
<div class="mt-3 space-y-2">
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition">
A. "Bonjour, je voudrais une baguette, s'il vous plaît."
</button>
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition">
B. "Où est la gare?"
</button>
<button class="text-left block w-full p-3 bg-white rounded-lg border hover:border-primary transition">
C. "Merci, au revoir!"
</button>
</div>
</div>
</div>
</div>
</div>
<div class="text-center">
<p class="text-gray-600 mb-4">Ready to interact with these characters in the main story?</p>
<a href="/" class="inline-block bg-primary text-white px-8 py-3 rounded-full font-bold hover:bg-red-800 transition">
Return to Today's Story →
</a>
</div>
</div>
</div>
</div>
</main>
<custom-footer></custom-footer>
<script src="components/header.js"></script>
<script src="components/footer.js"></script>
<floating-action></floating-action>
<script src="components/floating-action.js"></script>
<script src="script.js"></script>
<script>
feather.replace();
</script>
</body>
</html>