diff --git a/docs/dashboard-guide.md b/docs/dashboard-guide.md index 2dcd56da96..67275e26d6 100644 --- a/docs/dashboard-guide.md +++ b/docs/dashboard-guide.md @@ -23,11 +23,11 @@ Task Detail modal opens from onboarding, activity log, and task-to-task navigati Enable **Left Sidebar Navigation** from **Settings → Experimental Features** to move the desktop/tablet project navigation out of the Header and into a persistent left sidebar. -When enabled on desktop or tablet project screens, the sidebar contains the primary destinations (Board, List, Agents, Command Center, Missions, Chat, Documents, Mailbox, and plugin primary views), Header overflow destinations as regular entries (Research, Insights, Skills, Memory, Secrets, Stash Recovery, Evals, Goals, Dev Server, Todos, and plugin overflow views when their flags/plugins are enabled), and a Settings button pinned to the bottom. The Header retains the Fusion brand and project selector, keeps its non-navigation controls, and hides the view-toggle row and **More views** trigger so there is only one canonical navigation surface. +When enabled on desktop or tablet project screens, the sidebar contains the primary destinations (Board, List, Agents, Command Center, Missions, Chat, Documents, Mailbox, and plugin primary views), Header overflow destinations as regular entries (Research, Insights, Skills, Memory, Secrets, Stash Recovery, Evals, Goals, Dev Server, Todos, and plugin overflow views when their flags/plugins are enabled), and a footer with the collapse toggle directly above the Settings button. The Header retains the Fusion brand and project selector, keeps its non-navigation controls, and hides the view-toggle row and **More views** trigger so there is only one canonical navigation surface. While the sidebar is active on desktop/tablet project screens, Board and List workflow controls move into the Header slot that replaces the hidden view toggle. Board and List share one workflow dropdown: each workflow row includes an inline edit action, and a persistent **New workflow** action remains at the bottom of the dropdown while the workflow list scrolls. The standalone workflow row above the board/list content is removed in this mode. When the flag is off, outside project screens, or on mobile, workflow controls remain inline with the same consolidated dropdown. -A small right-border toggle collapses or expands the sidebar without consuming a navigation row; collapsed rail mode keeps accessible labels/titles preserved, and the expanded width can be resized from the right-edge separator. Collapsed state and expanded width are saved in browser `localStorage` (`fusion:left-sidebar-collapsed` and `fusion:left-sidebar-width`) and restored on reload. +The footer collapse toggle uses the same row styling as other sidebar items: expanded mode shows a **Collapse** label, while collapsed rail mode hides the label and keeps the icon-only button accessible through its label/title. The expanded width can still be resized from the right-edge separator. Collapsed state and expanded width are saved in browser `localStorage` (`fusion:left-sidebar-collapsed` and `fusion:left-sidebar-width`) and restored on reload. On mobile viewports (`<=768px`), the sidebar is not rendered even when the experiment is enabled. The existing bottom `MobileNavBar` remains the navigation surface. diff --git a/packages/dashboard/app/components/LeftSidebarNav.css b/packages/dashboard/app/components/LeftSidebarNav.css index 7ac57061ec..0187fee084 100644 --- a/packages/dashboard/app/components/LeftSidebarNav.css +++ b/packages/dashboard/app/components/LeftSidebarNav.css @@ -25,27 +25,13 @@ The left sidebar is a sibling of project-content, so it does not inherit project padding-bottom: var(--executor-footer-height); } +/* +FNXC:Navigation 2026-06-21-00:00: +The collapse toggle lives in the footer above Settings instead of floating on the resize border. It reuses the tokenized row-item styling so expanded mode can show the Collapse label and rail mode can hide that label consistently with other sidebar items. +*/ .left-sidebar-nav__collapse-toggle { flex-shrink: 0; -} - -/* -FNXC:DashboardStyling 2026-06-20-20:56: -The floating sidebar collapse toggle must stay fully round, but FN-6809 surfaced that --radius-full is not a defined dashboard token. Use 50% here to preserve the circular affordance without introducing another undefined custom property. -*/ -.left-sidebar-nav__collapse-toggle--floating { - position: absolute; - top: var(--space-sm); - right: calc((var(--space-lg) + var(--space-xs)) * -1); - z-index: 2; - display: inline-flex; - align-items: center; - justify-content: center; - min-width: calc(var(--space-lg) + var(--space-md)); - min-height: calc(var(--space-lg) + var(--space-md)); - padding: var(--space-xs); - border-radius: 50%; - box-shadow: var(--shadow-sm); + justify-content: flex-start; } .left-sidebar-nav__list { diff --git a/packages/dashboard/app/components/LeftSidebarNav.tsx b/packages/dashboard/app/components/LeftSidebarNav.tsx index 4f4daf30da..e102a2eb12 100644 --- a/packages/dashboard/app/components/LeftSidebarNav.tsx +++ b/packages/dashboard/app/components/LeftSidebarNav.tsx @@ -397,28 +397,28 @@ export function LeftSidebarNav({ aria-label={t("nav.sidebarAriaLabel", "Sidebar navigation")} style={isCollapsed ? undefined : { width: sidebarWidth, minWidth: sidebarWidth }} > - {/* - FNXC:Navigation 2026-06-20-12:00: - The sidebar collapse affordance must not consume a dedicated brand row now that logo, wordmark, and project controls live in Header. Float the single toggle on the resize border so expanded and rail states retain the same reachable click target without an empty header shell. - */} - -
+ {/* + FNXC:Navigation 2026-06-21-00:00: + The sidebar collapse affordance belongs in the footer immediately above Settings, using the same row-item visual language. Expanded mode shows the Collapse label, while rail mode relies on the shared label-hiding rule so the button remains icon-only like Settings. + */} +