Match the site to the approved designs

Denser star field, the page nebula, a favicon package, the filament banner
without its box, the About portrait, Kashi and tea photos and Scorpius, the
Store's own header, a header logo glow, a resume PDF that fills its page,
one divider on the Library and Shelf, star-chart art for coverless
favorites, Shelf Players, Play time and blog filters with a Show all fold,
make kind pills on craft pages, and full-width closing bands.

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-12 03:33:15 +00:00
parent 3f6167455d
commit 151bed230a
45 changed files with 671 additions and 166 deletions
+12 -2
View File
@@ -78,8 +78,17 @@ export function build(legacyDir: string): BuildResult {
add({ type: "site-settings", publish: true, ...seed.site });
add({ type: "status-kinds", title: "Status kinds", publish: true, kinds: seed.statusKinds });
for (const p of seed.pages) {
const { body, source: _source, ...rest } = p;
add({ type: "page", created: today, ...rest }, body);
const { body, source: _source, portrait, photos, ...rest } = p as typeof p & { portrait?: string; photos?: { file: string; alt: string; caption?: string }[] };
add(
{
type: "page",
created: today,
...rest,
portrait: portrait ? attach(portrait, "Pages") : undefined,
photos: photos?.map((ph) => ({ ...ph, file: attach(ph.file, "Pages") })),
},
body,
);
}
// ------------------------------------------------------------ Library: reading
@@ -340,6 +349,7 @@ export function build(legacyDir: string): BuildResult {
mode: "made to order",
channel: "here",
summary: p.summary,
menuName: ({ cards: "Proxy cards", deckBoxes: "Deck boxes" } as Record<string, string>)[p.slotKey],
icon: p.icon,
order: i + 1,
// Greg (2026-10-11): orders stay closed until he opens them, so no slot shows as open.
+6
View File
@@ -49,6 +49,7 @@ export const pages = [
title: "Landing",
page: "/",
publish: true,
portrait: "/images/hero-portrait.jpg",
body: "I build things with code during the day and with resin, plastic, and imagination at night. I lead cloud and mobile development at Implico Inc., run D&D campaigns that span years, and fill my shelves with Brandon Sanderson novels, custom dice, and board games. This is the place where all of those worlds meet.",
source: "legacy/src/pages/index.astro",
},
@@ -56,6 +57,11 @@ export const pages = [
title: "About me",
page: "/about",
publish: true,
portrait: "/images/about-portrait.jpg",
photos: [
{ file: "/images/kashi_at_work.jpg", alt: "Kashi, a mini dachshund, at work with his dog dad", caption: "Kashi, on the job" },
{ file: "/images/tea-gaiwan.jpg", alt: "A tea gaiwan set on a mushroom towel", caption: "Loose-leaf tea, the other fuel" },
],
quickFacts: [
{ icon: "map-marker", text: "Philadelphia, PA" },
{ icon: "briefcase", text: "BTP, Cloud, and Mobile App Lead at Implico Inc." },