spb/phi-conseil
Public
1import { ImageResponse } from "next/og";2import { site } from "@/lib/content";3import { buildSpiral } from "@/lib/spiral";45export const alt = `${site.brand.name} — ${site.brand.tagline}`;6export const size = { width: 1200, height: 630 };7export const contentType = "image/png";89export default function OpenGraphImage() {10 const { squares, path, bbox } = buildSpiral(8);11 return new ImageResponse(12 <div13 style={{14 width: "100%",15 height: "100%",16 display: "flex",17 alignItems: "center",18 background: "#f5eee4",19 color: "#1d3047",20 padding: 80,21 fontFamily: "Georgia, serif",22 }}23 >24 <div style={{ display: "flex", flexDirection: "column", flex: 1 }}>25 <div style={{ fontSize: 88, lineHeight: 1 }}>{site.brand.name}</div>26 <div27 style={{28 fontSize: 22,29 letterSpacing: 6,30 marginTop: 24,31 color: "#3a4652",32 fontFamily: "sans-serif",33 }}34 >35 {site.brand.tagline}36 </div>37 <div38 style={{39 fontSize: 30,40 marginTop: 48,41 color: "#3a4652",42 fontFamily: "sans-serif",43 maxWidth: 620,44 }}45 >46 {site.seo.defaultDescription}47 </div>48 </div>49 <svg50 width="400"51 height="247"52 viewBox={`${bbox.x} ${bbox.y} ${bbox.w} ${bbox.h}`}53 fill="none"54 stroke="#c7a075"55 strokeWidth="0.25"56 >57 {squares.map((s, i) => (58 <rect key={i} x={s.x} y={s.y} width={s.s} height={s.s} />59 ))}60 <path d={path} strokeWidth="0.4" />61 </svg>62 </div>,63 size,64 );65}66