Skip to content

Commit bf4c8fc

Browse files
committed
feat: add dynamic Open Graph image generation for main, posts, and team pages
1 parent 6b47f35 commit bf4c8fc

6 files changed

Lines changed: 118 additions & 118 deletions

File tree

app/opengraph-image.tsx

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ export const size = {
1111
export const contentType = "image/png";
1212

1313
export default async function Image() {
14+
const fontData = await fetch(
15+
new URL("../public/fonts/general-sans/GeneralSans-Semibold.woff2", import.meta.url)
16+
).then((res) => res.arrayBuffer());
17+
18+
// Fetch the PNG Logo
19+
const logoData = await fetch(
20+
new URL("../public/logos/LAP-Logo-Transparent.png", import.meta.url)
21+
).then((res) => res.arrayBuffer());
22+
1423
return new ImageResponse(
1524
(
1625
<div
@@ -22,37 +31,43 @@ export default async function Image() {
2231
flexDirection: "column",
2332
alignItems: "center",
2433
justifyContent: "center",
25-
fontFamily: "sans-serif",
34+
fontFamily: '"General Sans", sans-serif',
2635
position: "relative",
2736
}}
2837
>
29-
{/* Logo Shape */}
30-
<div style={{
31-
width: "100px",
32-
height: "100px",
33-
background: "#9D4EDD",
34-
marginBottom: "50px",
35-
clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)", // Proper Triangle
36-
display: "flex"
37-
}} />
38+
{/* PNG Logo - Scaled */}
39+
<div style={{ marginBottom: "50px", display: "flex" }}>
40+
<img
41+
width="150"
42+
height="150"
43+
src={logoData as any}
44+
alt="L.A.P Logo"
45+
/>
46+
</div>
3847

39-
{/* Main Text */}
40-
<div
41-
style={{
42-
display: "flex",
43-
alignItems: "center",
44-
justifyContent: "center",
45-
fontWeight: 900,
46-
}}
47-
>
48-
<span style={{ color: "#9D4EDD", fontSize: 180, letterSpacing: "-0.04em", lineHeight: 0.8 }}>L.A.P</span>
49-
<span style={{ color: "white", fontSize: 180, margin: "0 30px", lineHeight: 0.8 }}>-</span>
50-
<span style={{ color: "#9D4EDD", fontSize: 180, letterSpacing: "-0.04em", lineHeight: 0.8 }}>DOCS</span>
48+
{/* Real SVG Text (lap-docs.svg) */}
49+
<div style={{ display: "flex" }}>
50+
<svg
51+
width="800"
52+
height="114"
53+
viewBox="0 0 1520 216"
54+
xmlns="http://www.w3.org/2000/svg"
55+
>
56+
<path fill="#8a2be2" d="M130.1,196.2H17.8V22.4h36.8v140.6h75.5v33.2Z"/>
57+
<path fill="#8a2be2" d="M197.4,174.7c0,6.6-2.1,12.1-6.3,16.3-4.2,4.3-9.6,6.4-16.2,6.4s-12.1-2.1-16.3-6.4c-4.3-4.3-6.4-9.7-6.4-16.3s2.1-12.3,6.4-16.6c4.3-4.3,9.7-6.4,16.3-6.4s12,2.1,16.2,6.4c4.2,4.3,6.3,9.8,6.3,16.6Z"/>
58+
<path fill="#8a2be2" d="M344.2,196.2l-46.5-133.6-47.4,133.6h-37L278.7,22.4h40.2l64.9,173.8h-39.4ZM259.3,129.7h77l9.7,29.3h-97.3l10.6-29.3Z"/>
59+
<path fill="#8a2be2" d="M444.9,174.7c0,6.6-2.1,12.1-6.3,16.3-4.2,4.3-9.6,6.4-16.2,6.4s-12.1-2.1-16.3-6.4c-4.3-4.3-6.4-9.7-6.4-16.3s2.1-12.3,6.4-16.6c4.3-4.3,9.7-6.4,16.3-6.4s12,2.1,16.2,6.4c4.2,4.3,6.3,9.8,6.3,16.6Z"/>
60+
<path fill="#8a2be2" d="M536.2,139.6h-27.3v56.6h-36.8V22.4h64.1c14.2,0,26.4,2.2,36.7,6.5,10.2,4.4,18.1,10.8,23.7,19.4,5.6,8.6,8.3,19.2,8.3,31.9s-2.8,23.3-8.3,32.2c-5.6,8.9-13.5,15.6-23.7,20.2-10.2,4.6-22.5,6.9-36.7,6.9ZM535.9,53.4h-27.1v55.2h27.1c10.3,0,18.3-2.5,24-7.6,5.6-5.1,8.5-11.9,8.5-20.4s-2.8-15.2-8.5-20c-5.6-4.8-13.6-7.1-24-7.1Z"/>
61+
<path fill="#8a2be2" d="M743.1,144.7h-73.8v-30h73.8v30Z"/>
62+
<path fill="#8a2be2" d="M879.8,196.2h-61.7V22.4h61.7c18.4,0,34.2,3.6,47.4,10.9,13.2,7.3,23.4,17.3,30.5,30.2,7.1,12.9,10.6,27.8,10.6,44.8s-3.6,31.8-10.9,45.1c-7.3,13.3-17.5,23.8-30.9,31.3-13.3,7.6-28.9,11.4-46.8,11.4ZM854.9,54.1v110.4h23c11.6,0,21.3-2.2,29.2-6.5,7.8-4.4,13.7-10.7,17.7-19.1,4-8.4,5.9-18.6,5.9-30.5s-2-21.5-5.9-29.5c-4-8.1-9.8-14.2-17.7-18.4-7.8-4.2-17.5-6.3-29.2-6.3h-23Z"/>
63+
<path fill="#8a2be2" d="M1072.7,199.8c-12.6,0-24.2-2.3-35-6.8-10.7-4.5-20.1-10.8-28.2-19-8.1-8.1-14.4-17.7-18.9-28.8-4.5-11-6.8-23.1-6.8-36.2s2.3-25.1,6.8-36.1c4.5-11,10.8-20.5,18.9-28.6,8.1-8.1,17.5-14.4,28.2-18.9,10.7-4.5,22.4-6.8,35-6.8s24.3,2.3,35.1,6.8c10.8,4.5,20.3,10.8,28.4,18.9,8.1,8.1,14.5,17.6,19,28.6,4.5,11,6.8,23,6.8,36.1s-2.3,25.1-6.8,36.2c-4.5,11.1-10.9,20.7-19,28.8-8.1,8.1-17.6,14.5-28.4,19-10.8,4.5-22.5,6.8-35.1,6.8ZM1072.7,166.9c7.9,0,15-1.5,21.4-4.5,6.4-3,11.8-7.1,16.2-12.5,4.4-5.3,7.8-11.5,10.2-18.5,2.3-7,3.5-14.5,3.5-22.4s-1.2-15.3-3.5-22.3c-2.3-6.9-5.7-13-10.2-18.3-4.4-5.2-9.8-9.4-16.2-12.3-6.4-3-13.5-4.5-21.4-4.5s-15,1.5-21.3,4.5c-6.3,3-11.7,7.1-16.1,12.3-4.4,5.2-7.8,11.3-10.2,18.3-2.3,6.9-3.5,14.4-3.5,22.3s1.2,15.4,3.5,22.4c2.3,7,5.7,13.2,10.2,18.5,4.4,5.3,9.8,9.5,16.1,12.5,6.3,3,13.4,4.5,21.3,4.5Z"/>
64+
<path fill="#8a2be2" d="M1264.3,199.8c-12.1,0-23.5-2.3-34.1-6.9-10.6-4.6-19.9-11-27.8-19.4-7.9-8.3-14.1-17.9-18.5-28.9-4.4-11-6.7-22.8-6.7-35.6s2.2-24.6,6.7-35.5c4.4-10.9,10.6-20.4,18.5-28.7,7.9-8.2,17.2-14.6,27.8-19.2,10.6-4.6,22-6.9,34.1-6.9s29.2,3.1,41.7,9.4c12.5,6.3,22.8,15.1,30.9,26.4,8.1,11.3,13.1,24.4,15,39.2h-39c-1.3-8.4-4.2-15.7-8.8-22-4.6-6.3-10.2-11.2-16.9-14.8-6.7-3.5-14.2-5.3-22.4-5.3s-14.4,1.4-20.4,4.1c-6.1,2.7-11.3,6.7-15.7,11.9-4.4,5.2-7.8,11.3-10.2,18.3-2.3,7-3.5,14.7-3.5,23.1s1.2,16.3,3.5,23.4c2.3,7,5.7,13.1,10.2,18.3,4.4,5.2,9.7,9.2,15.7,12,6,2.8,12.9,4.2,20.4,4.2s15.7-1.8,22.5-5.4c6.8-3.6,12.4-8.6,16.8-15,4.4-6.4,7.4-13.7,8.8-21.9h39c-2.1,15-7.2,28.2-15.2,39.4-8.1,11.3-18.3,20.1-30.7,26.4-12.4,6.3-26.3,9.4-41.6,9.4Z"/>
65+
<path fill="#8a2be2" d="M1510.9,142.2c0,11-2.8,20.7-8.5,29.2-5.6,8.5-13.7,15.1-24.1,20s-23,7.3-37.6,7.3-27.1-2.5-37.9-7.4c-10.7-4.9-19.2-11.9-25.3-20.9-6.1-9-9.7-19.7-10.6-31.9h37.3c.5,9.7,3.8,17.3,9.8,23,6,5.6,14.7,8.5,26,8.5s11.8-.9,16.6-2.7c4.8-1.8,8.5-4.4,11.3-7.7,2.7-3.4,4.1-7.3,4.1-11.9s-2-9.9-6-13.2c-4-3.3-9.8-5.7-17.2-7.1l-28.6-5.6c-6.6-1.1-12.7-3-18.4-5.6-5.6-2.6-10.6-5.8-14.8-9.7-4.2-3.9-7.5-8.5-9.9-14-2.4-5.5-3.6-11.8-3.6-18.9,0-10.3,2.8-19.5,8.3-27.6,5.6-8.1,13.2-14.4,23-18.9,9.8-4.5,20.9-6.8,33.5-6.8s24.7,2.4,34.8,7.3c10.2,4.8,18.4,11.7,24.7,20.4,6.3,8.8,9.8,19.2,10.4,31.3h-37.3c-.3-6.1-1.9-11.5-4.7-16.1-2.8-4.6-6.6-8.1-11.3-10.6-4.7-2.5-10.1-3.8-16.2-3.8s-11,1-15.1,3c-4.1,2-7.3,4.7-9.6,8-2.3,3.3-3.4,7.1-3.4,11.3s1.1,7.1,3.3,9.7c2.2,2.6,5,4.6,8.6,6.2,3.5,1.5,7.4,2.7,11.6,3.5l29.8,6c15.3,3.1,27,8.3,35,15.6,8,7.3,12,17.4,12,30.1Z"/>
66+
</svg>
5167
</div>
5268

5369
{/* Tagline */}
5470
<div style={{
55-
marginTop: "60px",
5671
color: "white",
5772
fontSize: 32,
5873
letterSpacing: "0.2em",
@@ -65,6 +80,13 @@ export default async function Image() {
6580
),
6681
{
6782
...size,
83+
fonts: [
84+
{
85+
name: "General Sans",
86+
data: fontData,
87+
style: "normal",
88+
},
89+
],
6890
}
6991
);
7092
}

app/posts/opengraph-image.tsx

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ export const size = {
1111
export const contentType = "image/png";
1212

1313
export default async function Image() {
14+
const fontData = await fetch(
15+
new URL("../../public/fonts/general-sans/GeneralSans-Semibold.woff2", import.meta.url)
16+
).then((res) => res.arrayBuffer());
17+
18+
// Fetch the PNG Logo
19+
const logoData = await fetch(
20+
new URL("../../public/logos/LAP-Logo-Transparent.png", import.meta.url)
21+
).then((res) => res.arrayBuffer());
22+
1423
return new ImageResponse(
1524
(
1625
<div
@@ -22,45 +31,41 @@ export default async function Image() {
2231
flexDirection: "column",
2332
alignItems: "center",
2433
justifyContent: "center",
25-
fontFamily: "sans-serif",
34+
fontFamily: '"General Sans", sans-serif',
2635
position: "relative",
2736
}}
2837
>
29-
<div style={{
30-
width: "80px",
31-
height: "80px",
32-
background: "#9D4EDD",
33-
marginBottom: "40px",
34-
clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)",
35-
display: "flex"
36-
}} />
37-
38-
<div
39-
style={{
40-
display: "flex",
41-
alignItems: "center",
42-
justifyContent: "center",
43-
fontWeight: 900,
44-
}}
45-
>
46-
<span style={{ color: "#fff", fontSize: 200, letterSpacing: "-0.05em", lineHeight: 0.8 }}>L.A.P</span>
47-
<span style={{ color: "#9D4EDD", fontSize: 200, marginLeft: "40px", letterSpacing: "-0.05em", lineHeight: 0.8 }}>POSTS</span>
38+
{/* PNG Logo - Scaled */}
39+
<div style={{ marginBottom: "50px", display: "flex" }}>
40+
<img
41+
width="150"
42+
height="150"
43+
src={logoData as any}
44+
alt="L.A.P Logo"
45+
/>
4846
</div>
49-
50-
<div style={{
51-
marginTop: "30px",
52-
color: "#888",
53-
fontSize: 32,
54-
fontWeight: 500,
55-
textAlign: "center",
56-
letterSpacing: "0.05em"
57-
}}>
58-
Latest Articles & Guides
47+
48+
{/* Real SVG Text (Magazine.svg) */}
49+
<div style={{ display: "flex" }}>
50+
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="800" height="113" viewBox="0 0 1520 215">
51+
<path fill="#8a2be2" d="M373.8,142.8h-32.3v65.7h-43.5V7h75.8c16.8,0,31.2,2.5,43.3,7.6,12.1,5.1,21.4,12.5,28,22.5,6.6,9.9,9.9,22.3,9.9,37.1s-3.3,27-9.9,37.3c-6.6,10.3-15.9,18.1-28,23.4-12.1,5.3-26.6,8-43.3,8ZM373.5,42.9h-32v64h32c12.2,0,21.6-2.9,28.3-8.8,6.7-5.9,10-13.8,10-23.7s-3.3-17.6-10-23.2c-6.7-5.5-16.1-8.3-28.3-8.3Z"/>
52+
<path fill="#8a2be2" d="M577.4,212.7c-14.9,0-28.6-2.6-41.3-7.9-12.7-5.2-23.8-12.6-33.3-22-9.5-9.4-17-20.6-22.3-33.4-5.3-12.8-8-26.8-8-42s2.7-29.1,8-41.8c5.3-12.7,12.8-23.8,22.3-33.1,9.5-9.4,20.6-16.7,33.3-21.9,12.7-5.2,26.5-7.9,41.3-7.9s28.7,2.6,41.5,7.9c12.8,5.2,24,12.5,33.6,21.9,9.6,9.4,17.1,20.4,22.5,33.1,5.3,12.7,8,26.7,8,41.8s-2.7,29.2-8,42c-5.3,12.8-12.8,24-22.5,33.4-9.6,9.5-20.8,16.8-33.6,22-12.8,5.2-26.6,7.9-41.5,7.9ZM577.4,174.6c9.3,0,17.8-1.7,25.3-5.2,7.5-3.5,13.9-8.3,19.2-14.5,5.2-6.2,9.2-13.3,12-21.5,2.8-8.1,4.1-16.8,4.1-26s-1.4-17.8-4.1-25.8c-2.8-8-6.8-15.1-12-21.2-5.2-6.1-11.6-10.9-19.2-14.3-7.5-3.5-16-5.2-25.3-5.2s-17.7,1.7-25.2,5.2c-7.4,3.5-13.8,8.2-19,14.3-5.2,6.1-9.2,13.2-12,21.2-2.8,8-4.1,16.7-4.1,25.8s1.4,17.8,4.1,26c2.8,8.1,6.8,15.3,12,21.5,5.2,6.2,11.6,11,19,14.5,7.4,3.5,15.8,5.2,25.2,5.2Z"/>
53+
<path fill="#8a2be2" d="M870.5,145.9c0,12.7-3.3,24-10,33.8-6.7,9.8-16.2,17.5-28.5,23.2-12.3,5.6-27.1,8.4-44.5,8.4s-32.1-2.9-44.8-8.6c-12.7-5.7-22.6-13.8-29.9-24.3-7.2-10.5-11.4-22.8-12.6-37.1h44c.6,11.2,4.4,20.1,11.6,26.7,7.2,6.6,17.4,9.8,30.7,9.8s14-1,19.6-3.1c5.6-2.1,10.1-5.1,13.3-9,3.2-3.9,4.9-8.5,4.9-13.8s-2.4-11.5-7.2-15.3c-4.8-3.8-11.5-6.6-20.3-8.3l-33.7-6.5c-7.8-1.3-15.1-3.5-21.7-6.5-6.7-3-12.5-6.7-17.4-11.2-5-4.5-8.9-9.9-11.7-16.3-2.9-6.4-4.3-13.7-4.3-21.9,0-12,3.3-22.6,9.9-32,6.6-9.4,15.6-16.7,27.2-21.9,11.5-5.2,24.7-7.9,39.6-7.9s29.2,2.8,41.2,8.4c12,5.6,21.7,13.5,29.2,23.7,7.4,10.2,11.5,22.3,12.3,36.4h-44c-.4-7.1-2.2-13.3-5.6-18.7-3.3-5.3-7.8-9.4-13.3-12.4-5.5-2.9-11.9-4.4-19.2-4.4s-13,1.2-17.9,3.5c-4.9,2.3-8.6,5.4-11.3,9.3-2.7,3.8-4,8.2-4,13.1s1.3,8.2,3.9,11.2c2.6,3,6,5.4,10.2,7.2,4.2,1.8,8.8,3.1,13.7,4.1l35.2,7c18.1,3.6,31.9,9.6,41.3,18.1,9.4,8.5,14.2,20.2,14.2,35Z"/>
54+
<path fill="#8a2be2" d="M988.1,208.5h-43.5V45.4h-64.6V7h173v38.5h-64.9v163.1Z"/>
55+
<path fill="#8a2be2" d="M1232.3,145.9c0,12.7-3.3,24-10,33.8-6.7,9.8-16.2,17.5-28.5,23.2s-27.1,8.4-44.5,8.4-32.1-2.9-44.8-8.6c-12.7-5.7-22.6-13.8-29.9-24.3-7.2-10.5-11.4-22.8-12.6-37.1h44c.6,11.2,4.4,20.1,11.6,26.7,7.2,6.6,17.4,9.8,30.7,9.8s14-1,19.6-3.1c5.6-2.1,10.1-5.1,13.3-9,3.2-3.9,4.9-8.5,4.9-13.8s-2.4-11.5-7.2-15.3c-4.8-3.8-11.5-6.6-20.3-8.3l-33.7-6.5c-7.8-1.3-15.1-3.5-21.7-6.5-6.7-3-12.5-6.7-17.4-11.2-5-4.5-8.9-9.9-11.7-16.3-2.9-6.4-4.3-13.7-4.3-21.9,0-12,3.3-22.6,9.9-32,6.6-9.4,15.6-16.7,27.2-21.9,11.5-5.2,24.7-7.9,39.6-7.9s29.2,2.8,41.2,8.4c12,5.6,21.7,13.5,29.2,23.7,7.4,10.2,11.5,22.3,12.3,36.4h-44c-.4-7.1-2.2-13.3-5.6-18.7-3.3-5.3-7.8-9.4-13.3-12.4-5.5-2.9-11.9-4.4-19.2-4.4s-13,1.2-17.9,3.5c-4.9,2.3-8.6,5.4-11.3,9.3-2.7,3.8-4,8.2-4,13.1s1.3,8.2,3.9,11.2c2.6,3,6,5.4,10.2,7.2,4.2,1.8,8.8,3.1,13.7,4.1l35.2,7c18.1,3.6,31.9,9.6,41.3,18.1,9.4,8.5,14.2,20.2,14.2,35Z"/>
56+
</svg>
5957
</div>
6058
</div>
6159
),
6260
{
6361
...size,
62+
fonts: [
63+
{
64+
name: "General Sans",
65+
data: fontData,
66+
style: "normal",
67+
},
68+
],
6469
}
6570
);
6671
}

app/team/opengraph-image.tsx

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ export const size = {
1111
export const contentType = "image/png";
1212

1313
export default async function Image() {
14+
const fontData = await fetch(
15+
new URL("../../public/fonts/general-sans/GeneralSans-Semibold.woff2", import.meta.url)
16+
).then((res) => res.arrayBuffer());
17+
18+
// Fetch the PNG Logo
19+
const logoData = await fetch(
20+
new URL("../../public/logos/LAP-Logo-Transparent.png", import.meta.url)
21+
).then((res) => res.arrayBuffer());
22+
1423
return new ImageResponse(
1524
(
1625
<div
@@ -22,45 +31,43 @@ export default async function Image() {
2231
flexDirection: "column",
2332
alignItems: "center",
2433
justifyContent: "center",
25-
fontFamily: "sans-serif",
34+
fontFamily: '"General Sans", sans-serif',
2635
position: "relative",
2736
}}
2837
>
29-
<div style={{
30-
width: "80px",
31-
height: "80px",
32-
background: "#9D4EDD",
33-
marginBottom: "40px",
34-
clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)",
35-
display: "flex"
36-
}} />
37-
38-
<div
39-
style={{
40-
display: "flex",
41-
alignItems: "center",
42-
justifyContent: "center",
43-
fontWeight: 900,
44-
}}
45-
>
46-
<span style={{ color: "#fff", fontSize: 200, letterSpacing: "-0.05em", lineHeight: 0.8 }}>L.A.P</span>
47-
<span style={{ color: "#9D4EDD", fontSize: 200, marginLeft: "40px", letterSpacing: "-0.05em", lineHeight: 0.8 }}>TEAM</span>
38+
{/* PNG Logo - Scaled */}
39+
<div style={{ marginBottom: "50px", display: "flex" }}>
40+
<img
41+
width="150"
42+
height="150"
43+
src={logoData as any}
44+
alt="L.A.P Logo"
45+
/>
4846
</div>
49-
50-
<div style={{
51-
marginTop: "30px",
52-
color: "#888",
53-
fontSize: 32,
54-
fontWeight: 500,
55-
textAlign: "center",
56-
letterSpacing: "0.05em"
57-
}}>
58-
Meet the Creators
47+
48+
{/* Real SVG Text (Authors.svg) */}
49+
<div style={{ display: "flex" }}>
50+
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="800" height="121" viewBox="0 0 1520 231">
51+
<path fill="#8a2be2" d="M114.1,223.8c-14.9,0-28.6-2.7-41.3-8-12.7-5.3-23.8-12.8-33.3-22.5-9.5-9.6-17-21-22.3-34-5.3-13.1-8-27.3-8-42.8s2.7-29.6,8-42.6c5.3-13,12.8-24.2,22.3-33.7s20.6-17,33.3-22.3c12.7-5.3,26.5-8,41.3-8s28.7,2.7,41.5,8c12.8,5.3,24,12.8,33.6,22.3,9.6,9.5,17.1,20.8,22.5,33.7,5.3,13,8,27.2,8,42.6s-2.7,29.7-8,42.8c-5.3,13.1-12.8,24.4-22.5,34-9.6,9.6-20.8,17.1-33.6,22.5-12.8,5.3-26.6,8-41.5,8ZM114.1,184.9c9.3,0,17.8-1.8,25.3-5.3,7.5-3.5,13.9-8.4,19.2-14.7,5.2-6.3,9.2-13.6,12-21.9,2.8-8.3,4.1-17.1,4.1-26.5s-1.4-18.1-4.1-26.3c-2.8-8.2-6.8-15.4-12-21.6-5.2-6.2-11.6-11.1-19.2-14.6-7.5-3.5-16-5.3-25.3-5.3s-17.7,1.8-25.2,5.3c-7.4,3.5-13.8,8.4-19,14.6-5.2,6.2-9.2,13.4-12,21.6-2.8,8.2-4.1,17-4.1,26.3s1.4,18.2,4.1,26.5c2.8,8.3,6.8,15.6,12,21.9,5.2,6.3,11.6,11.2,19,14.7,7.4,3.5,15.8,5.3,25.2,5.3Z"/>
52+
<path fill="#8a2be2" d="M418.1,14.2v127.3c0,16.2-3.3,30.5-9.9,42.9-6.6,12.4-16.2,22.1-28.7,29-12.6,7-27.8,10.4-45.8,10.4s-33.5-3.5-46-10.4c-12.6-7-22.2-16.6-28.7-29-6.6-12.4-9.9-26.7-9.9-42.9V14.2h43.5v128.1c0,8.4,1.4,15.8,4.3,22.3,2.9,6.5,7.3,11.5,13.3,15,6,3.5,13.9,5.3,23.6,5.3s17.3-1.8,23.3-5.3c6-3.5,10.4-8.5,13.3-15,2.9-6.5,4.3-13.9,4.3-22.3V14.2h43.5Z"/>
53+
<path fill="#8a2be2" d="M503.1,219.5h-43.5V14.2h80.4c25.9,0,46,5.8,60.3,17.3,14.3,11.5,21.5,28,21.5,49.3s-4.1,25.9-12.2,36.5c-8.1,10.6-19.5,18.3-34.2,23l52.9,79.2h-51.8l-46.3-72.6h-27.2v72.6ZM503.1,50.2v60.9h34.9c13.2,0,23.2-2.5,30-7.6,6.9-5,10.3-12.6,10.3-22.7s-3.4-18-10.3-23c-6.9-5-16.9-7.6-30-7.6h-34.9Z"/>
54+
<path fill="#8a2be2" d="M807.1,219.5h-43.5V53.4h-64.6V14.2h173v39.2h-64.9v166.2Z"/>
55+
<path fill="#8a2be2" d="M1036.2,181.8v37.8h-138.1V14.2h136.1v37.8h-92.7v43.2h84.1v37.5h-84.1v49.2h94.7Z"/>
56+
<path fill="#8a2be2" d="M1207.2,219.5l-54.9-157.9-56.1,157.9h-43.8l77.2-205.3h47.5l76.6,205.3h-46.6ZM1106.8,140.9h90.9l11.4,34.6h-115l12.6-34.6Z"/>
57+
<path fill="#8a2be2" d="M1371.9,219.5l-53.8-136.4v136.4h-39.5V14.2h52.1l59.5,152.2,59.8-152.2h52.1v205.3h-39.5V82l-54.3,137.6h-36.3Z"/>
58+
</svg>
5959
</div>
6060
</div>
6161
),
6262
{
6363
...size,
64+
fonts: [
65+
{
66+
name: "General Sans",
67+
data: fontData,
68+
style: "normal",
69+
},
70+
],
6471
}
6572
);
66-
}
73+
}

public/logos/FyrreMagazineFavicon.svg

Lines changed: 0 additions & 4 deletions
This file was deleted.

public/logos/FyrreMagazineLogo-Black.svg

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)