馃 distributed transcription service
thistle.dunkirk.sh
1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Thistle</title>
8 <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png">
9 <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png">
10 <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png">
11 <link rel="manifest" href="../../public/favicon/site.webmanifest">
12 <link rel="stylesheet" href="../styles/main.css">
13 <style>
14 .hero-title {
15 font-size: 3rem;
16 font-weight: 700;
17 color: var(--text);
18 margin-bottom: 1rem;
19 }
20
21 .hero-subtitle {
22 font-size: 1.25rem;
23 color: var(--text);
24 opacity: 0.8;
25 margin-bottom: 2rem;
26 }
27
28 main {
29 text-align: center;
30 padding: 4rem 2rem;
31 }
32
33 .cta-buttons {
34 display: flex;
35 gap: 1rem;
36 justify-content: center;
37 margin-top: 2rem;
38 }
39
40 .btn {
41 padding: 0.75rem 1.5rem;
42 border-radius: 6px;
43 font-size: 1rem;
44 font-weight: 500;
45 cursor: pointer;
46 transition: all 0.2s;
47 font-family: inherit;
48 border: 2px solid;
49 text-decoration: none;
50 display: inline-block;
51 }
52
53 .btn-primary {
54 background: var(--primary);
55 color: white;
56 border-color: var(--primary);
57 }
58
59 .btn-primary:hover {
60 background: transparent;
61 color: var(--primary);
62 }
63
64 .btn-secondary {
65 background: transparent;
66 color: var(--text);
67 border-color: var(--secondary);
68 }
69
70 .btn-secondary:hover {
71 border-color: var(--primary);
72 color: var(--primary);
73 }
74
75 @media (max-width: 640px) {
76 .hero-title {
77 font-size: 2.5rem;
78 }
79
80 .cta-buttons {
81 flex-direction: column;
82 align-items: center;
83 }
84 }
85 </style>
86</head>
87
88<body>
89 <header>
90 <div class="header-content">
91 <a href="/" class="site-title">
92 <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo">
93 <span>Thistle</span>
94 </a>
95 <auth-component></auth-component>
96 </div>
97 </header>
98
99 <main>
100 <h1 class="hero-title">Thistle</h1>
101 <p class="hero-subtitle">AI-powered audio transcription made simple</p>
102
103 <div class="cta-buttons">
104 <button id="start-btn" class="btn btn-primary">Start Transcribing</button>
105 </div>
106 </main>
107
108 <script type="module" src="../components/auth.ts"></script>
109 <script type="module">
110 document.getElementById('start-btn').addEventListener('click', async () => {
111 const authComponent = document.querySelector('auth-component');
112 const isLoggedIn = await authComponent.isAuthenticated();
113
114 if (isLoggedIn) {
115 window.location.href = '/classes';
116 } else {
117 authComponent.openAuthModal();
118 }
119 });
120 </script>
121</body>
122
123</html>