base.html (2972B)
1 <!DOCTYPE html> 2 <html lang="en" data-theme="dark"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>{% block title %}StenoDojo{% endblock %}</title> 7 <link rel="preconnect" href="https://fonts.googleapis.com"> 8 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 9 <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet"> 10 <script src="https://unpkg.com/htmx.org@2.0.4"></script> 11 <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script> 12 <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script> 13 <link rel="stylesheet" href="/static/css/style.css?v={{ cache_bust }}"> 14 <script> 15 (function(){var m=document.cookie.match(/(?:^| )theme=([^;]+)/);document.documentElement.setAttribute('data-theme',m?m[1]:'dark')})(); 16 </script> 17 <script src="/static/js/app.js?v={{ cache_bust }}" defer></script> 18 <script src="/static/js/neu-fx.js?v={{ cache_bust }}" defer></script> 19 </head> 20 <body> 21 <nav class="navbar"> 22 <div class="nav-inner"> 23 <a href="/" class="nav-brand"> 24 <svg class="nav-logo" viewBox="0 0 24 24" fill="none"> 25 <rect x="1" y="3" width="9" height="11" rx="2.5" fill="currentColor" opacity="0.6"/> 26 <rect x="14" y="3" width="9" height="11" rx="2.5" fill="currentColor"/> 27 <rect x="5" y="16" width="14" height="6" rx="2.5" fill="currentColor" opacity="0.8"/> 28 </svg> 29 StenoDojo 30 </a> 31 <button class="nav-hamburger" id="nav-hamburger" aria-label="Toggle menu"> 32 <span></span><span></span><span></span> 33 </button> 34 <ul class="nav-links" id="nav-links"> 35 <li><a href="/" class="nav-link">Dashboard</a></li> 36 <li><a href="/practice?mode=common" class="nav-link">Practice</a></li> 37 <li><a href="/stats" class="nav-link">Stats</a></li> 38 <li><a href="/settings" class="nav-link">Settings</a></li> 39 <li> 40 <button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme"> 41 <span id="theme-icon"></span> 42 </button> 43 </li> 44 {% if current_user %} 45 <li class="nav-user"> 46 {% if current_user.avatar_url %} 47 <img src="{{ current_user.avatar_url }}" alt="" class="nav-avatar"> 48 {% endif %} 49 <a href="/logout" class="nav-link nav-link--logout">Logout</a> 50 </li> 51 {% endif %} 52 </ul> 53 </div> 54 </nav> 55 56 <main class="main-content"> 57 {% block content %}{% endblock %} 58 </main> 59 60 {% block scripts %}{% endblock %} 61 </body> 62 </html>