| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | <title>Self-Talk Journal | QuantumCode</title> |
| | <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
| | <script src="https://cdn.tailwindcss.com"></script> |
| | <script src="https://unpkg.com/feather-icons"></script> |
| | <script src="components/self-talk-recorder.js"></script> |
| | <style> |
| | @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap'); |
| | |
| | body { |
| | font-family: 'Space Grotesk', sans-serif; |
| | background-color: #0f172a; |
| | color: #e2e8f0; |
| | } |
| | |
| | .gradient-text { |
| | background: linear-gradient(90deg, #7c3aed 0%, #2563eb 100%); |
| | -webkit-background-clip: text; |
| | background-clip: text; |
| | color: transparent; |
| | } |
| | |
| | .glass-card { |
| | background: rgba(15, 23, 42, 0.7); |
| | backdrop-filter: blur(10px); |
| | border: 1px solid rgba(255, 255, 255, 0.1); |
| | border-radius: 1rem; |
| | } |
| | |
| | .entry-card { |
| | transition: all 0.3s ease; |
| | border: 1px solid transparent; |
| | } |
| | |
| | .entry-card:hover { |
| | transform: translateY(-3px); |
| | border-color: #7c3aed; |
| | } |
| | </style> |
| | </head> |
| | <body class="min-h-screen"> |
| | <nav class="px-6 py-4 flex justify-between items-center"> |
| | <div class="flex items-center space-x-2"> |
| | <i data-feather="cpu" class="text-indigo-500"></i> |
| | <span class="text-xl font-bold gradient-text">QuantumCode</span> |
| | </div> |
| | <div class="flex items-center space-x-2"> |
| | <a href="i18n-setup.html" class="flex items-center text-sm hover:text-indigo-400 transition-colors"> |
| | <i data-feather="globe" class="w-4 h-4 mr-1"></i> |
| | <span id="currentLang">EN</span> |
| | </a> |
| | </div> |
| | <div class="hidden md:flex space-x-8"> |
| | <a href="index.html" class="hover:text-indigo-400 transition-colors">Home</a> |
| | <a href="progress-report.html" class="hover:text-indigo-400 transition-colors">Progress</a> |
| | <a href="self-talk-journal.html" class="text-indigo-400">Self-Talk Journal</a> |
| | <a href="gamequest.html" class="hover:text-indigo-400 transition-colors">GameQuest</a> |
| | </div> |
| | </nav> |
| | |
| | <main class="container mx-auto px-4 py-16"> |
| | <section class="max-w-6xl mx-auto mb-12"> |
| | <h1 class="text-4xl md:text-5xl font-bold mb-6"> |
| | <span class="gradient-text">Self-Talk Journal</span> |
| | </h1> |
| | <p class="text-xl text-slate-300 mb-10"> |
| | Record and reflect on your daily self-talk patterns to build confidence and awareness. |
| | </p> |
| | |
| | <div class="glass-card p-8 mb-10"> |
| | <self-talk-recorder></self-talk-recorder> |
| | </div> |
| | |
| | <h2 class="text-3xl font-bold gradient-text mb-6">Past Entries</h2> |
| | <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6" id="entriesContainer"> |
| | |
| | </div> |
| | </section> |
| | </main> |
| | |
| | <script> |
| | |
| | async function loadEntries() { |
| | |
| | const mockEntries = [ |
| | { |
| | id: '1', |
| | date: '2023-06-15', |
| | duration: '1:02', |
| | thumbnail: 'http://static.photos/people/320x240/1', |
| | mood: 'Confident' |
| | }, |
| | { |
| | id: '2', |
| | date: '2023-06-14', |
| | duration: '0:58', |
| | thumbnail: 'http://static.photos/people/320x240/2', |
| | mood: 'Thoughtful' |
| | }, |
| | { |
| | id: '3', |
| | date: '2023-06-13', |
| | duration: '1:05', |
| | thumbnail: 'http://static.photos/people/320x240/3', |
| | mood: 'Nervous' |
| | } |
| | ]; |
| | |
| | const container = document.getElementById('entriesContainer'); |
| | container.innerHTML = mockEntries.map(entry => ` |
| | <div class="glass-card entry-card p-6 cursor-pointer"> |
| | <div class="relative pb-[56.25%] mb-4 overflow-hidden rounded-lg"> |
| | <img src="${entry.thumbnail}" alt="Entry thumbnail" class="absolute h-full w-full object-cover"> |
| | <div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-3"> |
| | <div class="text-white font-medium">${entry.duration}</div> |
| | </div> |
| | </div> |
| | <div class="flex justify-between items-center"> |
| | <div> |
| | <h3 class="font-bold">${entry.date}</h3> |
| | <p class="text-sm text-slate-400">${entry.mood}</p> |
| | </div> |
| | <button class="text-indigo-400 hover:text-indigo-300"> |
| | <i data-feather="play"></i> |
| | </button> |
| | </div> |
| | </div> |
| | `).join(''); |
| | |
| | feather.replace(); |
| | } |
| | |
| | loadEntries(); |
| | |
| | |
| | document.getElementById('currentLang').textContent = |
| | document.cookie.match('(^|;)\\s*NEXT_LOCALE\\s*=\\s*([^;]+)')?.pop() || 'EN'; |
| | |
| | feather.replace(); |
| | </script> |
| | </body> |
| | </html> |