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:
@@ -5,6 +5,7 @@ import containerQueries from "@tailwindcss/container-queries";
|
||||
// Tokens ported verbatim from design-samples/stitch_jasonwoltje.com/*/code.html
|
||||
// Full token rationale in design-samples/stitch_jasonwoltje.com/silicon_ethos/DESIGN.md
|
||||
const stitchColors = {
|
||||
// Core accents
|
||||
primary: "#81ecff",
|
||||
"primary-dim": "#00d4ec",
|
||||
"primary-fixed": "#00e3fd",
|
||||
@@ -41,9 +42,11 @@ const stitchColors = {
|
||||
"on-error": "#490006",
|
||||
"on-error-container": "#ffa8a3",
|
||||
|
||||
// Base
|
||||
background: "#0d0e12",
|
||||
"on-background": "#f7f5fc",
|
||||
|
||||
// Surface stack (hyphenated — existing usage)
|
||||
surface: "#0d0e12",
|
||||
"surface-dim": "#0d0e12",
|
||||
"surface-bright": "#2a2c32",
|
||||
@@ -63,6 +66,20 @@ const stitchColors = {
|
||||
|
||||
outline: "#75757a",
|
||||
"outline-variant": "#47484d",
|
||||
|
||||
// Underscore aliases — for page subagents (matches DESIGN.md token names)
|
||||
on_surface: "#f7f5fc",
|
||||
on_primary: "#005762",
|
||||
outline_variant: "#47484d",
|
||||
primary_container: "#00e3fd",
|
||||
inverse_surface: "#faf8ff",
|
||||
surface_variant: "#24252c",
|
||||
surface_bright: "#2a2c32",
|
||||
surface_container_lowest: "#000000",
|
||||
surface_container_low: "#121318",
|
||||
surface_container: "#18191e",
|
||||
surface_container_high: "#1e1f25",
|
||||
surface_container_highest: "#24252c",
|
||||
};
|
||||
|
||||
const config: Config = {
|
||||
@@ -81,6 +98,9 @@ const config: Config = {
|
||||
full: "9999px",
|
||||
},
|
||||
fontFamily: {
|
||||
display: ["Space Grotesk", "sans-serif"],
|
||||
sans: ["Inter", "sans-serif"],
|
||||
mono: ["Space Grotesk", "ui-monospace", "monospace"],
|
||||
headline: ["var(--font-headline)", "Space Grotesk", "sans-serif"],
|
||||
body: ["var(--font-body)", "Inter", "sans-serif"],
|
||||
label: ["var(--font-label)", "Space Grotesk", "monospace"],
|
||||
@@ -90,6 +110,7 @@ const config: Config = {
|
||||
"0 0 32px 4px rgba(129, 236, 255, 0.25), 0 0 4px 1px rgba(129, 236, 255, 0.5)",
|
||||
"neon-secondary":
|
||||
"0 0 32px 4px rgba(216, 115, 255, 0.25), 0 0 4px 1px rgba(216, 115, 255, 0.5)",
|
||||
"ambient-primary": "0 0 40px 6px rgba(129, 236, 255, 0.06)",
|
||||
},
|
||||
backdropBlur: {
|
||||
"2xl": "24px",
|
||||
|
||||
Reference in New Issue
Block a user