1{{ define "user/login" }}
2 <!doctype html>
3 <html lang="en">
4 <head>
5 <meta charset="UTF-8" />
6 <meta
7 name="viewport"
8 content="width=device-width, initial-scale=1.0"
9 />
10 <script src="/static/htmx.min.js"></script>
11 <link rel="stylesheet" href="/static/tw.css" type="text/css" />
12 <title>login</title>
13 </head>
14 <body class="flex items-center justify-center min-h-screen">
15 <main class="max-w-64">
16 <h1 class="text-center text-2xl font-semibold italic">
17 tangled
18 </h1>
19 <h2 class="text-center text-xl italic">
20 tightly-knit social coding.
21 </h2>
22 <form
23 class="w-full mt-4"
24 hx-post="/login"
25 hx-swap="none"
26 hx-disabled-elt="this"
27 >
28 <div class="flex flex-col">
29 <label for="handle">handle</label>
30 <input type="text" id="handle" name="handle" required />
31 <span class="text-xs text-gray-500 mt-1">
32 You need to use your
33 <a href="https://bsky.app">Bluesky</a> handle to log
34 in.
35 </span>
36 </div>
37
38 <div class="flex flex-col mt-2">
39 <label for="app_password">app password</label>
40 <input
41 type="password"
42 id="app_password"
43 name="app_password"
44 required
45 />
46 <span class="text-xs text-gray-500 mt-1">
47 Generate an app password
48 <a
49 href="https://bsky.app/settings/app-passwords"
50 target="_blank"
51 >here</a
52 >.
53 </span>
54 </div>
55
56 <button
57 class="btn w-full my-2 mt-6"
58 type="submit"
59 id="login-button"
60 >
61 <span>login</span>
62 </button>
63 </form>
64 <p class="text-sm text-gray-500">
65 Join our IRC channel:
66 <a href="https://web.libera.chat/#tangled"
67 ><code>#tangled</code> on Libera Chat</a
68 >.
69 </p>
70 <p id="login-msg" class="error w-full"></p>
71 </main>
72 </body>
73 </html>
74{{ end }}