[claude] NIP-07 visitor identity in the workshop (#12) (#49)
Some checks failed
Deploy Nexus / deploy (push) Has been cancelled

Co-authored-by: Claude (Opus 4.6) <claude@hermes.local>
Co-committed-by: Claude (Opus 4.6) <claude@hermes.local>
This commit was merged in pull request #49.
This commit is contained in:
2026-03-24 03:27:35 +00:00
committed by Timmy Time
parent a377da05de
commit db354e84f2
3 changed files with 182 additions and 1 deletions

View File

@@ -625,6 +625,94 @@ canvas#nexus-canvas {
color: var(--color-primary);
}
/* Visitor Identity Panel */
.visitor-identity-panel {
position: absolute;
bottom: 80px;
right: var(--space-3);
width: 200px;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(8px);
border-left: 2px solid var(--color-secondary);
padding: var(--space-2) var(--space-3);
font-size: var(--text-xs);
pointer-events: auto;
}
.visitor-identity-label {
font-family: var(--font-display);
color: var(--color-secondary);
letter-spacing: 0.1em;
margin-bottom: var(--space-1);
opacity: 0.8;
font-size: 10px;
}
.visitor-identity-status {
display: flex;
align-items: center;
gap: var(--space-2);
margin-bottom: var(--space-2);
}
.visitor-indicator {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--color-text-muted);
flex-shrink: 0;
}
.visitor-indicator.connected {
background: var(--color-primary);
box-shadow: 0 0 6px rgba(74, 240, 192, 0.6);
animation: visitor-pulse 2s ease-in-out infinite;
}
@keyframes visitor-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
#visitor-name {
color: var(--color-text);
font-family: var(--font-body);
font-size: var(--text-xs);
word-break: break-all;
}
#visitor-name.connected {
color: var(--color-primary);
font-weight: 600;
}
.nostr-connect-btn {
width: 100%;
background: transparent;
border: 1px solid var(--color-secondary);
color: var(--color-secondary);
font-family: var(--font-body);
font-size: 10px;
padding: var(--space-1) var(--space-2);
cursor: pointer;
letter-spacing: 0.05em;
border-radius: 2px;
transition: background var(--transition-ui), color var(--transition-ui);
}
.nostr-connect-btn:hover {
background: var(--color-secondary);
color: var(--color-bg);
}
.nostr-disconnect-btn {
width: 100%;
background: transparent;
border: 1px solid var(--color-text-muted);
color: var(--color-text-muted);
font-family: var(--font-body);
font-size: 10px;
padding: var(--space-1) var(--space-2);
cursor: pointer;
letter-spacing: 0.05em;
border-radius: 2px;
transition: border-color var(--transition-ui), color var(--transition-ui);
}
.nostr-disconnect-btn:hover {
border-color: var(--color-danger);
color: var(--color-danger);
}
/* Mobile adjustments */
@media (max-width: 480px) {
.chat-panel {