.shell { height: 100dvh; min-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr); background: var(--color-canvas); color: var(--color-text); } .body { --shell-dock-clearance: calc(var(--space-12) + var(--space-12) + var(--space-8)); --rail-width: 4.75rem; --sidebar-width: 16.75rem; --mobile-bottom-nav-clearance: 0rem; --shell-top-left-radius: calc(var(--radius-xl) + var(--space-1)); --shell-frame-border: color-mix(in srgb, var(--color-border-strong) 44%, transparent); --shell-divider-border: color-mix(in srgb, var(--color-border-strong) 34%, transparent); --sidebar-panel-surface: color-mix(in srgb, var(--color-surface-muted) 92%, transparent); --workspace-panel-surface: color-mix(in srgb, var(--color-canvas) 94%, var(--color-surface)); position: relative; min-height: 0; display: grid; grid-template-columns: var(--rail-width) minmax(0, 1fr); overflow: hidden; background: var(--color-surface); } .bodyRailCollapsed { --rail-width: 0rem; } .bodySidebarCollapsed { --sidebar-width: 0rem; } .railColumn { min-height: 0; display: flex; position: relative; z-index: 6; isolation: isolate; overflow: visible; background: var(--color-surface); } .workspaceRegion { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); overflow: visible; z-index: 1; isolation: isolate; border-top-left-radius: var(--shell-top-left-radius); border-top-right-radius: 0; } .workspaceRegion::before { content: ""; position: absolute; inset: 0; background: linear-gradient( to right, var(--sidebar-panel-surface) 0, var(--sidebar-panel-surface) calc(var(--sidebar-width) - 0.5px), var(--workspace-panel-surface) calc(var(--sidebar-width) - 0.5px), var(--workspace-panel-surface) 100% ); border: 1px solid var(--shell-frame-border); border-top: 0; border-top-left-radius: var(--shell-top-left-radius); border-top-right-radius: 0; box-shadow: inset 0 1px 0 color-mix(in srgb, white 3%, transparent); pointer-events: none; z-index: 0; } .sidebarColumn { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr); overflow: visible; z-index: 1; background: var(--sidebar-panel-surface); border-top: 1px solid var(--shell-frame-border); border-left: 1px solid var(--shell-frame-border); border-top-left-radius: var(--shell-top-left-radius); } .workspaceMain { min-width: 0; min-height: 0; position: relative; overflow: hidden; z-index: 1; border-top: 1px solid var(--shell-frame-border); border-left: 1px solid var(--shell-divider-border); background: var(--workspace-panel-surface); border-top-right-radius: 0; } .mobileWorkspaceView { min-width: 0; min-height: 0; height: 100%; display: grid; box-sizing: border-box; overflow: hidden; background: var(--workspace-panel-surface); } .sidebarDock { position: absolute; bottom: var(--space-3); left: calc(var(--space-1) + (var(--rail-width) * 0.1)); width: max(12rem, calc(var(--sidebar-width) + (var(--rail-width) * 0.9) - var(--space-2))); right: auto; z-index: calc(var(--z-modal) + 1); pointer-events: none; > * { pointer-events: auto; } } @include respond-up(mobile) { .body { --rail-width: 5rem; --sidebar-width: 17.25rem; } .bodyRailCollapsed { --rail-width: 0rem; } .bodySidebarCollapsed { --sidebar-width: 0rem; } } @include respond-down(tablet) { .body { --rail-width: 4.5rem; --sidebar-width: 13.25rem; } .bodyRailCollapsed { --rail-width: 0rem; } .bodySidebarCollapsed { --sidebar-width: 0rem; } } .bodyRailCollapsed .railColumn { overflow: hidden; } .bodySidebarCollapsed .railColumn { --rail-dock-clearance: 0rem; } .bodySidebarCollapsed:not(.bodyRailCollapsed) .railColumn { --rail-bottom-offset: var(--space-3); } .bodySidebarCollapsed .sidebarColumn { --sidebar-dock-clearance: 0rem; display: none; overflow: hidden; border-left-width: 0; border-top-width: 0; } .bodySidebarCollapsed .workspaceRegion { grid-template-columns: minmax(0, 1fr); } .bodySidebarCollapsed .workspaceMain { border-left-color: transparent; } .bodySidebarCollapsed:not(.bodyRailCollapsed) .workspaceMain { border-top-width: 1px; border-top-color: var(--shell-frame-border); border-left-color: var(--shell-frame-border); border-top-left-radius: var(--shell-top-left-radius); box-shadow: none; } .bodySidebarCollapsed:not(.bodyRailCollapsed) .workspaceRegion::before { display: none; } .bodySidebarCollapsed .sidebarDock { display: none; } @include respond-down(mobile) { .body { grid-template-columns: minmax(0, 1fr); --rail-width: 0rem; --sidebar-width: 0rem; --mobile-bottom-nav-clearance: calc(var(--space-12) + var(--space-10) + env(safe-area-inset-bottom, 0px)); } .railColumn { display: none; } .workspaceRegion { display: grid; grid-template-columns: minmax(0, 1fr); border-top-left-radius: 0; } .workspaceRegion::before { background: var(--workspace-panel-surface); border-left-width: 0; border-right-width: 0; border-top-left-radius: 0; } .sidebarColumn, .sidebarDock { display: none; } .workspaceMain { border-left-width: 0; border-top-right-radius: 0; border-top-left-radius: 0; box-sizing: border-box; padding-bottom: var(--mobile-bottom-nav-clearance); } .mobileWorkspaceView { height: 100%; max-height: none; padding-bottom: 0; background: var(--workspace-panel-surface); } }