@@ -11,6 +11,15 @@ export const size = {
1111export const contentType = "image/png" ;
1212
1313export 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}
0 commit comments