feat(site): port stitch design system + seed-ready content model
Ports the "Technical Editorial" design sample into real TSX wired to Payload globals/collections. Home/About/Projects (list+detail)/Contact pages render against Payload data. Expands schemas (Home principles, About timeline/skills/gear, Contact channels) to cover the full design surface. Adds seed script that populates realistic AI-drafted content for first boot. Defers writing/resume routes per scope cut. - Design tokens: Material-3 palette + Space Grotesk/Inter typography scale + dot-grid + glassmorphism utilities - Shared layout: Nav, Footer, StatusTerminal, GridOverlay, Button, TechChip in src/components/site - Schemas: expand 5 globals + 6 collections; add auto-slug hook - Seed: scripts/seed.ts — idempotent upsert for media, categories, 6 projects, 8 gear, 3 posts, 5 globals; generates placeholder admin - Contact: form + /api/contact route with optional Turnstile verify - Rename TURNSTILE_SITE_KEY -> NEXT_PUBLIC_TURNSTILE_SITE_KEY (client) - Remove dead src/components/SiteHeader|SiteFooter|StatusTerminal
This commit is contained in:
@@ -3,13 +3,35 @@ import type { GlobalConfig } from "payload";
|
||||
export const Navigation: GlobalConfig = {
|
||||
slug: "navigation",
|
||||
access: { read: () => true },
|
||||
admin: { group: "Site" },
|
||||
fields: [
|
||||
{
|
||||
name: "primaryLinks",
|
||||
name: "primary",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "label", type: "text", required: true },
|
||||
{ name: "href", type: "text", required: true },
|
||||
{ name: "external", type: "checkbox", defaultValue: false },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "socials",
|
||||
type: "array",
|
||||
fields: [
|
||||
{
|
||||
name: "platform",
|
||||
type: "select",
|
||||
required: true,
|
||||
options: [
|
||||
{ label: "GitHub", value: "github" },
|
||||
{ label: "LinkedIn", value: "linkedin" },
|
||||
{ label: "Twitter", value: "twitter" },
|
||||
{ label: "Mastodon", value: "mastodon" },
|
||||
{ label: "RSS", value: "rss" },
|
||||
],
|
||||
},
|
||||
{ name: "label", type: "text" },
|
||||
{ name: "href", type: "text", required: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user