11import Image from 'next/image' ;
22import Link from 'next/link' ;
33
4- import { SocialShareButtons } from '@/components/social-share-buttons' ;
54import { cn } from '@/lib/utils' ;
65
7- import { FooterStarButton } from './footer-star-cta' ;
6+ import { ShareTwitterButton , ShareLinkedInButton } from '@/components/share-buttons' ;
7+
8+ import { StarButton } from './footer-star-cta' ;
89
910export const Footer = ( ) => {
1011 return (
1112 < footer
1213 data-testid = "footer"
1314 className = { cn (
14- 'relative w-full overflow-visible' ,
15+ 'relative w-full overflow-visible mt-auto ' ,
1516 'before:absolute' ,
1617 'before:bg-muted/50' ,
1718 'dark:before:bg-muted' ,
@@ -29,68 +30,126 @@ export const Footer = () => {
2930 'before:-z-10' ,
3031 ) }
3132 >
32- < div className = "container mx-auto py-8 px-4 flex flex-col items-center justify-center" >
33- { /* Open Source CTA */ }
34- < div className = "flex flex-col items-center gap-3 mb-6 pb-6 border-b border-border/40" >
35- < div className = "flex items-center gap-1.5" >
36- < FooterStarButton />
37- < SocialShareButtons compact />
33+ < div className = "container mx-auto px-4 lg:px-8 py-12" >
34+ { /* Main grid */ }
35+ < div className = "grid grid-cols-1 md:grid-cols-3 gap-10 md:gap-8 mb-10" >
36+ { /* Left — Brand */ }
37+ < div className = "flex flex-col gap-4" >
38+ < Link target = "_blank" href = "https://semianalysis.com/" >
39+ < Image
40+ width = { 140 }
41+ height = { 58 }
42+ src = "/logo.png"
43+ alt = "SemiAnalysis logo"
44+ className = "hidden dark:block"
45+ />
46+ < Image
47+ width = { 140 }
48+ height = { 58 }
49+ src = "/logo-black.png"
50+ alt = "SemiAnalysis logo"
51+ className = "dark:hidden"
52+ />
53+ </ Link >
54+ < p className = "text-sm text-muted-foreground max-w-xs" >
55+ Open-source AI inference benchmarks. Transparent, real-world GPU performance data for
56+ the ML community.
57+ </ p >
3858 </ div >
39- < p className = "text-sm text-muted-foreground text-center max-w-md" >
40- InferenceX is open source. If this data helps your work, star us or share with your
41- network.
42- </ p >
43- </ div >
4459
45- { /* Policy Links */ }
46- < nav className = "mb-4" >
47- < ul className = "flex flex-wrap justify-center gap-x-4 gap-y-2 text-sm text-muted-foreground" >
48- < li >
60+ { /* Center — Links */ }
61+ < div className = "grid grid-cols-3 gap-6" >
62+ < div className = "flex flex-col gap-2.5" >
63+ < span className = "text-sm font-medium text-foreground" > SemiAnalysis</ span >
64+ < a
65+ href = "https://semianalysis.com"
66+ target = "_blank"
67+ rel = "noopener noreferrer"
68+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
69+ >
70+ Main Site
71+ </ a >
72+ < a
73+ href = "https://newsletter.semianalysis.com"
74+ target = "_blank"
75+ rel = "noopener noreferrer"
76+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
77+ >
78+ Newsletter
79+ </ a >
80+ < a
81+ href = "https://semianalysis.com/about/"
82+ target = "_blank"
83+ rel = "noopener noreferrer"
84+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
85+ >
86+ About
87+ </ a >
88+ </ div >
89+ < div className = "flex flex-col gap-2.5" >
90+ < span className = "text-sm font-medium text-foreground" > Legal</ span >
4991 < a
5092 href = "https://semianalysis.com/privacy-policy/"
51- className = "underline hover:text-foreground"
5293 target = "_blank"
5394 rel = "noopener noreferrer"
95+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
5496 >
5597 Privacy Policy
5698 </ a >
57- </ li >
58- < li >
5999 < a
60100 href = "https://semianalysis.com/cookie-policy/"
61- className = "underline hover:text-foreground"
62101 target = "_blank"
63102 rel = "noopener noreferrer"
103+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
64104 >
65105 Cookie Policy
66106 </ a >
67- </ li >
68- < li >
107+ </ div >
108+ < div className = "flex flex-col gap-2.5" >
109+ < span className = "text-sm font-medium text-foreground" > Contribute</ span >
69110 < a
70111 href = "https://github.com/SemiAnalysisAI/InferenceX"
71- className = "underline hover:text-foreground"
72112 target = "_blank"
73113 rel = "noopener noreferrer"
114+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
74115 >
75- Contribute
116+ Benchmarks
76117 </ a >
77- </ li >
78- </ ul >
79- </ nav >
118+ < a
119+ href = "https://github.com/SemiAnalysisAI/inferencemax-app"
120+ target = "_blank"
121+ rel = "noopener noreferrer"
122+ className = "text-sm text-muted-foreground hover:text-foreground transition-colors"
123+ >
124+ Frontend
125+ </ a >
126+ </ div >
127+ </ div >
80128
81- { /* Copyright Notice */ }
82- < p data-testid = "footer-copyright" className = "text-sm text-muted-foreground text-center" >
83- © { new Date ( ) . getFullYear ( ) } semianalysis.com All rights reserved.
84- </ p >
129+ { /* Right — CTA + Social */ }
130+ < div className = "flex flex-col gap-4 md:items-end" >
131+ < div className = "flex items-center gap-1.5" >
132+ < div className = "rounded-md bg-background/80" >
133+ < StarButton />
134+ </ div >
135+ < div className = "rounded-md bg-background/80" >
136+ < ShareTwitterButton />
137+ </ div >
138+ < div className = "rounded-md bg-background/80" >
139+ < ShareLinkedInButton />
140+ </ div >
141+ </ div >
142+ < p className = "text-sm text-muted-foreground md:text-right max-w-xs" >
143+ If this data helps your work, star us or share with your network.
144+ </ p >
145+ </ div >
146+ </ div >
85147
86- { /* Logo Section */ }
87- < div className = "mt-4 flex items-center justify-center" >
88- < Link target = "_blank" className = "hidden dark:block" href = "https://semianalysis.com/" >
89- < Image width = { 184 } height = { 76 } src = "/logo.png" alt = "SemiAnalysis logo" />
90- </ Link >
91- < Link target = "_blank" className = "dark:hidden" href = "https://semianalysis.com/" >
92- < Image width = { 184 } height = { 76 } src = "/logo-black.png" alt = "SemiAnalysis logo" />
93- </ Link >
148+ { /* Bottom bar */ }
149+ < div className = "border-t border-border/40 pt-6 flex flex-col md:flex-row items-center justify-between gap-4" >
150+ < p data-testid = "footer-copyright" className = "text-xs text-muted-foreground" >
151+ © { new Date ( ) . getFullYear ( ) } semianalysis.com. All rights reserved.
152+ </ p >
94153 </ div >
95154 </ div >
96155 </ footer >
0 commit comments