From 893760751b428778dc59e8e47aa590bda6d71f2a Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 31 Mar 2026 02:43:45 +0200 Subject: [PATCH] feat: TOC as separate Aero Window on desktop --- app/posts/[slug]/page.tsx | 72 ++++++++++++++++---------------- components/table-of-contents.tsx | 2 +- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/app/posts/[slug]/page.tsx b/app/posts/[slug]/page.tsx index 0e6e55a..956a993 100644 --- a/app/posts/[slug]/page.tsx +++ b/app/posts/[slug]/page.tsx @@ -29,36 +29,36 @@ export default async function Post({ params }: PageProps) { const postData: PostData = await getPostData(slug); return ( -
- -
-
- - {new Date(postData.date).toLocaleDateString("en-US", { - year: "numeric", - month: "long", - day: "numeric", - })} - - {postData.readingTime} -
- - {postData.wip && ( -
- 🚧 - This post is a work in progress — content may change. +
+
+ +
+
+ + {new Date(postData.date).toLocaleDateString("en-US", { + year: "numeric", + month: "long", + day: "numeric", + })} + + {postData.readingTime}
- )} - {/* Mobile TOC — shown above article, hidden on lg+ */} - {postData.headings.length > 0 && ( -
- -
- )} + {postData.wip && ( +
+ 🚧 + This post is a work in progress — content may change. +
+ )} -
-
+ {/* Mobile TOC — inline above article, hidden on lg+ */} + {postData.headings.length > 0 && ( +
+ +
+ )} + +
+
+
- {/* Desktop TOC sidebar — hidden on mobile */} - {postData.headings.length > 0 && ( -
- -
- )} + {/* Desktop TOC — separate Aero Window, sticky on the right */} + {postData.headings.length > 0 && ( +
+ + +
-
-
+ )} +
+