Phase 4: component library

The approved element rules and ornament kit as Astro components in
packages/ui: buttons, pills, chips, filters, kickers, notices, fields and
cards; star paths, the header divider, tick scales and rings, seals and
edge seals, gilt corners, dust and placeholder art; the site header,
footer and page shell. Brand fonts are self-hosted. A gallery page shows
everything, and astro check now runs with the root typecheck.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
Claude
2026-10-11 20:44:16 +00:00
parent 32cf13a5cb
commit 807528a613
159 changed files with 6270 additions and 87 deletions
@@ -0,0 +1,48 @@
---
/** The site footer: the header divider again, then the monogram line and links. */
import monogram from "../assets/brand/gk-monogram.svg?url";
import Divider from "./Divider.astro";
const year = new Date().getFullYear();
---
<footer class="gk-site-footer">
<div class="gk-wrap"><Divider seed="footer" /></div>
<div class="gk-wrap row">
<span class="mark"><img src={monogram} alt="" width="40" height="40" />© {year} Greg Kilmer · Web Development · a Patiun LLC company</span>
<span class="links">
<a href="/inquiries" class="gk-text strong">Start an inquiry</a>
<a href="/about" class="gk-text gk-quiet">About</a>
<a href="/rss.xml" class="gk-text gk-quiet">RSS</a>
</span>
</div>
</footer>
<style>
.gk-site-footer {
position: relative;
color: var(--gk-muted);
margin-top: 64px;
}
.row {
padding-top: 24px;
padding-bottom: 32px;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 16px;
font-size: 13px;
}
.mark {
display: flex;
align-items: center;
gap: 12px;
}
.links {
display: flex;
flex-wrap: wrap;
gap: 18px;
}
.strong {
font-weight: 600;
}
</style>