From f0618bfba6c194ea25495e0f4425a75194b70f7a Mon Sep 17 00:00:00 2001 From: Shephard Tseisi Date: Fri, 24 Jul 2026 23:44:13 +0200 Subject: [PATCH 1/3] feat: implement toggleable sections in DocsSidebar for improved content display --- .../Chrome/DocsSidebar.razor.css | 16 ++++++++++++++++ .../Chrome/DocsSidebarNode.razor | 13 ++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/ShellDocs.Components/Chrome/DocsSidebar.razor.css b/src/ShellDocs.Components/Chrome/DocsSidebar.razor.css index 6a90cf2..2f35aff 100644 --- a/src/ShellDocs.Components/Chrome/DocsSidebar.razor.css +++ b/src/ShellDocs.Components/Chrome/DocsSidebar.razor.css @@ -120,6 +120,22 @@ transform: rotate(90deg); } +/* Toggleable section content — grid-rows 0fr→1fr animates to natural height + without needing a fixed max-height. The inner wrapper carries the actual + items and MUST have `min-height: 0` so it can collapse cleanly. */ +::deep .sidebar-section-shell { + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows 220ms cubic-bezier(0.16, 1, 0.3, 1); +} +::deep .sidebar-section-shell[data-open="true"] { + grid-template-rows: 1fr; +} +::deep .sidebar-section-shell > .sidebar-section-items { + overflow: hidden; + min-height: 0; +} + ::deep .sidebar-section-items { display: flex; flex-direction: column; diff --git a/src/ShellDocs.Components/Chrome/DocsSidebarNode.razor b/src/ShellDocs.Components/Chrome/DocsSidebarNode.razor index 8bdeef0..afbd4f3 100644 --- a/src/ShellDocs.Components/Chrome/DocsSidebarNode.razor +++ b/src/ShellDocs.Components/Chrome/DocsSidebarNode.razor @@ -23,7 +23,18 @@ else if (Node.Kind == NodeKind.Section) } } - @if (!_isToggleable || _isOpen) + @if (_isToggleable) + { + + } + else {