From bc2fa7b966cf2d781888d822d636a4248cff00a6 Mon Sep 17 00:00:00 2001 From: "Christoph K." Date: Sun, 5 Apr 2026 20:57:03 +0200 Subject: [PATCH] Apply typewriter/editorial UI style using system fonts only Co-Authored-By: Claude Sonnet 4.6 --- webapp/src/components/app-shell.ts | 2 +- webapp/src/style.css | 207 ++++++++++++++++++++++++++++- 2 files changed, 201 insertions(+), 8 deletions(-) diff --git a/webapp/src/components/app-shell.ts b/webapp/src/components/app-shell.ts index aab75f8..84f747d 100644 --- a/webapp/src/components/app-shell.ts +++ b/webapp/src/components/app-shell.ts @@ -7,7 +7,7 @@ export class AppShell extends HTMLElement { connectedCallback(): void { this.innerHTML = `
diff --git a/webapp/src/style.css b/webapp/src/style.css index 72a211d..e62e842 100644 --- a/webapp/src/style.css +++ b/webapp/src/style.css @@ -1,17 +1,210 @@ +/* System fonts only — no external dependencies, no license issues */ + +:root { + --font-mono: 'Courier New', Courier, monospace; + --font-serif: Georgia, 'Times New Roman', serif; + --color-ink: #1a1a1a; + --color-muted: #666; + --color-rule: #ddd; + --color-bg: #fafaf8; + --column: 680px; +} + *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } -html, body { - height: 100%; - font-family: system-ui, sans-serif; - font-size: 16px; - color: #1a1a1a; - background: #f5f5f5; +html { + font-size: 18px; + background: var(--color-bg); + color: var(--color-ink); +} + +body { + font-family: var(--font-serif); + line-height: 1.7; + min-height: 100vh; } #app { - height: 100%; + min-height: 100vh; +} + +/* --- Navigation --- */ + +nav { + border-bottom: 1px solid var(--color-rule); + padding: 0.75rem 1.5rem; + display: flex; + align-items: center; + justify-content: space-between; + font-family: var(--font-mono); + font-size: 0.75rem; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +nav a { + color: var(--color-ink); + text-decoration: none; +} + +nav a:hover { + text-decoration: underline; +} + +nav button { + background: none; + border: none; + cursor: pointer; + font-family: var(--font-mono); + font-size: 0.75rem; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--color-muted); + padding: 0; +} + +nav button:hover { + color: var(--color-ink); +} + +/* --- Main content column --- */ + +main { + max-width: var(--column); + margin: 0 auto; + padding: 3rem 1.5rem; +} + +/* --- Typography --- */ + +h1 { + font-family: var(--font-mono); + font-size: 1rem; + font-weight: normal; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--color-muted); + margin-bottom: 2rem; + padding-bottom: 0.75rem; + border-bottom: 1px solid var(--color-rule); +} + +h2 { + font-family: var(--font-mono); + font-size: 0.75rem; + font-weight: normal; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--color-muted); + margin: 2.5rem 0 1rem; +} + +p { + margin-bottom: 1rem; + color: var(--color-muted); + font-family: var(--font-mono); + font-size: 0.85rem; +} + +/* --- Lists --- */ + +ul { + list-style: none; +} + +li { + border-bottom: 1px solid var(--color-rule); + padding: 0.75rem 0; + font-family: var(--font-mono); + font-size: 0.85rem; + color: var(--color-ink); +} + +li:first-child { + border-top: 1px solid var(--color-rule); +} + +li a { + color: var(--color-ink); + text-decoration: none; + display: block; +} + +li a:hover { + text-decoration: underline; +} + +/* --- Login form --- */ + +form { + max-width: 360px; +} + +form h1 { + margin-bottom: 2.5rem; +} + +label { + display: block; + font-family: var(--font-mono); + font-size: 0.75rem; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--color-muted); + margin-bottom: 1.5rem; +} + +input[type="text"], +input[type="password"] { + display: block; + width: 100%; + margin-top: 0.4rem; + padding: 0.5rem 0; + border: none; + border-bottom: 1px solid var(--color-ink); + background: transparent; + font-family: var(--font-mono); + font-size: 0.9rem; + color: var(--color-ink); + outline: none; +} + +input:focus { + border-bottom-color: var(--color-ink); +} + +button[type="submit"] { + margin-top: 2rem; + background: var(--color-ink); + color: var(--color-bg); + border: none; + padding: 0.6rem 1.5rem; + font-family: var(--font-mono); + font-size: 0.75rem; + letter-spacing: 0.08em; + text-transform: uppercase; + cursor: pointer; +} + +button[type="submit"]:hover { + opacity: 0.8; +} + +#login-error { + color: #c00; + font-size: 0.8rem; + margin-top: -0.5rem; + margin-bottom: 1rem; +} + +/* --- Map --- */ + +track-map { + display: block; + margin: 1.5rem 0; + border: 1px solid var(--color-rule); }