Files
runicgateway.com/src/pages/404.astro
wtclaude 66187dde5d
Some checks failed
PR checks / checks (pull_request) Failing after 4m19s
feat(site): phase 1 — the foundation
Astro 7 with the Node adapter, Starlight mounted at /docs, the token file, both
self-hosted typefaces, the layout shell, and the two build-time checks from §12.

The palette's gold and cyan are sampled from runic-emblem.png rather than
guessed, per §11: 494,059 opaque pixels binned by hue, each value annotated with
its measured contrast against the ground, and restricted rather than brightened
where a ratio fails.

- checkTokens.mjs fails the build on any colour literal outside tokens.css,
  which is what keeps §7's "recolouring is a file copy" promise true.
- checkFacts.mjs re-reads all 14 externally-sourced facts from their authorities
  over the Gitea API and fails on disagreement. It also enforces D13: no email
  address in the source outside brand-default/brand.json.
- Both were negative-tested; neither has ever been allowed to pass by default.

§6 asks for output:'server' with per-page prerender=true. Astro 7 expresses the
same runtime shape as output:'static' with an adapter, opting individual routes
out — so the default is static rather than accidentally server-rendered.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 19:08:52 -05:00

33 lines
867 B
Plaintext

---
import Base from '../layouts/Base.astro';
/**
* Ours rather than Starlight's (`disable404Route: true` in astro.config.mjs). A reader who
* mistypes a marketing URL should not land in documentation chrome with a sidebar of pages
* they were not looking for.
*/
---
<Base title="Page not found" description="That page does not exist on this site.">
<section class="page notfound">
<p class="eyebrow">404</p>
<h1>That page does not exist</h1>
<p class="prose">
The link may be out of date, or the page may not be written yet — this site is being
built in phases.
</p>
<p><a href="/">Back to the homepage</a> &middot; <a href="/docs/">Documentation</a></p>
</section>
</Base>
<style>
.notfound {
padding-block: clamp(3rem, 9vw, 6rem);
}
.notfound h1 {
margin: 0 0 1rem;
color: var(--gold);
}
</style>