feat(website): rebuild site on Primer Brand design prototype

Replace the Astro + Starlight site with the Brand Engineering design
prototype, ported component-for-component onto plain Astro + React
islands. The prototype is treated as the authority on markup and
styling; dynamic data is injected into its components rather than the
components being reinterpreted.

Framework:
- Remove @astrojs/starlight entirely, along with its document shell,
  search, footer and language selector. BaseLayout.astro now owns the
  document head, CSP, social meta and analytics.
- Add @primer/react-brand and @astrojs/react. Alias the package to its
  ESM build in vite.resolve, since the default CJS entrypoint breaks
  named-export detection during SSR, and mark it noExternal so its
  stylesheet imports resolve.
- Promote pagefind to an explicit devDependency; it was previously
  pulled in transitively by Starlight.

Pages: home, the five catalogs, the five detail routes, contributors,
Playbook index and articles, and the cookbook are all rendered by
ported prototype components inside a shared PageShell.

Detail pages share a DetailChassis (hero, breadcrumbs, sticky TOC with
scroll-spy, prev/next) while keeping what makes each type distinct: a
file switcher over bundled skill assets, an included-items grid and
external provenance for plugins, and a hero-scale preview for
extensions.

i18n: resolve translated Playbook entries via Astro.currentLocale
inside the shared article route instead of separate [locale] routes.
The explicit routes collided with the i18n fallback routes, so
translated articles were being shadowed by their English originals and
900 nonsensical double-locale pages were emitted.

Search: TopNavSearch now queries the Pagefind index client-side in
addition to the static resource index, merging on href and degrading
to the static index in dev, where no index has been built.

Also delete the superseded vanilla-TS page renderers and Astro
partials, which the ported React components fully replace.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 80686fef-efe3-4cdd-8cd6-bfa61a5d0af6
This commit is contained in:
Aaron Powell
2026-08-14 17:32:36 +10:00
parent 782200e3a4
commit f29b88f27f
160 changed files with 24650 additions and 14134 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="20" viewBox="0 0 24 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.9429 0.185587C14.0827 0.209694 14.3432 0.283749 14.4819 0.324577C15.4445 0.602404 16.3345 1.08816 17.0889 1.74755C18.0697 2.61357 18.8014 3.77996 19.0743 5.06576C19.1496 5.42018 19.1738 5.69532 19.1964 6.05452C19.9052 6.47241 21.2122 6.2735 21.9765 6.03087C22.1873 5.96385 22.3845 5.87582 22.6099 5.82415C22.9897 5.73725 23.1819 6.00675 23.0693 6.35913C22.8743 6.87065 22.4732 7.20858 21.9897 7.44881C22.0123 7.61916 21.9954 7.74974 21.9265 7.90591C21.8274 8.12719 21.6671 8.31554 21.4645 8.4488C20.9198 8.80304 19.9085 8.88554 19.275 9.03554C19.0621 9.08601 18.8856 9.11698 18.6757 9.20013C18.6987 9.4758 18.8254 9.88842 18.8772 10.1801C19.0389 11.0894 19.1707 11.983 19.1081 12.9078C18.9947 14.5849 18.2823 16.1646 17.0032 17.2757C15.9232 18.2137 13.9932 19.1155 12.5675 19.2694C11.871 19.3447 10.4044 19.2245 9.68554 19.1726C9.05337 19.1213 8.36025 19.0719 7.74226 18.9414C7.30463 18.8528 6.9007 18.6595 6.50142 18.4785C4.66837 17.648 3.37669 16.1668 2.36961 14.4607C2.08619 13.9807 1.77939 13.4403 1.45674 12.9741C1.30495 12.7518 1.14267 12.5371 0.970473 12.3303C0.725396 12.0342 0.394927 11.6638 0.219525 11.3284C0.0631726 11.034 -0.0120767 10.7034 0.00148597 10.3704C0.0188007 10.0126 0.141781 9.70504 0.407086 9.45774C0.866194 9.02986 1.65549 9.09982 2.25038 9.13383C2.46709 8.8137 2.77553 8.62464 3.16888 8.62028C3.29122 8.61884 3.46177 8.64084 3.56944 8.59358C3.83632 8.47664 3.99491 8.29038 4.27854 8.18377C4.77063 7.99883 5.45129 8.23071 5.90622 8.44268C5.91912 8.08903 5.8361 7.70143 5.75546 7.35716C5.5471 6.46729 5.44281 5.76631 5.63389 4.85059C5.95244 3.32398 6.76008 2.08157 8.07312 1.2288C9.88348 0.0530301 11.8548 -0.242356 13.9429 0.185587Z" fill="#5FED83"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB