Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion web/src/components/Chat/UserMessage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export function UserMessage({ message }: { message: ChatMessage }) {
const files = message.blocks.filter(b => b.type === 'file') as FileBlockData[];

return (
<div className="py-4 px-5">
<div className="py-4 px-5 msg-user" data-role="user">
<div className="max-w-[var(--chat-width)] mx-auto">
<div className="flex gap-3">
<div className="w-7 h-7 rounded-full bg-surface-raised flex items-center justify-center text-xs font-medium text-text-muted shrink-0 mt-0.5">
Expand Down
9 changes: 7 additions & 2 deletions web/src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -211,12 +211,17 @@ body {
::-webkit-scrollbar-thumb:hover { background: var(--theme-border); }

/* ── Chat message backgrounds ── */
/* Dark: assistant messages are slightly darker than the chat bg */
/* Dark: assistant messages sink slightly below the chat bg; user prompts rise
to a greyer surface so the two roles read as distinct bands when scrolling. */
.msg-assistant { background: var(--theme-bg-sunken); }
/* Light: invert — assistant messages are lighter (white) to stand out */
.msg-user { background: var(--theme-surface-hover); }
/* Light: invert — assistant messages are lighter (white) to stand out; user
prompts stay on the page bg (already distinct from the white assistant band). */
[data-theme="light"] .msg-assistant { background: var(--theme-surface); }
[data-theme="light"] .msg-user { background: transparent; }
@media (prefers-color-scheme: light) {
:root:not([data-theme="dark"]) .msg-assistant { background: var(--theme-surface); }
:root:not([data-theme="dark"]) .msg-user { background: transparent; }
}

/* Markdown rendering styles */
Expand Down
Loading