From 9bd1c14d9d14cd4d26576cbb036ad8eb0c997034 Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Sat, 21 Mar 2026 14:06:04 +0800 Subject: [PATCH] feat(web): Linear-inspired sidebar with floating panel layout - Add canvas background color for the base layer - Sidebar blends into canvas, no border separator - Content area rendered as floating white panel with rounded corners and shadow, offset from edges to reveal canvas underneath - Simplify sidebar nav to: Inbox, Agents, Issues, Knowledge Base - Add workspace switcher header with MulticaIcon Co-Authored-By: Claude Opus 4.6 --- apps/web/app/(dashboard)/layout.tsx | 48 ++++++++++++++++++----------- packages/ui/src/styles/globals.css | 7 +++-- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/apps/web/app/(dashboard)/layout.tsx b/apps/web/app/(dashboard)/layout.tsx index 4870426d..e20cf58b 100644 --- a/apps/web/app/(dashboard)/layout.tsx +++ b/apps/web/app/(dashboard)/layout.tsx @@ -6,16 +6,16 @@ import { Inbox, ListTodo, Bot, - Columns3, - Settings, + BookOpen, + ChevronDown, } from "lucide-react"; +import { MulticaIcon } from "@multica/ui/components/multica-icon"; const navItems = [ { href: "/inbox", label: "Inbox", icon: Inbox }, - { href: "/issues", label: "Issues", icon: ListTodo }, - { href: "/board", label: "Board", icon: Columns3 }, { href: "/agents", label: "Agents", icon: Bot }, - { href: "/settings", label: "Settings", icon: Settings }, + { href: "/issues", label: "Issues", icon: ListTodo }, + { href: "/knowledge-base", label: "Knowledge Base", icon: BookOpen }, ]; export default function DashboardLayout({ @@ -26,26 +26,34 @@ export default function DashboardLayout({ const pathname = usePathname(); return ( -
- {/* Sidebar */} -