New site-hermes-x/ — standalone .x site (own nav, own assets, own OG tags),
sibling to site-theseus-x and site-sirius-x. Internal nav stays on hermes.x:
Overview, Messenger (preview + UI mockup), Branding (brand kit). The only
cross-link is 'Get Theseus' pointing at theseus.x where appropriate.
Mark redesigned: tilted winged envelope with three tapered speed-trails on
the back-left (top longest, bottom shortest). Default colour sky #38BDF8 —
swappable via --sky in site-hermes-x/assets/shared.css. Alternate orange
palette documented but not applied by default. Mark propagated to:
- site-hermes-x/assets/mark.svg + mark-stroke.svg (16-20px variant)
- site/hermes/{index.html, branding/{index.html, mark.svg, mark-stroke.svg}}
- TheseusNavigator/bundled-addons/hermes/{addon.json, panel.html}
Theseus addon moves out of the top-right extensions dock and into the
left-strip sidebar: panels[].side = 'left' + registerSidebarPanel({side:'left'}).
Appears alongside Mail/Pithos/Telegram, excluded from rightPanels() so the
extensions dock no longer lists it. Verified via sidebarState() CDP query —
hermes:main is no longer in the right-panels list.
site/hermes/ (the nested silentmode.st/hermes page) also updated to the new
mark for consistency; both the sovereign hermes.x and the silentmode-nested
page now show the same winged envelope.
71 lines
3 KiB
HTML
71 lines
3 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Hermes</title>
|
|
<style>
|
|
:root { color-scheme: light dark;
|
|
--bg:#0e131c; --panel:#141a24; --line:rgba(255,255,255,.09);
|
|
--ink:#e7eaf1; --mut:#8b98a9; --dim:#5e6678; --acid:#d6ff3d;
|
|
--amber:#f4c430; }
|
|
@media (prefers-color-scheme: light) {
|
|
:root { --bg:#f8faff; --panel:#ffffff; --line:rgba(0,0,0,.10);
|
|
--ink:#1a1f2b; --mut:#5c6577; --dim:#8a93a5;
|
|
--acid:#088A66; }
|
|
}
|
|
* { box-sizing: border-box; }
|
|
html, body { margin: 0; height: 100%; }
|
|
body { background: var(--bg); color: var(--ink);
|
|
font: 14px/1.5 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
|
|
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
|
padding: 24px 20px; text-align: center; gap: 14px; }
|
|
.mark { color: var(--acid); line-height: 0; }
|
|
.mark svg { width: 72px; height: 72px; display: block; }
|
|
h1 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: .3px; }
|
|
.lede { color: var(--mut); font-size: 13px; margin: 0; max-width: 260px; }
|
|
button { font: inherit; font-weight: 600; cursor: pointer;
|
|
background: var(--acid); color: #0a0d13; border: none;
|
|
padding: 10px 20px; border-radius: 999px; }
|
|
button:hover { filter: brightness(1.08); }
|
|
.shortcut { color: var(--dim); font-size: 11.5px; margin-top: 4px; }
|
|
.shortcut kbd { background: var(--panel); border: 1px solid var(--line);
|
|
border-radius: 4px; padding: 1px 6px; font-family: ui-monospace, monospace;
|
|
font-size: 10.5px; color: var(--ink); }
|
|
.err { color: #f6768a; font-size: 12px; min-height: 1em; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="mark" aria-hidden="true">
|
|
<svg viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
|
|
<g fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
|
|
<path d="M20 42 Q 20 12 32 12 Q 44 12 44 42"/>
|
|
<path d="M16 42 L48 42"/>
|
|
<path d="M44 18 L 60 12"/>
|
|
<path d="M44 24 L 62 22"/>
|
|
<path d="M44 30 L 58 32"/>
|
|
<path d="M20 18 L 4 12"/>
|
|
<path d="M20 24 L 2 22"/>
|
|
<path d="M20 30 L 6 32"/>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
<h1>Hermes</h1>
|
|
<p class="lede">Message anyone by their <code>.bch</code> name. Sealed-sender DMs over Nostr.</p>
|
|
<button id="openBtn">Open Messages</button>
|
|
<div class="shortcut">or press <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>E</kbd></div>
|
|
<div class="err" id="err"></div>
|
|
|
|
<script>
|
|
const bridge = window.silentmode && typeof window.silentmode.invoke === "function" ? window.silentmode : null;
|
|
const err = (m) => { document.getElementById("err").textContent = m || ""; };
|
|
document.getElementById("openBtn").addEventListener("click", async () => {
|
|
err("");
|
|
if (!bridge) { err("sidebar bridge unavailable"); return; }
|
|
try {
|
|
const r = await bridge.invoke("open-messages");
|
|
if (!r || r.ok !== true) err("could not open messages window");
|
|
} catch (e) { err("error: " + (e && e.message || e)); }
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|