80 lines
4.3 KiB
Plaintext
80 lines
4.3 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="color-scheme" content="light dark" />
|
|
<title>Spine — add book</title>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tabler-icons/3.31.0/iconfont/tabler-icons.min.css" />
|
|
<style>
|
|
:root {
|
|
--bg-page: #efeee9; --bg-primary: #ffffff; --bg-secondary: #f5f4ef;
|
|
--text-primary: #1d1d1b; --text-secondary: #5f5e5a; --text-tertiary: #8a8980;
|
|
--bg-info: #e6f1fb; --text-info: #0c447c; --border-info: #378add;
|
|
--bg-warning: #faeeda; --text-warning: #854f0b;
|
|
--bg-success: #e1f5ee; --text-success: #085041;
|
|
--border-tertiary: rgba(0,0,0,0.12); --border-secondary: rgba(0,0,0,0.22);
|
|
--radius-md: 8px; --radius-lg: 12px;
|
|
--mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--bg-page: #161615; --bg-primary: #232321; --bg-secondary: #1c1c1a;
|
|
--text-primary: #ededeb; --text-secondary: #a8a79f; --text-tertiary: #76756d;
|
|
--bg-info: #14304a; --text-info: #b5d4f4; --border-info: #378add;
|
|
--bg-warning: #3a2c12; --text-warning: #fac775;
|
|
--bg-success: #103a30; --text-success: #9fe1cb;
|
|
--border-tertiary: rgba(255,255,255,0.14); --border-secondary: rgba(255,255,255,0.24);
|
|
}
|
|
}
|
|
* { box-sizing: border-box; }
|
|
body { margin: 0; background: var(--bg-page); color: var(--text-primary);
|
|
font-family: var(--sans); padding: 28px 16px; }
|
|
.wrap { max-width: 560px; margin: 0 auto; }
|
|
.frame { font-family: var(--mono); border: 0.5px solid var(--border-secondary);
|
|
border-radius: var(--radius-lg); overflow: hidden; background: var(--bg-primary); }
|
|
.titlebar { display:flex; align-items:center; justify-content:space-between;
|
|
padding:10px 14px; border-bottom:0.5px solid var(--border-tertiary);
|
|
background: var(--bg-secondary); font-size:13px; }
|
|
.form-body { padding:14px; font-size:13px; }
|
|
.form-body label { display:block; margin-bottom:6px; }
|
|
.form-body input, .form-body select, .form-body textarea {
|
|
font-family: var(--mono); font-size:13px; width:100%; padding:6px 8px;
|
|
border:0.5px solid var(--border-secondary); border-radius:var(--radius-md);
|
|
background:var(--bg-page); color:var(--text-primary); margin-bottom:12px;
|
|
}
|
|
.form-body button { font-family: var(--mono); font-size:13px; padding:6px 14px;
|
|
border:0.5px solid var(--border-info); border-radius:var(--radius-md);
|
|
background:var(--bg-info); color:var(--text-info); cursor:pointer; }
|
|
.form-body button:hover { background:var(--border-info); color:white; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="wrap">
|
|
<div class="frame">
|
|
<div class="titlebar">
|
|
<span style="font-weight:500;">spine · add book</span>
|
|
</div>
|
|
<div class="form-body">
|
|
<form method="post" action="/add">
|
|
<label>Date added <input type="date" name="date_added" /></label>
|
|
<label>Title * <input type="text" name="title" required autofocus /></label>
|
|
<label>Author <input type="text" name="author" list="authors-list" /></label>
|
|
<datalist id="authors-list">{{#existing_authors}}<option value="{{.}}">{{/existing_authors}}</datalist>
|
|
<label>Category <input type="text" name="category" list="categories-list" /></label>
|
|
<datalist id="categories-list">{{#existing_categories}}<option value="{{.}}">{{/existing_categories}}</datalist>
|
|
<label>Format <select name="format"><option value="">—</option><option value="hardcover">Hardcover</option><option value="ebook">eBook</option><option value="audiobook">Audiobook</option></select></label>
|
|
<label>ISBN <input type="text" name="isbn" /></label>
|
|
<label>Cover (path) <input type="text" name="cover" placeholder="covers/filename.jpg" /></label>
|
|
<label>Recommended by <input type="text" name="rec_by" /></label>
|
|
<label>Why it's on your radar <input type="text" name="rec_note" /></label>
|
|
<label>Initial note <textarea name="initial_note" rows="3" placeholder="First impressions…"></textarea></label>
|
|
<button type="submit">Add book</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|