diff options
| author | Adam Soltys <[email protected]> | 2026-08-02 13:40:54 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-02 13:40:54 -0700 |
| commit | 95263c02a13a825a8d02dbe760f2a74de8f93f77 (patch) | |
| tree | 1383d4ca48ec24eedb26fd7740f13e1295d55bdf /src/style.css | |
| parent | 6416bd5dd79c3bdde5dfa7e7ec95fc811fbcdb28 (diff) | |
| download | coinosv3-95263c02a13a825a8d02dbe760f2a74de8f93f77.tar.gz coinosv3-95263c02a13a825a8d02dbe760f2a74de8f93f77.zip | |
Chat v2: DMs, invites, and multi-community — coinos is the default, not the only
- NIP-17 private DMs (src/dm.js): kind-14 rumors in sender-signed seals under
ephemeral wraps; interops with other nostr DM clients. Login signers gained
encryptTo/decryptFrom so extensions and bunkers can seal to a peer; the
inbox listens for both the login npub and the wallet key and publishes a
kind-10050 DM-relay list for the wallet key when none exists.
- Concord invites (CORD-05): mint shareable links (33301 bundle on relays,
keys only in the URL fragment), join by pasting a link or opening
v3.coinos.io/invite/…, and direct invites giftwrapped to an npub with the
k-tag index hint. Bundles self-certify the founder before anything joins.
- Multi-community: home view lists DM threads and communities; found your own
community in-app (owner-signed genesis). coinos stays baked in as default.
- Welcome DM: the names registrar DMs every first-time registrant from Adam's
npub on claim (config: welcome{sk,message}; deduped in registrar state).
Every new wallet auto-claims a payment address, so every new user gets one.
- relay.coinos.io write policy now allows 33301/13302/13303.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
Diffstat (limited to 'src/style.css')
| -rw-r--r-- | src/style.css | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/style.css b/src/style.css index cc51221..cde36e6 100644 --- a/src/style.css +++ b/src/style.css @@ -366,3 +366,16 @@ hr.divider { margin: 16px 0; } border: 1px solid var(--line-strong); border-radius: 11px; padding: 10px 13px; } .chat-compose input:focus-visible { outline: 2px solid var(--accent); outline-offset: -1px; } + +/* Messages v2 — home lists, DM threads, invite panel. */ +.chat-back { font-size: 22px; line-height: 1; padding: 2px 10px 4px; flex-shrink: 0; } +.chat-thread-row { display: flex; gap: 10px; align-items: center; cursor: pointer; } +.chat-preview { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.chat-invite { padding: 10px 12px; border-bottom: 1px solid var(--line); background: var(--surface2); } +.chat-invite input { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line-strong); border-radius: 9px; padding: 7px 10px; min-width: 0; } +.chat-row.dm { justify-content: flex-start; } +.chat-row.dm.mine { justify-content: flex-end; } +.chat-row.dm .chat-body { max-width: 82%; } +.chat-row.dm.mine .chat-body { text-align: right; } +.chat-bubble.me { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); text-align: left; } +.chat-row.dm .chat-time { font-size: 10px; color: var(--faint); margin-top: 2px; } |
