2026-08-06 12:13:04 +01:00
|
|
|
import { ImageResponse } from 'next/og';
|
2026-08-07 18:05:49 +01:00
|
|
|
import { markDataUri } from '@/components/Logo';
|
2026-08-06 12:13:04 +01:00
|
|
|
|
|
|
|
|
// iOS ignores SVG touch icons — it needs a real raster, on an opaque ground,
|
|
|
|
|
// with no transparency (it composites its own rounded mask). Previously this
|
|
|
|
|
// pointed at favicon.svg, so add-to-home-screen produced a blank tile.
|
2026-08-07 18:05:49 +01:00
|
|
|
//
|
|
|
|
|
// Teal ground with the mark knocked out in white, matching the app icon in the
|
|
|
|
|
// guideline's "brand in action" row.
|
2026-08-06 12:13:04 +01:00
|
|
|
export const size = { width: 180, height: 180 };
|
|
|
|
|
export const contentType = 'image/png';
|
|
|
|
|
|
2026-08-07 18:05:49 +01:00
|
|
|
const TEAL = '#0F766E';
|
2026-08-06 12:13:04 +01:00
|
|
|
|
|
|
|
|
export default function AppleIcon() {
|
|
|
|
|
return new ImageResponse(
|
|
|
|
|
(
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
width: '100%',
|
|
|
|
|
height: '100%',
|
|
|
|
|
display: 'flex',
|
|
|
|
|
alignItems: 'center',
|
|
|
|
|
justifyContent: 'center',
|
2026-08-07 18:05:49 +01:00
|
|
|
background: TEAL,
|
2026-08-06 12:13:04 +01:00
|
|
|
}}
|
|
|
|
|
>
|
2026-08-07 18:05:49 +01:00
|
|
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
|
|
|
<img src={markDataUri('#FFFFFF', TEAL)} width={116} height={116} alt="" />
|
2026-08-06 12:13:04 +01:00
|
|
|
</div>
|
|
|
|
|
),
|
|
|
|
|
size
|
|
|
|
|
);
|
|
|
|
|
}
|