Some checks failed
PR checks / checks (pull_request) Failing after 4m19s
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>
50 lines
1.3 KiB
Plaintext
50 lines
1.3 KiB
Plaintext
---
|
|
import { brand } from '../lib/brand.mjs';
|
|
import Mark from '../assets/placeholder-mark.svg?raw';
|
|
|
|
/**
|
|
* The marketing header. The docs get Starlight's own header, themed to match in
|
|
* `src/styles/starlight.css` — one site, two chromes, the same lockup.
|
|
*
|
|
* The nav names the routes §10 specifies. Phase 3 onwards fills them in; a link added
|
|
* here before its page exists fails `checkLinks.mjs`, which is the order we want.
|
|
*/
|
|
const { pathname } = Astro.url;
|
|
|
|
const links = [
|
|
{ href: '/features/', label: 'Features' },
|
|
{ href: '/docs/', label: 'Docs' },
|
|
{ href: '/app/', label: 'App' },
|
|
{ href: '/community/', label: 'Community' },
|
|
];
|
|
|
|
const isCurrent = (href: string) =>
|
|
href === '/' ? pathname === '/' : pathname.startsWith(href);
|
|
---
|
|
|
|
<header class="site-header">
|
|
<div class="page site-header__inner">
|
|
<a class="brand-lockup" href="/">
|
|
<span class="brand-lockup__mark" set:html={Mark} />
|
|
<span class="brand-lockup__name">{brand.siteName}</span>
|
|
</a>
|
|
|
|
<nav class="site-nav" aria-label="Primary">
|
|
{
|
|
links.map((link) => (
|
|
<a href={link.href} aria-current={isCurrent(link.href) ? 'page' : undefined}>
|
|
{link.label}
|
|
</a>
|
|
))
|
|
}
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<style>
|
|
.brand-lockup__mark {
|
|
display: inline-flex;
|
|
color: var(--gold);
|
|
}
|
|
</style>
|