stenodojo

stenodojo
git clone git@git.zachrice.app:repos/stenodojo.git
Log | Files | Refs

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>