- public/logo.svg: amber coaster silhouette (lift hill + vertical loop + camelback) on transparent background; used in header and README - app/icon.tsx: PNG favicon via Next.js ImageResponse (works in all browsers including Safari); renders simplified hill + loop on dark rounded-square background - app/page.tsx: logo img added next to "Thoosie Calendar" title in header - README.md: logo displayed at top of document - Remove app/icon.svg (replaced by icon.tsx → PNG) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.3 KiB
TypeScript
60 lines
1.3 KiB
TypeScript
import { ImageResponse } from "next/og";
|
|
|
|
export const size = { width: 32, height: 32 };
|
|
export const contentType = "image/png";
|
|
|
|
export default function Icon() {
|
|
return new ImageResponse(
|
|
(
|
|
<div
|
|
style={{
|
|
width: 32,
|
|
height: 32,
|
|
borderRadius: 8,
|
|
backgroundColor: "#0c1220",
|
|
display: "flex",
|
|
position: "relative",
|
|
}}
|
|
>
|
|
{/* Ground line */}
|
|
<div
|
|
style={{
|
|
position: "absolute",
|
|
left: 3,
|
|
right: 3,
|
|
bottom: 7,
|
|
height: 2,
|
|
backgroundColor: "#f59e0b",
|
|
borderRadius: 1,
|
|
}}
|
|
/>
|
|
{/* Lift hill — semicircle bump */}
|
|
<div
|
|
style={{
|
|
position: "absolute",
|
|
left: 3,
|
|
bottom: 9,
|
|
width: 10,
|
|
height: 13,
|
|
backgroundColor: "#f59e0b",
|
|
borderRadius: "50% 50% 0 0",
|
|
}}
|
|
/>
|
|
{/* Vertical loop — circle outline */}
|
|
<div
|
|
style={{
|
|
position: "absolute",
|
|
right: 5,
|
|
bottom: 7,
|
|
width: 12,
|
|
height: 12,
|
|
border: "2.5px solid #f59e0b",
|
|
borderRadius: "50%",
|
|
}}
|
|
/>
|
|
</div>
|
|
),
|
|
{ width: 32, height: 32 },
|
|
);
|
|
}
|