diff --git a/TODO.md b/TODO.md index 490f7d3..3f297a0 100644 --- a/TODO.md +++ b/TODO.md @@ -69,18 +69,26 @@ approved plan for full rationale on each decision referenced below. header/nav with active-link state, theme toggle, footer with social links. Verified light + dark in-browser across home, a writing detail page (TOC/headings), bookshelf, and 404 -- [ ] Homepage redesign around the Three.js centerpiece as hero — next up +- [x] Homepage redesign around the Three.js centerpiece as hero — the + constellation sits above a 3-column dashboard (latest writings, + portfolio, bookshelf), verified rendering and hover/click working + in-browser - [x] New 404 page concept (terminal easter egg retired) — "Page Fault", now fully styled with the rest of the design system ## Three.js centerpiece -- [ ] Decide the constellation/node-graph data model (what nodes/edges - represent — writings ↔ portfolio ↔ beliefs connections) -- [ ] Build as an isolated Astro island -- [ ] Static image/CSS fallback for `prefers-reduced-motion` and low-end - devices -- [ ] Perf budget check on a low-end/mobile profile +- [x] Constellation data model: nodes are real content entries (writings, + portfolio, bookshelf), edges are shared-tag connections — the same + relationship "related posts" already uses, drawn instead of listed. + No decorative/fake data. `src/lib/constellation-data.ts` +- [x] Built as an isolated component (`Constellation.astro` + a plain + client ` diff --git a/apps/site/src/layouts/Base.astro b/apps/site/src/layouts/Base.astro index 3ce2f34..e3bfb90 100644 --- a/apps/site/src/layouts/Base.astro +++ b/apps/site/src/layouts/Base.astro @@ -8,8 +8,10 @@ import { siteConfig } from "../site.config"; interface Props { title: string; description?: string; + /** Widens .container for dashboard-style layouts (currently just the homepage). */ + wide?: boolean; } -const { title, description } = Astro.props; +const { title, description, wide = false } = Astro.props; const metaDescription = description ?? siteConfig.description; const currentPath = Astro.url.pathname; --- @@ -109,7 +111,7 @@ const currentPath = Astro.url.pathname; -
+
{siteConfig.author.toUpperCase()}