From 0bfc5dede6a1d677c856a2e64b7bfc17dfcdf4b7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 14 Jun 2026 15:04:39 +0000 Subject: [PATCH] =?UTF-8?q?feat(web):=20Sprint=203=20=E2=80=94=20404=20pag?= =?UTF-8?q?e,=20loading=20skeleton,=20philosophy=20section,=20next/link?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - not-found.tsx: branded 404 with gradient "404", constellation copy, and links back to home/products - products/[slug]/loading.tsx: pulse-skeleton matching the product page layout (breadcrumb, metric strip, hero, features) - PhilosophySection: 2×2 animated card grid for the four Konjo values (ቆንጆ/根性/康宙/건조) with per-card hover glow in the value's accent color; placed between ConstellationMap and DesignPreview on the homepage - next/link migration: ProjectGrid, RelatedProducts, LiveTicker, Breadcrumbs, Footer — all internal links now use for client-side navigation with prefetch; external URLs kept as https://claude.ai/code/session_01D2raHvxTxUpokiB7nLZnP9 --- apps/web/app/_components/Breadcrumbs.tsx | 5 +- apps/web/app/_components/Footer.tsx | 13 +- apps/web/app/_components/LiveTicker.tsx | 5 +- .../web/app/_components/PhilosophySection.tsx | 111 ++++++++++++++++++ apps/web/app/_components/ProjectGrid.tsx | 13 +- apps/web/app/not-found.tsx | 60 ++++++++++ apps/web/app/page.tsx | 2 + apps/web/app/products/[slug]/loading.tsx | 62 ++++++++++ .../products/_components/RelatedProducts.tsx | 5 +- 9 files changed, 258 insertions(+), 18 deletions(-) create mode 100644 apps/web/app/_components/PhilosophySection.tsx create mode 100644 apps/web/app/not-found.tsx create mode 100644 apps/web/app/products/[slug]/loading.tsx diff --git a/apps/web/app/_components/Breadcrumbs.tsx b/apps/web/app/_components/Breadcrumbs.tsx index a211fdd..8217f5b 100644 --- a/apps/web/app/_components/Breadcrumbs.tsx +++ b/apps/web/app/_components/Breadcrumbs.tsx @@ -1,5 +1,6 @@ "use client"; +import Link from "next/link"; import { motion, useReducedMotion } from "motion/react"; import { ease } from "@konjoai/ui"; @@ -23,12 +24,12 @@ export function Breadcrumbs({ trail }: { trail: Crumb[] }) { transition={{ duration: 0.3, ease: ease.kanjo, delay: i * 0.07 }} > {c.href && !last ? ( - {c.label} - + ) : ( {c.label} )} diff --git a/apps/web/app/_components/Footer.tsx b/apps/web/app/_components/Footer.tsx index 680502c..cfa5498 100644 --- a/apps/web/app/_components/Footer.tsx +++ b/apps/web/app/_components/Footer.tsx @@ -1,3 +1,4 @@ +import Link from "next/link"; import { severity as sevColor } from "@konjoai/ui"; import { PRODUCTS } from "@/lib/products"; @@ -23,7 +24,7 @@ export function Footer() {
{PRODUCTS.map((p) => ( - {p.slug} - + ))}
@@ -56,18 +57,18 @@ export function Footer() {