mavweb: unify UI — shared ui.css + nav partial across all pages
One theme (the PWA's dark palette) for dash/history/trace/notifications/ tools/passkey via static/ui.css; shared nav template with active-page highlight; tables wrapped in .scroll so they pan on phones; PWA nav no longer clips the RU/EN toggle; dash 'updated' timestamp fixed (selector matched nothing). AGENTS.md documents the local preview/screenshot recipe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASstMtsZWLSRcD1Tq8T68Q
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
/* maven web ui — one theme for every server-rendered page.
|
||||
Palette and type mirror the PWA (static/index.html): dark, restrained,
|
||||
#00aaff accent. Pages carry NO inline <style> beyond true one-offs. */
|
||||
:root{
|
||||
--bg:#111; --panel:#1a1a2e; --line:#222; --border:#333;
|
||||
--fg:#ddd; --soft:#aaa; --muted:#888; --dim:#555;
|
||||
--accent:#00aaff; --ok:#00ff88; --warn:#ffaa00; --err:#ff4444;
|
||||
}
|
||||
*{box-sizing:border-box}
|
||||
body{background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,sans-serif;
|
||||
margin:0;padding:1rem;-webkit-text-size-adjust:100%}
|
||||
h1,h2{font-weight:400;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
|
||||
h1{font-size:1.2rem;margin:.2rem 0 .6rem}
|
||||
h2{font-size:.95rem;margin:1.4rem 0 .3rem}
|
||||
h1 small,h2 small{color:var(--dim);letter-spacing:0;text-transform:none}
|
||||
a{color:var(--accent);text-decoration:none}
|
||||
a:hover{text-decoration:underline}
|
||||
|
||||
/* shared site nav (the "nav" template partial) */
|
||||
nav.site{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;
|
||||
border-bottom:1px solid var(--line);padding-bottom:.6rem;margin-bottom:1rem}
|
||||
nav.site a{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
|
||||
nav.site a:hover{color:var(--fg);text-decoration:none}
|
||||
nav.site a.active{color:var(--accent)}
|
||||
|
||||
/* tables: always inside a .scroll wrapper so wide data pans instead of
|
||||
breaking the page on a phone */
|
||||
.scroll{overflow-x:auto}
|
||||
table{width:100%;border-collapse:collapse;margin-top:.4rem}
|
||||
th,td{padding:.35rem .5rem;text-align:left;vertical-align:top;
|
||||
border-bottom:1px solid var(--line)}
|
||||
th{color:var(--dim);font-size:.75rem;text-transform:uppercase;
|
||||
letter-spacing:.05em;white-space:nowrap}
|
||||
td{color:var(--soft)}
|
||||
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
|
||||
code,.key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ok)}
|
||||
|
||||
/* status colors — nudge outcomes, presence, booleans */
|
||||
.pending{color:var(--muted)}.acted{color:var(--ok)}
|
||||
.snoozed{color:var(--warn)}.ignored{color:var(--err)}
|
||||
.pres,.green{color:var(--ok)}.away,.gray{color:var(--muted)}.red{color:var(--err)}
|
||||
.badge{font-size:.75rem;color:var(--dim);background:var(--panel);
|
||||
padding:.15rem .35rem;border-radius:3px;white-space:nowrap}
|
||||
.updated,.muted{color:var(--dim);font-size:.85rem}
|
||||
.empty{color:var(--dim);padding:2rem;text-align:center}
|
||||
.voided{opacity:.45;text-decoration:line-through}
|
||||
.void-badge{color:var(--dim);font-size:.8rem;margin-right:.3rem}
|
||||
|
||||
/* controls */
|
||||
button{font:inherit;font-size:.85rem;background:var(--panel);color:var(--fg);
|
||||
border:1px solid var(--border);border-radius:3px;padding:.25rem .6rem;cursor:pointer}
|
||||
button:hover{border-color:var(--accent)}
|
||||
button:disabled{opacity:.4;cursor:not-allowed}
|
||||
input[type=text]{font:inherit;font-size:.85rem;background:var(--bg);color:var(--fg);
|
||||
border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;max-width:100%}
|
||||
label{color:var(--soft)}
|
||||
|
||||
/* inline feedback (/history revert, /tools enable, /auth/passkey) */
|
||||
.msg{margin:.6rem 0;padding:.5rem .7rem;border-radius:3px;border:1px solid var(--line)}
|
||||
.msg-ok{border-color:var(--ok);color:var(--ok)}
|
||||
.msg-err{border-color:var(--err);color:var(--err)}
|
||||
|
||||
details{color:var(--soft);font-size:.85rem}
|
||||
summary{cursor:pointer;color:var(--dim)}
|
||||
Reference in New Issue
Block a user