From 95fc6f069346660112a9c56d1e5d74eec17e841d Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Mon, 2 Mar 2026 01:05:42 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Phase=207=20Aether=20Drift=20=E2=80=94?= =?UTF-8?q?=20typography,=20spacing=20&=20detail=20alignment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Align all component typography to the design prototype's exact measurements: - Message author: 16px bold → 15px semibold - Message text: 16px → 15px, line-height 1.5 - Timestamps: 12px → 11px - Category headers: 12px bold → 11px medium, #484854 color - Member/activity names: 15px → 13.5px with tighter line-height - Member activity text: 12px → 11px - Section headers: 12px → 10.5px - Channel header names: 15px with -0.02em tracking - Channel topic: 12px → 13px - Header padding: 16px → 20px - User area avatar: 32px → 34px --- packages/web/src/components/chat/Message.tsx | 8 +++---- .../src/components/layout/ActivityPanel.tsx | 10 ++++---- .../src/components/layout/ChannelSidebar.tsx | 12 +++++----- .../web/src/components/layout/MainContent.tsx | 24 +++++++++---------- .../src/components/layout/MemberSidebar.tsx | 10 ++++---- packages/web/src/styles/globals.css | 1 + 6 files changed, 33 insertions(+), 32 deletions(-) diff --git a/packages/web/src/components/chat/Message.tsx b/packages/web/src/components/chat/Message.tsx index 660cf3f5..9167c3c5 100644 --- a/packages/web/src/components/chat/Message.tsx +++ b/packages/web/src/components/chat/Message.tsx @@ -199,12 +199,12 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) {
{displayName} - + {formatTime(message.createdAt)}
@@ -216,7 +216,7 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) { value={editContent} onChange={(e) => setEditContent(e.target.value)} onKeyDown={handleEditSubmit} - className="w-full p-3 bg-surface-input rounded-lg text-txt-primary outline-none resize-none text-[16px] leading-[1.375rem] shadow-inner" + className="w-full p-3 bg-surface-input rounded-lg text-txt-primary outline-none resize-none text-[15px] leading-[1.5] shadow-inner" rows={2} autoFocus /> @@ -233,7 +233,7 @@ export function Message({ message, isCompact, isFirstInGroup }: MessageProps) { ) : (
{message.content && ( -
+
{message.editedAt && ( (edited) diff --git a/packages/web/src/components/layout/ActivityPanel.tsx b/packages/web/src/components/layout/ActivityPanel.tsx index 0349745f..c8a1a4e5 100644 --- a/packages/web/src/components/layout/ActivityPanel.tsx +++ b/packages/web/src/components/layout/ActivityPanel.tsx @@ -46,7 +46,7 @@ export function ActivityPanel() {
handleFriendClick(e, friend)} - className="flex items-center gap-3 px-2 py-1.5 rounded-[4px] hover:bg-interactive-hover cursor-pointer group transition-colors" + className="flex items-center gap-2.5 px-2 py-1.5 rounded-[4px] hover:bg-interactive-hover cursor-pointer group transition-colors" >
-
+
{friend.displayName ?? friend.username}
{!isOffline && friend.customStatus && ( -
{friend.customStatus}
+
{friend.customStatus}
)}
@@ -82,7 +82,7 @@ export function ActivityPanel() { <> {onlineFriends.length > 0 && (
-

+

ONLINE — {onlineFriends.length}

{onlineFriends.map(f => renderFriend(f))} @@ -90,7 +90,7 @@ export function ActivityPanel() { )} {offlineFriends.length > 0 && (
-

+

OFFLINE — {offlineFriends.length}

{offlineFriends.map(f => renderFriend(f, true))} diff --git a/packages/web/src/components/layout/ChannelSidebar.tsx b/packages/web/src/components/layout/ChannelSidebar.tsx index 56aa8eba..47cb5827 100644 --- a/packages/web/src/components/layout/ChannelSidebar.tsx +++ b/packages/web/src/components/layout/ChannelSidebar.tsx @@ -281,7 +281,7 @@ export function ChannelSidebar() { onClick={() => openModal('serverSettings')} className="flex-1 h-full px-4 flex items-center justify-between hover:bg-interactive-hover transition-colors min-w-0" > - {server.name} + {server.name} @@ -306,7 +306,7 @@ export function ChannelSidebar() { - Text Channels + Text Channels
{canManageChannels && (
{canManageChannels && (
)} -
+
- {dmName} + {dmName} {isGroupDm && ( ({dmChannel?.members.length} Members) )} @@ -219,7 +219,7 @@ export function MainContent() { if (!currentChannelId || !channel) { return (
-
+
Select a channel
@@ -238,12 +238,12 @@ export function MainContent() { if (!isInThisChannel) { return (
-
+
- {channel.name} + {channel.name}
@@ -274,12 +274,12 @@ export function MainContent() { ref={voiceContainerRef} className={`flex-1 flex flex-col bg-surface-base min-w-0 group/voice relative ${voiceFullscreen ? 'h-screen' : ''}`} > -
+
- {channel.name} + {channel.name} {connectionError ? ( Connection Failed ) : isLiveKitConnected ? ( @@ -310,16 +310,16 @@ export function MainContent() { return (
-
+
- {channel.name} + {channel.name} {channel.topic && ( <>
- {channel.topic} + {channel.topic} )}
diff --git a/packages/web/src/components/layout/MemberSidebar.tsx b/packages/web/src/components/layout/MemberSidebar.tsx index 35e706d1..37054702 100644 --- a/packages/web/src/components/layout/MemberSidebar.tsx +++ b/packages/web/src/components/layout/MemberSidebar.tsx @@ -100,7 +100,7 @@ export function MemberSidebar() {
handleMemberClick(e, member.user)} - className="flex items-center gap-3 px-2 py-1.5 rounded-[4px] hover:bg-interactive-hover cursor-pointer group transition-colors" + className="flex items-center gap-2.5 px-2 py-1.5 rounded-[4px] hover:bg-interactive-hover cursor-pointer group transition-colors" >
{displayName}
{!isOffline && member.user.customStatus && ( -
{member.user.customStatus}
+
{member.user.customStatus}
)}
@@ -130,7 +130,7 @@ export function MemberSidebar() { {/* Role-based groups */} {roleGroups.map(([key, group]) => (
-

+

{group.label} — {group.members.length}

{group.members.map((m) => renderMember(m))} @@ -140,7 +140,7 @@ export function MemberSidebar() { {/* Offline */} {offlineMembers.length > 0 && (
-

+

OFFLINE — {offlineMembers.length}

{offlineMembers.map((m) => renderMember(m, true))} diff --git a/packages/web/src/styles/globals.css b/packages/web/src/styles/globals.css index 647da68b..10c68178 100644 --- a/packages/web/src/styles/globals.css +++ b/packages/web/src/styles/globals.css @@ -35,6 +35,7 @@ --text-primary: #efefef; --text-secondary: #a0a0aa; --text-tertiary: #5c5c68; + --text-category: #484854; --text-message: #d8d8de; --text-link: #7dd3fc; --text-positive: #86efac;