From 2539e4c0981a0d76188b6824807e1aefcefa483a Mon Sep 17 00:00:00 2001 From: you Date: Thu, 19 Mar 2026 23:12:30 +0000 Subject: [PATCH] UX: move analytics/copy URL buttons to top of node detail; live feed close/resize more visible; VCR bar labeled --- public/index.html | 8 ++++---- public/live.css | 29 +++++++++++++++-------------- public/live.js | 1 + public/nodes.js | 21 +++++++++------------ 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/public/index.html b/public/index.html index 5da3de3d..32683d97 100644 --- a/public/index.html +++ b/public/index.html @@ -20,9 +20,9 @@ - + - + @@ -81,10 +81,10 @@ - + - + diff --git a/public/live.css b/public/live.css index cd9ca76d..63b52fb1 100644 --- a/public/live.css +++ b/public/live.css @@ -379,15 +379,14 @@ .live-feed.hidden { opacity: 0; transform: translateX(-100%); pointer-events: none; visibility: hidden; } .feed-hide-btn { - position: absolute; top: 4px; right: 4px; - background: color-mix(in srgb, var(--text) 10%, transparent); border: none; color: var(--text-muted); - width: 20px; height: 20px; border-radius: 4px; cursor: pointer; - font-size: 10px; line-height: 1; display: flex; align-items: center; justify-content: center; - opacity: 0; transition: opacity 0.2s; + position: absolute; top: 6px; right: 6px; + background: color-mix(in srgb, var(--text) 15%, transparent); border: 1px solid var(--border); color: var(--text-muted); + width: 24px; height: 24px; border-radius: 6px; cursor: pointer; + font-size: 13px; line-height: 1; display: flex; align-items: center; justify-content: center; + opacity: 0.7; transition: opacity 0.2s, background 0.2s; z-index: 5; } -.live-feed:hover .feed-hide-btn { opacity: 1; } -.feed-hide-btn:hover { color: var(--text); background: rgba(239,68,68,0.4); } +.feed-hide-btn:hover { opacity: 1; color: #fff; background: rgba(239,68,68,0.6); } .feed-show-btn { position: absolute; bottom: 12px; left: 12px; z-index: 500; @@ -685,18 +684,20 @@ z-index: 10; } .feed-resize-handle::after { - content: ''; + content: '⋮'; position: absolute; top: 50%; - right: 2px; - width: 3px; - height: 24px; + right: 0px; + width: 10px; + height: 32px; transform: translateY(-50%); - background: color-mix(in srgb, var(--text) 18%, transparent); - border-radius: 2px; + background: color-mix(in srgb, var(--text) 25%, transparent); + border-radius: 3px; transition: background 0.2s; + display: flex; align-items: center; justify-content: center; + font-size: 14px; color: var(--text-muted); line-height: 32px; text-align: center; } -.feed-resize-handle:hover::after { background: rgba(59,130,246,0.5); } +.feed-resize-handle:hover::after { background: rgba(59,130,246,0.5); color: #fff; } /* Nav pin button (#62) */ .nav-pin-btn { diff --git a/public/live.js b/public/live.js index a4564cf7..e5a0b9bd 100644 --- a/public/live.js +++ b/public/live.js @@ -606,6 +606,7 @@
+ Playback diff --git a/public/nodes.js b/public/nodes.js index 5546c2ac..cdf2b202 100644 --- a/public/nodes.js +++ b/public/nodes.js @@ -117,7 +117,11 @@
${escapeHtml(n.name || '(unnamed)')}
${n.role} ${statusLabel}
-
${n.public_key}
+
${n.public_key}
+
+ + 📊 Analytics +
@@ -166,11 +170,6 @@
`; }).join('') : '
No recent packets
'}
-
- -
- - 📊 Analytics
`; // Map @@ -437,7 +436,10 @@
${hasLoc ? `
` : ''}
${escapeHtml(n.name || '(unnamed)')}
-
${n.role} ${statusLabel}
+
${n.role} ${statusLabel} + + 📊 Analytics +

Public Key

@@ -468,11 +470,6 @@
` : ''} -
- - 📊 Analytics -
-

Recent Packets (${adverts.length})