feat(sirius-x): footer everywhere, redesigned wallet button, dropdown auto-acts
Three UX fixes:
1. Beautiful footer on every page. Extracted the 4-column landing footer
into js/site-footer.js — reads the nav brand link to derive per-page
base ('./' at root, '../' in subdirs) so links resolve from any depth
without duplicating the HTML across 8 pages. Every page now ships an
empty <footer id="site-footer"></footer> and includes the injector;
inline footer + its CSS block removed from landing too so the source
stays in one place.
2. Wallet button redesign. Pill now shows a state dot (dim when not
signed in, green with subtle glow when signed in), a monospace short
address label when signed in ('qra6rs…7yl2') OR 'Wallet' when not,
a WC/seed badge on signed-in state, and a subtle caret. Full border
and hover states, proper aria-expanded/aria-label wiring. Dropdown
menu itself upgraded: grid layout per item (icon column + title +
hint), heavier backdrop blur, larger min-width, clearer typography.
3. Dropdown options actually do something. Removed the redundant 'Open
sign-in page →' item — the other three all land on portal too, so
listing 'open the page' as a fourth option was noise. On portal
arrival, the ?mode= handler now AUTO-TRIGGERS the primary action for
each mode:
new -> click Generate a phrase (12 words appear immediately)
import -> focus the seed textarea (cursor ready to paste)
wc -> click Connect wallet (WC session starts, URI shown)
No extra clicks between dropdown choice and the flow it names.
Cache-buster on the profile-menu.js include bumped to
?v=20260907wallet so cached copies pick up the new design; footer
injector at ?v=20260907rel.
2026-09-07 22:00:21 +02:00
|
|
|
|
// Injects the Sirius.X site footer into the current page. Every page in
|
|
|
|
|
|
// site-sirius-x/ ships an empty <footer id="site-footer"></footer> and a
|
|
|
|
|
|
// `<script defer src=".../js/site-footer.js">` include — this file paints
|
|
|
|
|
|
// the four-column layout, meta row, and CSS once, so nav changes stay
|
|
|
|
|
|
// single-source.
|
|
|
|
|
|
//
|
|
|
|
|
|
// Base URL detection: the nav's brand link is already set with the right
|
|
|
|
|
|
// relative path per page (./ at root, ../ in subdirs). Reuse it as the base
|
|
|
|
|
|
// for every same-site href, so root pages and subdir pages both link to the
|
|
|
|
|
|
// right destinations without the script needing to know its own depth.
|
|
|
|
|
|
|
|
|
|
|
|
(() => {
|
|
|
|
|
|
const mount = document.getElementById("site-footer");
|
|
|
|
|
|
if (!mount) return;
|
|
|
|
|
|
|
|
|
|
|
|
const brand = document.querySelector(".topnav .brand");
|
|
|
|
|
|
const base = (brand?.getAttribute("href") || "./").replace(/index\.html$/, "");
|
|
|
|
|
|
|
|
|
|
|
|
// Same-site link builder — prefixes the current-page base so ./docs/ becomes
|
|
|
|
|
|
// ./docs/ from root and ../docs/ from a subdir.
|
|
|
|
|
|
const s = (path) => base + path;
|
|
|
|
|
|
|
|
|
|
|
|
mount.className = "site-footer";
|
|
|
|
|
|
mount.innerHTML = `
|
|
|
|
|
|
<div class="cols">
|
|
|
|
|
|
<div class="brand-col">
|
site-sirius-x: use the Sirius.X brand mark, drop trailing slashes
Star emoji swapped for the site's own 4-point sparkle mark — same SVG
that ships as the favicon — everywhere it appeared: the topnav brand,
the hero mark, the "you're here" pill on the family-of-.x panel, the
footer, register.html, portal.html, tld.html, market/, docs/, admin/,
brand/, storage/, theseus/, studio.html, site-footer.js. Anyone who
opens Sirius.X now sees the acid-green sparkle instead of a browser
star emoji.
Internal links normalised to no trailing slash — href="./theseus/"
became href="./theseus" (Theseus, docs, market, admin). Cleaner URLs
in the address bar and no double-slash redirect step on the mirrors.
2026-09-20 17:49:04 +02:00
|
|
|
|
<div class="mark"><svg width="56" height="56" viewBox="0 0 64 64" aria-hidden="true"><rect width="64" height="64" rx="12" fill="#0b0e14"/><path d="M32 4 L36.4 27.6 L60 32 L36.4 36.4 L32 60 L27.6 36.4 L4 32 L27.6 27.6 Z" fill="#d6ff3d"/></svg></div>
|
feat(sirius-x): footer everywhere, redesigned wallet button, dropdown auto-acts
Three UX fixes:
1. Beautiful footer on every page. Extracted the 4-column landing footer
into js/site-footer.js — reads the nav brand link to derive per-page
base ('./' at root, '../' in subdirs) so links resolve from any depth
without duplicating the HTML across 8 pages. Every page now ships an
empty <footer id="site-footer"></footer> and includes the injector;
inline footer + its CSS block removed from landing too so the source
stays in one place.
2. Wallet button redesign. Pill now shows a state dot (dim when not
signed in, green with subtle glow when signed in), a monospace short
address label when signed in ('qra6rs…7yl2') OR 'Wallet' when not,
a WC/seed badge on signed-in state, and a subtle caret. Full border
and hover states, proper aria-expanded/aria-label wiring. Dropdown
menu itself upgraded: grid layout per item (icon column + title +
hint), heavier backdrop blur, larger min-width, clearer typography.
3. Dropdown options actually do something. Removed the redundant 'Open
sign-in page →' item — the other three all land on portal too, so
listing 'open the page' as a fourth option was noise. On portal
arrival, the ?mode= handler now AUTO-TRIGGERS the primary action for
each mode:
new -> click Generate a phrase (12 words appear immediately)
import -> focus the seed textarea (cursor ready to paste)
wc -> click Connect wallet (WC session starts, URI shown)
No extra clicks between dropdown choice and the flow it names.
Cache-buster on the profile-menu.js include bumped to
?v=20260907wallet so cached copies pick up the new design; footer
injector at ?v=20260907rel.
2026-09-07 22:00:21 +02:00
|
|
|
|
<h4>Sirius<span class="g">.X</span></h4>
|
|
|
|
|
|
<p>The home for names on Bitcoin Cash. Register a TLD, register a name, verify anything against the chain.</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<h5>Product</h5>
|
|
|
|
|
|
<ul>
|
2026-09-08 00:10:11 +02:00
|
|
|
|
<li><a href="${s("#search-input")}">✏️ Register a name</a></li>
|
feat(sirius-x): footer everywhere, redesigned wallet button, dropdown auto-acts
Three UX fixes:
1. Beautiful footer on every page. Extracted the 4-column landing footer
into js/site-footer.js — reads the nav brand link to derive per-page
base ('./' at root, '../' in subdirs) so links resolve from any depth
without duplicating the HTML across 8 pages. Every page now ships an
empty <footer id="site-footer"></footer> and includes the injector;
inline footer + its CSS block removed from landing too so the source
stays in one place.
2. Wallet button redesign. Pill now shows a state dot (dim when not
signed in, green with subtle glow when signed in), a monospace short
address label when signed in ('qra6rs…7yl2') OR 'Wallet' when not,
a WC/seed badge on signed-in state, and a subtle caret. Full border
and hover states, proper aria-expanded/aria-label wiring. Dropdown
menu itself upgraded: grid layout per item (icon column + title +
hint), heavier backdrop blur, larger min-width, clearer typography.
3. Dropdown options actually do something. Removed the redundant 'Open
sign-in page →' item — the other three all land on portal too, so
listing 'open the page' as a fourth option was noise. On portal
arrival, the ?mode= handler now AUTO-TRIGGERS the primary action for
each mode:
new -> click Generate a phrase (12 words appear immediately)
import -> focus the seed textarea (cursor ready to paste)
wc -> click Connect wallet (WC session starts, URI shown)
No extra clicks between dropdown choice and the flow it names.
Cache-buster on the profile-menu.js include bumped to
?v=20260907wallet so cached copies pick up the new design; footer
injector at ?v=20260907rel.
2026-09-07 22:00:21 +02:00
|
|
|
|
<li><a href="${s("tld.html")}">🌐 Register a TLD</a></li>
|
site-sirius-x: use the Sirius.X brand mark, drop trailing slashes
Star emoji swapped for the site's own 4-point sparkle mark — same SVG
that ships as the favicon — everywhere it appeared: the topnav brand,
the hero mark, the "you're here" pill on the family-of-.x panel, the
footer, register.html, portal.html, tld.html, market/, docs/, admin/,
brand/, storage/, theseus/, studio.html, site-footer.js. Anyone who
opens Sirius.X now sees the acid-green sparkle instead of a browser
star emoji.
Internal links normalised to no trailing slash — href="./theseus/"
became href="./theseus" (Theseus, docs, market, admin). Cleaner URLs
in the address bar and no double-slash redirect step on the mirrors.
2026-09-20 17:49:04 +02:00
|
|
|
|
<li><a href="${s("market/")}">🛒 Names for sale</a></li>
|
feat(sirius-x): footer everywhere, redesigned wallet button, dropdown auto-acts
Three UX fixes:
1. Beautiful footer on every page. Extracted the 4-column landing footer
into js/site-footer.js — reads the nav brand link to derive per-page
base ('./' at root, '../' in subdirs) so links resolve from any depth
without duplicating the HTML across 8 pages. Every page now ships an
empty <footer id="site-footer"></footer> and includes the injector;
inline footer + its CSS block removed from landing too so the source
stays in one place.
2. Wallet button redesign. Pill now shows a state dot (dim when not
signed in, green with subtle glow when signed in), a monospace short
address label when signed in ('qra6rs…7yl2') OR 'Wallet' when not,
a WC/seed badge on signed-in state, and a subtle caret. Full border
and hover states, proper aria-expanded/aria-label wiring. Dropdown
menu itself upgraded: grid layout per item (icon column + title +
hint), heavier backdrop blur, larger min-width, clearer typography.
3. Dropdown options actually do something. Removed the redundant 'Open
sign-in page →' item — the other three all land on portal too, so
listing 'open the page' as a fourth option was noise. On portal
arrival, the ?mode= handler now AUTO-TRIGGERS the primary action for
each mode:
new -> click Generate a phrase (12 words appear immediately)
import -> focus the seed textarea (cursor ready to paste)
wc -> click Connect wallet (WC session starts, URI shown)
No extra clicks between dropdown choice and the flow it names.
Cache-buster on the profile-menu.js include bumped to
?v=20260907wallet so cached copies pick up the new design; footer
injector at ?v=20260907rel.
2026-09-07 22:00:21 +02:00
|
|
|
|
<li><a href="${s("portal.html")}">🔑 My names portal</a></li>
|
|
|
|
|
|
<li><a href="${s("theseus/")}">🧭 Theseus browser</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<h5>Learn</h5>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="${s("docs/")}">📚 Docs</a></li>
|
|
|
|
|
|
<li><a href="${s("#roadmap")}">🗺 Roadmap</a></li>
|
|
|
|
|
|
<li><a href="${s("#pantheon")}">🏛 The Pantheon</a></li>
|
|
|
|
|
|
<li><a href="${s("brand/")}">🎨 Brand kit</a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<h5>Silent Mode</h5>
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li><a href="https://silentmode.st/" rel="noopener">silentmode.st <span class="ext">↗</span></a></li>
|
|
|
|
|
|
<li><a href="https://silentmode.st/tlds/" rel="noopener">TLD registry <span class="ext">↗</span></a></li>
|
|
|
|
|
|
<li><a href="https://silentmode.st/bns/theseus.x/" rel="noopener">theseus.x downloads <span class="ext">↗</span></a></li>
|
|
|
|
|
|
<li><a href="https://silentmode.st/bns/hephaestus.x/" rel="noopener">hephaestus.x forge <span class="ext">↗</span></a></li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="meta">
|
|
|
|
|
|
<span><span class="footer-badge">Alpha</span>Chipnet only. You hold your own keys; verify everything against the chain.</span>
|
|
|
|
|
|
<span>© 2026 · MIT-licensed content · <a href="${s("brand/")}">brand assets</a></span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
|
|
// Inline CSS — kept out of every page's <style> block so the footer stays
|
|
|
|
|
|
// single-source and consistent. Uses the CSS variables every page already
|
|
|
|
|
|
// sets on :root (so any page's palette applies automatically).
|
|
|
|
|
|
if (!document.getElementById("site-footer-css")) {
|
|
|
|
|
|
const css = document.createElement("style");
|
|
|
|
|
|
css.id = "site-footer-css";
|
|
|
|
|
|
css.textContent = `
|
|
|
|
|
|
footer.site-footer{background:linear-gradient(180deg,transparent,rgba(255,255,255,.015));
|
|
|
|
|
|
border-top:1px solid var(--line);padding:3.2rem 1.2rem 2rem;margin-top:3rem;color:var(--mut)}
|
|
|
|
|
|
footer.site-footer .cols{max-width:980px;margin:0 auto;display:grid;
|
|
|
|
|
|
grid-template-columns:1.4fr repeat(3,1fr);gap:2.2rem}
|
|
|
|
|
|
@media (max-width:760px){ footer.site-footer .cols{grid-template-columns:1fr 1fr;gap:1.6rem} }
|
|
|
|
|
|
@media (max-width:440px){ footer.site-footer .cols{grid-template-columns:1fr} }
|
|
|
|
|
|
footer.site-footer .brand-col .mark{font-size:26px;line-height:1;margin-bottom:.4rem}
|
|
|
|
|
|
footer.site-footer .brand-col h4{color:var(--ink);font-size:15px;font-weight:600;margin:0 0 .35rem;letter-spacing:.2px}
|
|
|
|
|
|
footer.site-footer .brand-col h4 .g{color:var(--acid)}
|
|
|
|
|
|
footer.site-footer .brand-col p{font-size:12.5px;color:var(--dim);max-width:260px;margin:0}
|
|
|
|
|
|
footer.site-footer h5{color:var(--ink);font-size:11.5px;font-weight:600;text-transform:uppercase;
|
|
|
|
|
|
letter-spacing:.6px;margin:0 0 .8rem}
|
|
|
|
|
|
footer.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
|
|
|
|
|
|
footer.site-footer ul a{color:var(--mut);text-decoration:none;font-size:13.5px;transition:color .1s}
|
|
|
|
|
|
footer.site-footer ul a:hover{color:var(--acid)}
|
|
|
|
|
|
footer.site-footer ul a .ext{color:var(--dim);font-size:11px;margin-left:2px}
|
|
|
|
|
|
footer.site-footer .meta{max-width:980px;margin:2.4rem auto 0;padding-top:1.4rem;
|
|
|
|
|
|
border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;
|
|
|
|
|
|
font-size:12px;color:var(--dim);justify-content:space-between;align-items:center}
|
|
|
|
|
|
footer.site-footer .meta a{color:var(--mut);text-decoration:none}
|
|
|
|
|
|
footer.site-footer .meta a:hover{color:var(--acid)}
|
|
|
|
|
|
footer.site-footer .footer-badge{display:inline-block;padding:2px 8px;border-radius:999px;
|
|
|
|
|
|
background:rgba(255,199,95,.13);color:var(--warn);font-size:10.5px;font-weight:600;
|
|
|
|
|
|
text-transform:uppercase;letter-spacing:.4px;margin-right:.5rem}
|
|
|
|
|
|
`;
|
|
|
|
|
|
document.head.appendChild(css);
|
|
|
|
|
|
}
|
|
|
|
|
|
})();
|