diff --git a/src/app/story/[storylineId]/og/route.tsx b/src/app/story/[storylineId]/og/route.tsx index 2c2280c0..1bef4a54 100644 --- a/src/app/story/[storylineId]/og/route.tsx +++ b/src/app/story/[storylineId]/og/route.tsx @@ -73,7 +73,7 @@ export async function GET( : truncateAddress(sl.writer_address); const plotLabel = sl.plot_count === 1 ? "plot" : "plots"; const titleDisplay = - sl.title.length > 70 ? `${sl.title.slice(0, 67)}...` : sl.title; + sl.title.length > 60 ? `${sl.title.slice(0, 57)}...` : sl.title; const fonts = fontData ? [{ name: "Lora", data: fontData, weight: 700 as const }] @@ -86,40 +86,45 @@ export async function GET( width: "100%", height: "100%", display: "flex", + alignItems: "center", + justifyContent: "center", backgroundColor: "#DDD3C2", - padding: "32px", + padding: "40px 60px", fontFamily: fontData ? "Lora" : "Georgia, serif", }} > - {/* Notebook page */} + {/* Left: Moleskine notebook cover */}
- {/* Red margin line */} + {/* Elastic band */}
- {/* Ruled lines */} + {/* Ruled lines background */}
- {Array.from({ length: 16 }).map((_, i) => ( + {Array.from({ length: 18 }).map((_, i) => (
))}
- {/* Content overlay */} + {/* Content inside notebook: title + author */}
- {/* Top: PlotLink branding */}
35 ? "32px" : "38px", + fontWeight: 700, + color: "#8B4513", + lineHeight: 1.25, display: "flex", - alignItems: "center", - justifyContent: "space-between", + textAlign: "center", + justifyContent: "center", + maxWidth: "290px", }} > -
- PlotLink -
- {sl.genre && ( -
- {sl.genre} -
- )} + {titleDisplay}
- - {/* Center: Story title */}
-
40 ? "42px" : "52px", - fontWeight: 700, - color: "#2C1810", - lineHeight: 1.2, - display: "flex", - }} - > - {titleDisplay} -
-
- by {authorName} -
+ by {authorName}
+
+
- {/* Bottom: metadata bar */} + {/* Right: Metadata on dark background */} +
+ {/* Top: PlotLink branding */} +
+ PlotLink +
+
+ Tokenised collaborative fiction +
+
+ + {/* Middle: genre + stats */} +
+ {sl.genre ? (
- - {sl.plot_count} {plotLabel} - - {priceDisplay && ( - - {priceDisplay} - - )} -
-
- plotlink.xyz + {sl.genre}
+ ) : ( +
+ )} +
+ + {sl.plot_count} {plotLabel} + + {priceDisplay && ( + + {priceDisplay} + + )}
+ + {/* Bottom: domain */} +
+ plotlink.xyz +
),