From bb517843fc5fc2ee10498823ccdb657bae852d7d Mon Sep 17 00:00:00 2001 From: klopez4212 Date: Tue, 23 Jun 2026 19:25:50 +0100 Subject: [PATCH] Polish sidebar navigation spacing --- .../channels/ui/AgentSessionThreadPanel.tsx | 2 +- .../channels/ui/ChannelScreenHeader.tsx | 1 - .../features/channels/ui/MembersSidebar.tsx | 6 ++-- desktop/src/features/chat/ui/ChatHeader.tsx | 11 ++----- .../src/features/home/ui/HomeLoadingState.tsx | 8 ++--- .../src/features/home/ui/InboxDetailPane.tsx | 4 +-- .../src/features/home/ui/InboxListPane.tsx | 11 ++++--- .../messages/ui/MessageThreadPanel.tsx | 4 +-- .../features/profile/ui/UserProfilePanel.tsx | 2 +- .../src/features/sidebar/ui/AppSidebar.tsx | 7 ++--- .../sidebar/ui/CustomChannelSection.tsx | 29 +++++++++++-------- .../features/sidebar/ui/SidebarSection.tsx | 6 ++-- .../shared/layout/AuxiliaryPanelHeader.tsx | 2 +- desktop/src/shared/ui/ViewLoadingFallback.tsx | 2 +- desktop/src/shared/ui/icons.ts | 10 +++++++ desktop/tests/e2e/messaging.spec.ts | 10 +++++-- 16 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 desktop/src/shared/ui/icons.ts diff --git a/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx b/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx index 5b72e5b92..e858535a3 100644 --- a/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx +++ b/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx @@ -202,7 +202,7 @@ export function AgentSessionThreadPanel({ "flex cursor-default select-none items-center", isSinglePanelView ? `relative ${PANEL_SINGLE_COLUMN_HEADER_LAYER_CLASS} -mb-[4.75rem] min-h-[4.75rem] shrink-0 gap-2.5 bg-background/80 pb-1 pl-4 pr-2 pt-[2.625rem] backdrop-blur-md supports-[backdrop-filter]:bg-background/70 sm:pl-6 sm:pr-3 dark:bg-background/70 dark:backdrop-blur-xl dark:supports-[backdrop-filter]:bg-background/55` - : "relative z-50 min-h-11 shrink-0 gap-3 bg-background/80 px-3 py-1.5 backdrop-blur-md supports-[backdrop-filter]:bg-background/70 dark:bg-background/70 dark:backdrop-blur-xl dark:supports-[backdrop-filter]:bg-background/55", + : "relative z-50 min-h-14 shrink-0 gap-3 bg-background/80 px-5 py-2 backdrop-blur-md supports-[backdrop-filter]:bg-background/70 dark:bg-background/70 dark:backdrop-blur-xl dark:supports-[backdrop-filter]:bg-background/55", )} data-tauri-drag-region > diff --git a/desktop/src/features/channels/ui/ChannelScreenHeader.tsx b/desktop/src/features/channels/ui/ChannelScreenHeader.tsx index cda079449..311d22449 100644 --- a/desktop/src/features/channels/ui/ChannelScreenHeader.tsx +++ b/desktop/src/features/channels/ui/ChannelScreenHeader.tsx @@ -92,7 +92,6 @@ export function ChannelScreenHeader({ +
{children} - {action ? ( - {action} - ) : null} + {action ? {action} : null}
); } diff --git a/desktop/src/features/chat/ui/ChatHeader.tsx b/desktop/src/features/chat/ui/ChatHeader.tsx index 8981361d6..5cbc8ec20 100644 --- a/desktop/src/features/chat/ui/ChatHeader.tsx +++ b/desktop/src/features/chat/ui/ChatHeader.tsx @@ -25,7 +25,6 @@ type ChatHeaderProps = { belowSystemChrome?: boolean; /** Ref to the outer chrome wrapper when `belowSystemChrome` is true. */ chromeWrapperRef?: React.Ref; - density?: "default" | "compact"; title: string; description?: string; channelType?: ChannelType; @@ -87,7 +86,6 @@ export function ChatHeader({ actions, belowSystemChrome = false, chromeWrapperRef, - density = "default", title, description, channelType, @@ -117,13 +115,8 @@ export function ChatHeader({ const header = (
-
-
+
+
@@ -51,8 +51,8 @@ export function HomeLoadingState() {
-
-
+
+
diff --git a/desktop/src/features/home/ui/InboxDetailPane.tsx b/desktop/src/features/home/ui/InboxDetailPane.tsx index dd45d879f..0b74041ca 100644 --- a/desktop/src/features/home/ui/InboxDetailPane.tsx +++ b/desktop/src/features/home/ui/InboxDetailPane.tsx @@ -246,8 +246,8 @@ export function InboxDetailPane({ >
-
-
+
+
-
-
+
+
{isLoading ? ( @@ -716,9 +716,6 @@ export function AppSidebar({ browseAriaLabel="Browse channels" createAriaLabel="Create a channel" draggable - groupClassName={ - channelSections.length > 0 ? undefined : "pt-1" - } hasUnread={unreadChannelIds.size > 0} isCollapsed={collapsedGroups.channels} isActiveChannel={selectedView === "channel"} @@ -802,7 +799,7 @@ export function AppSidebar({ presenceByChannelId={dmPresenceByChannelId} selectedChannelId={selectedChannelId} testId="dm-list" - title="Direct Messages" + title="Direct messages" unreadChannelCounts={unreadChannelCounts} unreadChannelIds={unreadChannelIds} mutedChannelIds={mutedChannelIds} diff --git a/desktop/src/features/sidebar/ui/CustomChannelSection.tsx b/desktop/src/features/sidebar/ui/CustomChannelSection.tsx index f0d583b7f..f4a0add50 100644 --- a/desktop/src/features/sidebar/ui/CustomChannelSection.tsx +++ b/desktop/src/features/sidebar/ui/CustomChannelSection.tsx @@ -11,7 +11,6 @@ import { GripVertical, Pencil, Plus, - Search, Star, StarOff, Trash2, @@ -48,6 +47,7 @@ import { import type { ChannelSection } from "@/features/sidebar/lib/useChannelSections"; import type { Channel } from "@/shared/api/types"; import { cn } from "@/shared/lib/cn"; +import { HashSearch } from "@/shared/ui/icons"; // --------------------------------------------------------------------------- // Shared styles @@ -56,7 +56,7 @@ import { cn } from "@/shared/lib/cn"; const SECTION_LABEL_BUTTON_CLASS = "group/section-label flex w-fit max-w-[calc(100%-3rem)] cursor-pointer appearance-none items-center gap-1 text-left transition-colors hover:text-sidebar-foreground focus-visible:text-sidebar-foreground"; const SECTION_LABEL_CHEVRON_CLASS = - "relative size-2.5 shrink-0 opacity-0 text-sidebar-foreground/45 transition-[color,opacity] group-hover/sidebar-section:opacity-100 group-hover/sidebar-section:text-sidebar-foreground group-hover/section-label:opacity-100 group-hover/section-label:text-sidebar-foreground group-focus-within/sidebar-section:opacity-100 group-focus-within/sidebar-section:text-sidebar-foreground group-focus-visible/section-label:opacity-100 group-focus-visible/section-label:text-sidebar-foreground"; + "relative size-2.5 shrink-0 text-current opacity-0 transition-[color,opacity] group-hover/sidebar-section:opacity-100 group-hover/section-label:opacity-100 group-focus-within/sidebar-section:opacity-100 group-focus-visible/section-label:opacity-100"; const SECTION_LABEL_CHEVRON_ICON_CLASS = "absolute left-1/2 top-1/2 size-2.5 -translate-x-1/2 -translate-y-1/2"; @@ -261,18 +261,24 @@ function SectionHeaderActions({ {onBrowseClick ? ( ) : null} {onCreateClick ? (