Whispers are purple, and stay where you are
Sending one used to go and find the Whispers buffer and open it, which
took you out of the room you were talking in every time you answered.
There is no such conversation on Sneedchat anyway - the whisper now
appears in the room, marked as one, which is where the site puts it and
where the person who sent it is still looking.
Purple, and its own tint rather than the mention blue. Every inbound
whisper is highlighted, so without this the two said the same thing in the
same colour and a private message was indistinguishable from the room
saying your name. Styled on the kind rather than the highlight, so a
whisper written into a second room - deliberately not highlighted, to keep
one whisper to one alert - still reads as one.
The tag said "whisper to {from}", which on our own whisper is us. Who it
went to is in the line itself now, written the way the site writes it.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+1
-1
Submodule nobilis updated: 6237ad9292...615c2ac96b
@@ -3867,11 +3867,19 @@ video.lightbox-media {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* An edge rather than a fill: the highlight already tints the row, and two
|
||||
backgrounds fighting would leave the text harder to read than an ordinary
|
||||
message, which is the wrong way round for one that matters more. */
|
||||
.message-row.whisper {
|
||||
border-left: 2px solid var(--secondary);
|
||||
/* Purple, and its own tint rather than the mention's. Written after the
|
||||
highlight rule so it wins on a whisper that is also highlighted, which every
|
||||
inbound one is - otherwise the two say the same thing in the same colour and
|
||||
a private message is indistinguishable from the room saying your name.
|
||||
|
||||
Styled on the kind rather than the highlight, so a whisper written into a
|
||||
second room - where it is deliberately not highlighted, to keep one whisper
|
||||
to one alert - still reads as a whisper. */
|
||||
.message-row.whisper,
|
||||
.message-row.whisper.highlight {
|
||||
background: var(--whisper-tint);
|
||||
box-shadow: inset 2px 0 0 var(--whisper);
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.whisper-tag {
|
||||
@@ -3881,8 +3889,8 @@ video.lightbox-media {
|
||||
margin-left: var(--spacing-xs);
|
||||
padding: 0 6px;
|
||||
border-radius: 999px;
|
||||
background: var(--primary-hover);
|
||||
color: var(--secondary);
|
||||
background: var(--whisper-tint);
|
||||
color: var(--whisper);
|
||||
font-style: normal;
|
||||
text-transform: lowercase;
|
||||
vertical-align: middle;
|
||||
|
||||
@@ -350,7 +350,11 @@ export function MessageRow({
|
||||
{whispered && (
|
||||
<span className="whisper-tag small">
|
||||
<Icon name="lock" size={11} />
|
||||
<span>whisper{own ? ` to ${message.from}` : ''}</span>
|
||||
{/* Who it went to is in the line itself for one we sent - the
|
||||
daemon writes the "@name" the site writes - so the tag says
|
||||
only what kind of message this is. It used to name
|
||||
`message.from`, which on our own whisper is us. */}
|
||||
<span>whisper</span>
|
||||
</span>
|
||||
)}
|
||||
|
||||
|
||||
@@ -854,18 +854,16 @@ export class ChatStore {
|
||||
/**
|
||||
* Sends a private message to one person on Sneedchat.
|
||||
*
|
||||
* Not the same as opening a conversation with them: Sneedchat has no such
|
||||
* thing, and every whisper - sent or received, whoever it was with - lands
|
||||
* in the one Whispers buffer. Going there afterwards is what makes the
|
||||
* message visible, since a whisper is not echoed back into the room it was
|
||||
* sent from.
|
||||
* Stays where you are. This used to go and find a "Whispers" buffer and open
|
||||
* it, which took somebody out of the room they were talking in every time
|
||||
* they answered a whisper - and Sneedchat has no such conversation anyway.
|
||||
* The whisper now appears in the room, marked as one, which is where the
|
||||
* site puts it and where the person who sent it is still looking.
|
||||
*/
|
||||
async sendWhisper(accountId: string, target: string, body: string): Promise<void> {
|
||||
if (!body.trim()) return
|
||||
try {
|
||||
await window.moho.rpc('sendWhisper', { accountId, target, body })
|
||||
const whispers = this.state.buffers.find((b) => b.accountId === accountId && b.name === 'Whispers')
|
||||
if (whispers) this.selectBuffer(whispers.id)
|
||||
} catch (e) {
|
||||
this.toast('error', `Couldn't whisper ${target}: ${(e as Error).message}`)
|
||||
}
|
||||
|
||||
@@ -30,6 +30,13 @@
|
||||
--primary-hover: rgba(66, 165, 245, 0.12);
|
||||
--primary-pressed: rgba(66, 165, 245, 0.16);
|
||||
--primary-selected: rgba(66, 165, 245, 0.3);
|
||||
|
||||
/* Whispers. Their own colour rather than the mention blue, because they are
|
||||
a different kind of "this one is yours": a mention is the room saying your
|
||||
name, a whisper is somebody speaking only to you, and a row that cannot
|
||||
tell them apart is one where a private message reads as a public one. */
|
||||
--whisper: #b388ff;
|
||||
--whisper-tint: rgba(179, 136, 255, 0.14);
|
||||
--surface-hover: rgba(66, 71, 78, 0.08);
|
||||
--surface-pressed: rgba(66, 71, 78, 0.12);
|
||||
--surface-selected: rgba(66, 71, 78, 0.15);
|
||||
|
||||
Reference in New Issue
Block a user