zebra-spaces: full pubkey row under handle, above backup/logout

Was the truncated 25cc…1766 dangling next to the handle text field.
Now a dedicated row between handle and the backup/logout buttons
prints the full 64-char hex, monospace, word-break:break-all so it
wraps cleanly into 2-3 lines. user-select:all so a single click
selects the whole key for copy — the place where a user is most
likely to want to grab their identity for backup or to paste into
another channel for verification.
This commit is contained in:
Russell Ballestrini 2026-06-03 09:59:06 -04:00
parent 8e301070a1
commit 415e6e27c9
No known key found for this signature in database

View file

@ -515,6 +515,17 @@
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
word-break: break-all; line-height: 1.3;
}
/* full pubkey in the identity panel — same monospace + word-break as
* room rows, slightly bumped readability since this is the one place
* the user is meant to copy their own key for backup. Selectable
* by default. */
.pub-full {
font-size: 0.75rem; color: #555;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
word-break: break-all; line-height: 1.3;
user-select: all;
}
html.theme-dark .pub-full { color: #aaa; }
.raised { color: #b00; font-weight: bold; }
.mic { width: 18px; height: 18px; }
.mic svg { width: 18px; height: 18px; display: block; }
@ -634,7 +645,9 @@ try {
<div class="row">
<label class="note" for="handle" style="flex:0 0 4rem">handle</label>
<input type="text" id="handle" placeholder="what others see — under 32 chars" maxlength="32" autocomplete="off">
<span id="pub-short" class="pub-short" title="your persistent ed25519 pubkey"></span>
</div>
<div class="row" id="row-pubkey">
<span id="pub-full" class="pub-full" title="your persistent ed25519 pubkey — back this up or you can't be 'you' again"></span>
</div>
<div class="row">
<button id="btn-vault" class="small">backup / restore</button>
@ -1404,7 +1417,10 @@ function setVaultStatus(msg, cls){
const e=$('vault-status'); e.textContent=msg; e.className='status-line'+(cls?' '+cls:'');
$('vault-dot').className='dot'+(cls==='ok'?' ok':cls==='err'?' warn':'');
}
function renderIdentity(){ $('pub-short').textContent = myKeys ? shortHex(myKeys.pubHex) : ''; }
function renderIdentity(){
const el = $('pub-full');
if (el) el.textContent = myKeys ? myKeys.pubHex : '';
}
$('btn-vault').addEventListener('click', () => $('vault-panel').classList.toggle('hidden'));
@ -3797,8 +3813,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> &nbsp;·&nbsp; built <span class="stamp-date">2026-06-03</span><br>
md5 <span class="stamp-md5">73eb0b99ecc23fd748c900712f9d5c98</span><br>
sha256 <span class="stamp-sha">7d33862c77c86ab4c9caa86d9244e740b21700e8e214bc97a7e3103b1283d334</span><br>
md5 <span class="stamp-md5">39ee0b8db4e04da59859e19bee0ea41a</span><br>
sha256 <span class="stamp-sha">ba28e894d869cb11ccea4cdbbeedf22cf67a25f11d29450c4de27a1ecffa9396</span><br>
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
</footer>