diff --git a/apps/web/app/components/landing/ComicStrip.tsx b/apps/web/app/components/landing/ComicStrip.tsx index 880ecf3..8f53390 100644 --- a/apps/web/app/components/landing/ComicStrip.tsx +++ b/apps/web/app/components/landing/ComicStrip.tsx @@ -1,128 +1,37 @@ -import type { ReactNode } from "react" - -// Placeholder stick-figure illustrations for v1. Each panel is a simple -// monochrome amber-stroke SVG. Swap these out for commissioned cartoony art -// in a follow-up commit — the structure here is stable enough to swap visuals -// without touching the dialog/layout. - -function Panel1SVG() { - return ( - - Frustrated developer at a cluttered desk - {/* Desk */} - - {/* Monitor */} - - {/* Boilerplate code lines on monitor */} - - - - - {/* Developer (stick figure) */} - - - {/* Frown */} - - {/* Sad eyebrows */} - - - - ) -} - -function Panel2SVG() { - return ( - - Developer with head in hands - {/* Desk */} - - {/* Developer head */} - - {/* Hands covering face */} - - {/* Arms going up to head */} - - - {/* Body slumped */} - - - ) -} - -function Panel3SVG() { - return ( - - Second developer entering with a coffee mug - {/* Desk */} - - {/* Dev A still at desk */} - - - - - {/* Monitor */} - - {/* Dev B entering, holding mug */} - - {/* Smile */} - - - - - {/* Arm with mug */} - - - {/* Steam */} - - - - ) -} - -function Panel4SVG() { - return ( - - Developer looking at a clean three-file project - {/* Desk */} - - {/* Monitor */} - - {/* Three-file tree on monitor */} - - - - - {/* Developer (above the monitor area, slightly raised eyebrows) */} - - {/* Surprised mouth */} - - {/* Raised eyebrows */} - - - - - ) -} +import Image from "next/image" interface Panel { readonly speaker: "Dev A" | "Dev B" readonly line: string - readonly illustration: ReactNode + readonly src: string + readonly alt: string } const PANELS: readonly Panel[] = [ - { speaker: "Dev A", line: "Fifth StateGraph this month.", illustration: }, + { + speaker: "Dev A", + line: "Fifth StateGraph this month.", + src: "/comic/panel-1.png", + alt: "Developer at a cluttered desk, frowning at a monitor full of code, hand on chin.", + }, { speaker: "Dev A", line: "This isn't agent code. This is project structure.", - illustration: , + src: "/comic/panel-2.png", + alt: "Same developer slumped forward with both hands pressed against their temples, the monitor still cluttered.", }, { speaker: "Dev B", line: "You know Next.js, right? Same thing for LangGraph.", - illustration: , + src: "/comic/panel-3.png", + alt: "A second developer in a mustard hoodie walks in with a coffee mug, leaning toward the first developer's screen with a small smile.", + }, + { + speaker: "Dev A", + line: "…wait, that's it?", + src: "/comic/panel-4.png", + alt: "The first developer sits upright, wide-eyed in surprise, the monitor now showing a clean three-line file tree.", }, - { speaker: "Dev A", line: "…wait, that's it?", illustration: }, ] export function ComicStrip() { @@ -137,14 +46,25 @@ export function ComicStrip() {
{PANELS.map((p) => ( -
-
- {p.illustration} +
+
+ {p.alt} +
+
+

+ {p.speaker}:{" "} + {p.line} +

-

- {p.speaker}:{" "} - {p.line} -

))}
diff --git a/apps/web/public/comic/panel-1.png b/apps/web/public/comic/panel-1.png new file mode 100644 index 0000000..fd9f91b Binary files /dev/null and b/apps/web/public/comic/panel-1.png differ diff --git a/apps/web/public/comic/panel-2.png b/apps/web/public/comic/panel-2.png new file mode 100644 index 0000000..95b5fc5 Binary files /dev/null and b/apps/web/public/comic/panel-2.png differ diff --git a/apps/web/public/comic/panel-3.png b/apps/web/public/comic/panel-3.png new file mode 100644 index 0000000..069cb4f Binary files /dev/null and b/apps/web/public/comic/panel-3.png differ diff --git a/apps/web/public/comic/panel-4.png b/apps/web/public/comic/panel-4.png new file mode 100644 index 0000000..5618668 Binary files /dev/null and b/apps/web/public/comic/panel-4.png differ