From d8107a86d8fb071b24e3df6d5718e1363813c2f9 Mon Sep 17 00:00:00 2001 From: Eric Mika Date: Thu, 23 Nov 2023 18:25:33 -0500 Subject: [PATCH] Add sidebar state persistence. --- .changeset/gentle-wolves-judge.md | 5 ++ packages/starlight/components/Sidebar.astro | 87 +++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 .changeset/gentle-wolves-judge.md diff --git a/.changeset/gentle-wolves-judge.md b/.changeset/gentle-wolves-judge.md new file mode 100644 index 0000000000..c5b2506e5c --- /dev/null +++ b/.changeset/gentle-wolves-judge.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': minor +--- + +Sidebar now persists its scroll position and expanded / contracted section state across page navigations. It also scrolls the active sidebar item into view if necessary. diff --git a/packages/starlight/components/Sidebar.astro b/packages/starlight/components/Sidebar.astro index 38dc898d36..1e00101c60 100644 --- a/packages/starlight/components/Sidebar.astro +++ b/packages/starlight/components/Sidebar.astro @@ -11,3 +11,90 @@ const { sidebar } = Astro.props;
+ +{ + /* Persist sidebar state across page navigations, + and scroll the active item into view if necessary. + This is intentionally inlined to avoid FOUSC + (Flash Of Un-Scrolled Content). */ +} +