User page: hash-routed view, full block hash, aligned rewards
The per-user view was an overlay modal, but users asked for an actual page — focused, scrollable, addressable. Replace the modal with a hash-routed page: selectUser(addr) sets window.location.hash to #/user/<addr> and a hashchange listener syncs the selection state back, so browser back/forward and direct-link refresh all work without a routing library. App renders the dashboard or the UserDetailPage based on selection.user. Make the clickable BTC addresses in the Miners table obviously interactive: accent colour, always-on dashed underline, brighter on hover/focus. The previous styling rendered them as dim static text with a hover underline, so it wasn't obvious they were links. BlocksTable: show the full 64-char block hash as a link to mempool.space (auto-picks testnet4/signet based on snap.chain). word-break: break-all keeps the hash from blowing out the column width. Reward column is split into a tabular-num number span and a dim 0.75em "BTC" unit span, matching the Block reward tile in the overview, so numbers line up cleanly across rows.
This commit is contained in:
@@ -138,21 +138,24 @@
|
||||
}
|
||||
.addr-btn {
|
||||
display: inline-block;
|
||||
color: var(--fg-dim);
|
||||
font-size: 0.8em;
|
||||
color: var(--accent);
|
||||
font-size: 0.82em;
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-top: 0.1em;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dashed transparent;
|
||||
border-bottom: 1px dashed var(--accent-dim);
|
||||
transition: color 0.15s, border-bottom-color 0.15s;
|
||||
}
|
||||
.addr-btn:hover {
|
||||
color: var(--accent);
|
||||
.addr-btn:hover,
|
||||
.addr-btn:focus-visible {
|
||||
color: #ff9a5f;
|
||||
border-bottom-color: var(--accent);
|
||||
background: transparent;
|
||||
outline: none;
|
||||
}
|
||||
tr.offline {
|
||||
opacity: 0.4;
|
||||
|
||||
Reference in New Issue
Block a user