@@ -275,8 +275,6 @@ function RootLayout() {
275275 }
276276 } , [ flagsLoaded , homeTabEnabled , view . type ] ) ;
277277
278- // Settings is a full-page route — drop the app chrome (header/sidebar/
279- // space-switcher) so the panel occupies the full window.
280278 const isSettingsRoute = useRouterState ( {
281279 select : ( s ) => s . matches . some ( ( m ) => m . routeId . startsWith ( "/settings" ) ) ,
282280 } ) ;
@@ -311,31 +309,6 @@ function RootLayout() {
311309 const activeTabBlank = useActiveTabIsBlank ( ) ;
312310 const showBlankTab = onChannelsIndex && activeTabBlank ;
313311
314- if ( isSettingsRoute ) {
315- return (
316- < Flex direction = "column" height = "100%" >
317- < ConnectivityBanner />
318- < Outlet />
319- < CommandMenu open = { commandMenuOpen } onOpenChange = { setCommandMenuOpen } />
320- < GlobalFilePicker />
321- < KeyboardShortcutsSheet
322- open = { shortcutsSheetOpen }
323- onOpenChange = { ( open ) => ( open ? null : closeShortcutsSheet ( ) ) }
324- />
325- < GlobalEventHandlers
326- onToggleCommandMenu = { toggleCommandMenu }
327- onToggleShortcutsSheet = { toggleShortcutsSheet }
328- />
329- { billingEnabled && < UsageLimitModal /> }
330- < UsageBillingAnnouncementModal />
331- < UpdateAvailableModal />
332- < WhatsNewModal />
333- < RemoteBranchCheckoutDialog />
334- < ExistingWorktreeDialog />
335- </ Flex >
336- ) ;
337- }
338-
339312 return (
340313 // DnD scope for the tab strip's drag-to-reorder (pill sortables live in
341314 // the title bar; the provider must sit above them).
@@ -365,12 +338,17 @@ function RootLayout() {
365338 // over- or under-shoots; the env var fallback covers hosts
366339 // without Window Controls Overlay.
367340 paddingLeft : isMac ? "env(titlebar-area-x, 78px)" : "78px" ,
368- width : sidebarOpen ? channelsSidebarWidth : undefined ,
341+ width : sidebarOpen
342+ ? isSettingsRoute
343+ ? "256px"
344+ : channelsSidebarWidth
345+ : undefined ,
369346 // Same curve/duration as ResizableSidebar's SLIDE_EASING so the
370347 // title bar tracks the sidebar edge.
371- transition : sidebarIsResizing
372- ? "none"
373- : "width 0.2s cubic-bezier(0, 0, 0.2, 1)" ,
348+ transition :
349+ isSettingsRoute || sidebarIsResizing
350+ ? "none"
351+ : "width 0.2s cubic-bezier(0, 0, 0.2, 1)" ,
374352 } }
375353 >
376354 < Flex align = "center" gap = "2" className = "no-drag" >
@@ -383,7 +361,7 @@ function RootLayout() {
383361 aria-label = "Toggle sidebar"
384362 onClick = { handleToggleSidebar }
385363 onMouseEnter = { ( ) => {
386- if ( ! sidebarOpen ) beginSidebarPeek ( ) ;
364+ if ( ! isSettingsRoute && ! sidebarOpen ) beginSidebarPeek ( ) ;
387365 } }
388366 >
389367 { sidebarOpen ? (
@@ -444,42 +422,48 @@ function RootLayout() {
444422 ) }
445423 </ Flex >
446424 < ConnectivityBanner />
447- < Flex flexGrow = "1" overflow = "hidden" className = "relative" >
448- { /* Scrim under the peeked nav: dims the content while the overlay is
449- out. Purely visual (pointer-transparent) and paired with the
450- panel's slide — same 200ms ease-out — so they read as one unit. */ }
451- { ! sidebarOpen && (
452- < Box
453- aria-hidden
454- // The radix preset replaces Tailwind's palette, so plain
455- // `bg-black/*` doesn't exist — use the radix black-alpha scale
456- // (--black-a2 = 10%, --black-a5 = 30%).
457- className = { `pointer-events-none absolute inset-0 z-40 bg-blackA-2 transition-opacity duration-200 ease-out motion-reduce:transition-none dark:bg-blackA-5 ${
458- sidebarPeek ? "opacity-100" : "opacity-0"
459- } `}
460- />
461- ) }
462- < ChannelsSidebar />
463- { /* Content sits in a bordered, rounded card inset from the window
464- edges — the framed pane from the design. */ }
465- < Box flexGrow = "1" className = "overflow-hidden" >
466- < Box
467- className = { `h-full overflow-hidden border-border border-t border-l bg-background ${
468- sidebarOpen ? "rounded-tl-sm" : ""
469- } `}
470- >
471- < Flex direction = "column" height = "100%" >
472- { /* The /website space renders its own header (WebsiteLayout);
473- everywhere else the shared header carries the view title
474- and, on a task, its action row. */ }
475- { ! onWebsitePath && < ContentHeader /> }
476- < Box flexGrow = "1" overflow = "hidden" >
477- { showBlankTab ? < BlankTabView /> : < Outlet /> }
478- </ Box >
479- </ Flex >
480- </ Box >
425+ { isSettingsRoute ? (
426+ < Box flexGrow = "1" className = "overflow-hidden bg-background" >
427+ < Outlet />
481428 </ Box >
482- </ Flex >
429+ ) : (
430+ < Flex flexGrow = "1" overflow = "hidden" className = "relative" >
431+ { /* Scrim under the peeked nav: dims the content while the overlay is
432+ out. Purely visual (pointer-transparent) and paired with the
433+ panel's slide — same 200ms ease-out — so they read as one unit. */ }
434+ { ! sidebarOpen && (
435+ < Box
436+ aria-hidden
437+ // The radix preset replaces Tailwind's palette, so plain
438+ // `bg-black/*` doesn't exist — use the radix black-alpha scale
439+ // (--black-a2 = 10%, --black-a5 = 30%).
440+ className = { `pointer-events-none absolute inset-0 z-40 bg-blackA-2 transition-opacity duration-200 ease-out motion-reduce:transition-none dark:bg-blackA-5 ${
441+ sidebarPeek ? "opacity-100" : "opacity-0"
442+ } `}
443+ />
444+ ) }
445+ < ChannelsSidebar />
446+ { /* Content sits in a bordered, rounded card inset from the window
447+ edges — the framed pane from the design. */ }
448+ < Box flexGrow = "1" className = "overflow-hidden" >
449+ < Box
450+ className = { `h-full overflow-hidden border-border border-t border-l bg-background ${
451+ sidebarOpen ? "rounded-tl-sm" : ""
452+ } `}
453+ >
454+ < Flex direction = "column" height = "100%" >
455+ { /* The /website space renders its own header (WebsiteLayout);
456+ everywhere else the shared header carries the view title
457+ and, on a task, its action row. */ }
458+ { ! onWebsitePath && < ContentHeader /> }
459+ < Box flexGrow = "1" overflow = "hidden" >
460+ { showBlankTab ? < BlankTabView /> : < Outlet /> }
461+ </ Box >
462+ </ Flex >
463+ </ Box >
464+ </ Box >
465+ </ Flex >
466+ ) }
483467 < CommandMenu open = { commandMenuOpen } onOpenChange = { setCommandMenuOpen } />
484468 < GlobalFilePicker />
485469 < KeyboardShortcutsSheet
0 commit comments