34 lines
1.2 KiB
HTML
34 lines
1.2 KiB
HTML
{{define "login"}}
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
<meta name="color-scheme" content="dark light">
|
|
<title>BookmarkManager</title>
|
|
<link rel="icon" href="/static/logo.svg" type="image/svg+xml">
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<link rel="preload" href="/static/fonts/instrument-serif-400-latin.woff2" as="font" type="font/woff2" crossorigin>
|
|
</head>
|
|
<body>
|
|
<main class="login-card">
|
|
<div>
|
|
<span class="eyebrow">Private library</span>
|
|
<h1 class="brand">{{template "mark" .}}<span>Bookmark<em>Manager</em></span></h1>
|
|
</div>
|
|
<form method="post" action="/login">
|
|
<div>
|
|
<label for="password">Password</label>
|
|
<input id="password" name="password" type="password"
|
|
autocomplete="current-password" autofocus required>
|
|
</div>
|
|
{{/* The page reloads on a failed sign-in, so the message is present from
|
|
the start; role=alert is what gets it announced anyway. */}}
|
|
<p class="error" role="alert">{{.Error}}</p>
|
|
<button type="submit">Sign in</button>
|
|
</form>
|
|
</main>
|
|
</body>
|
|
</html>
|
|
{{end}}
|