From b9781a875582a70c9f0f3ffdd74bbf9abb2ca1cb Mon Sep 17 00:00:00 2001
From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com>
Date: Fri, 13 Mar 2026 01:22:41 +0100
Subject: [PATCH] =?UTF-8?q?fix:=20message=20gutter=20layout=20=E2=80=94=20?=
=?UTF-8?q?use=20explicit=20flex=20gap=20matching=20prototype?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Gutter column was 56px (w-14) with the 16px gap baked into the width.
This worked for avatars but left only 4px between compact hover
timestamps and message text. Switch to w-10 (40px) gutter + gap-4
(16px flex gap), preserving the same 76px content offset while giving
timestamps proper breathing room.
---
packages/web/src/components/chat/Message.tsx | 44 ++++++++++----------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/packages/web/src/components/chat/Message.tsx b/packages/web/src/components/chat/Message.tsx
index dd2e81bf..54f41ea7 100644
--- a/packages/web/src/components/chat/Message.tsx
+++ b/packages/web/src/components/chat/Message.tsx
@@ -156,7 +156,7 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) {
const content = (
+
{isFirstInGroup || message.replyTo ? (
) : (
-
+
{formatHoverTime(message.createdAt)}
)}
@@ -254,25 +254,6 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) {
)}
- {/* Reactions */}
- {Object.keys(reactionGroups).length > 0 && (
-
- {Object.entries(reactionGroups).map(([emoji, { count, me }]) => (
-
- ))}
-
- )}
-
{/* Embeds */}
{!isEditing && firstUrl &&
}
@@ -320,6 +301,25 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) {
})}
)}
+
+ {/* Reactions */}
+ {Object.keys(reactionGroups).length > 0 && (
+
+ {Object.entries(reactionGroups).map(([emoji, { count, me }]) => (
+
+ ))}
+
+ )}
)}