Ham Lab logo: PWA icon set + login screen

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Mitchell-Johnson
2026-09-17 13:14:30 -07:00
co-authored by Claude Fable 5.1
parent 18111c089b
commit 24d64245ec
8 changed files with 4 additions and 2 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

+1 -1
View File
@@ -1,5 +1,5 @@
// Ham Lab service worker: cache hashed assets, never the API, network-first for the shell.
const CACHE = 'hamlab-v1';
const CACHE = 'hamlab-v2';
self.addEventListener('install', () => self.skipWaiting());
self.addEventListener('activate', (e) => {
e.waitUntil(caches.keys().then((ks) => Promise.all(ks.filter((k) => k !== CACHE).map((k) => caches.delete(k)))).then(() => self.clients.claim()));
+1
View File
@@ -17,6 +17,7 @@ export default function Login({ onLogin }: { onLogin: () => void }) {
return (
<div className="center">
<form className="login" onSubmit={submit}>
<img className="login-logo" src="/icons/logo.png" alt="" width={160} height={160} />
<h1>Ham Lab</h1>
<input type="password" autoFocus autoComplete="current-password" placeholder="password"
value={pw} onChange={(e) => setPw(e.target.value)} />
+2 -1
View File
@@ -14,7 +14,8 @@ button { font: inherit; color: inherit; background: none; border: 0; cursor: poi
/* login */
.login { display: flex; flex-direction: column; gap: 10px; width: min(320px, 90vw); }
.login h1 { margin: 0 0 8px; font-weight: 600; color: var(--accent); letter-spacing: .5px; }
.login-logo { width: 160px; height: 160px; align-self: center; border-radius: 50%; margin-bottom: 4px; }
.login h1 { text-align: center; margin: 0 0 8px; font-weight: 600; color: var(--accent); letter-spacing: .5px; }
.login input { padding: 10px 12px; background: var(--bg2); border: 1px solid var(--border); border-radius: 6px; color: var(--fg); font-size: 16px; }
.login button, .primary { padding: 10px 12px; background: var(--accent); color: #111; border-radius: 6px; font-weight: 600; }
.login button:disabled { opacity: .5; }