First pass at basic functionality.

This PR introduces the beginnings of Sprint Padawan.

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2026-05-02 02:01:53 -06:00
parent 3586be0e14
commit 16bed1b8c0
51 changed files with 4597 additions and 1 deletions
+74
View File
@@ -0,0 +1,74 @@
<!doctype html>
<html lang="en">
{{template "auth-head" (dict "Title" "Sign In")}}
<body>
<div class="auth-card">
<div class="auth-logo">
<img
src="/static/img/logo.webp"
alt="SprintPadawan"
height="56"
width="56"
fetchpriority="high"
decoding="async"
/>
</div>
<p class="auth-subtitle">Sign in to your account</p>
{{if .Error}}
<div class="form-error">
<svg
xmlns="http://www.w3.org/2000/svg"
width="15"
height="15"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2.5"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<line x1="12" y1="8" x2="12" y2="12" />
<line x1="12" y1="16" x2="12.01" y2="16" />
</svg>
{{.Error}}
</div>
{{end}}
<form class="auth-form" method="POST" action="/login">
<div class="form-group">
<label class="form-label" for="username">Username</label>
<input
class="form-input"
type="text"
id="username"
name="username"
placeholder="your username"
autocomplete="username"
required
/>
</div>
<div class="form-group">
<label class="form-label" for="password">Password</label>
<input
class="form-input"
type="password"
id="password"
name="password"
placeholder="••••••••"
autocomplete="current-password"
required
/>
</div>
<button class="btn-primary" type="submit">Sign In</button>
</form>
<p class="auth-footer">
No account? <a href="/register">Create one</a>
</p>
</div>
</body>
</html>