@@ -5,6 +5,7 @@ import { BlurImage } from "@/components/ui/blur-image";
55import { TrendingUp , Shield , Award , Zap } from "lucide-react" ;
66import { GradientBlob } from "@/components/ui/GradientBlob" ;
77import { PageSegue } from "@/components/ui/PageSegue" ;
8+ import ShinyText from "@/components/ui/ShinyText" ;
89import { siteContent } from "@/lib/content" ;
910
1011// Static Image Imports
@@ -37,23 +38,20 @@ export default function Home() {
3738 rankValue : "9" ,
3839 rankSuffix : "th" ,
3940 rankColor : "emerald" ,
40- insightTitle : "The ROI Metric." ,
4141 insightDescription : "BIT graduates are valued higher by employers than graduates from \"higher ranked\" but less practical universities."
4242 } ,
4343 {
4444 metric : "NTU Ranking (Engineering)" ,
4545 rankValue : "14" ,
4646 rankSuffix : "th" ,
4747 rankColor : "emerald" ,
48- insightTitle : "The Truth." ,
4948 insightDescription : "In pure engineering output, BIT is a global top-15 institution, outranking many Ivy League schools."
5049 } ,
5150 {
5251 metric : "ARWU (Shanghai Ranking) 2025" ,
5352 rankValue : "102" ,
5453 rankSuffix : "nd" ,
5554 rankColor : "default" ,
56- insightTitle : "The Hard Science Metric." ,
5755 insightDescription : "Being on the cusp of the Top 100 globally signals immense research productivity."
5856 }
5957 ] ;
@@ -154,11 +152,89 @@ export default function Home() {
154152 </ div >
155153 </ section >
156154
157-
155+
158156
159157 < section className = "py-12 px-6 relative" >
160158 < div className = "container mx-auto max-w-6xl" >
159+ { /* Rankings Table */ }
160+ < div className = "mb-12" >
161+ < div className = "text-center mb-8" >
162+ < h2 className = "text-3xl font-display font-bold mb-4" > Why BIT?</ h2 >
163+ < ShinyText
164+ text = "More Reasons to Choose BIT"
165+ speed = { 2 }
166+ delay = { 1 }
167+ color = "#1a1b1aff"
168+ shineColor = "#cfd8ccff"
169+ spread = { 120 }
170+ className = "text-xs font-medium uppercase tracking-wider mb-4"
171+ />
172+ </ div >
161173
174+ { /* Mobile Card Layout */ }
175+ < motion . div
176+ initial = { { opacity : 0 , y : 20 } }
177+ whileInView = { { opacity : 1 , y : 0 } }
178+ viewport = { { once : true , margin : "-100px" } }
179+ transition = { { duration : 0.5 } }
180+ className = "block sm:hidden space-y-6"
181+ >
182+ { metricsData . map ( ( metric , index ) => (
183+ < div key = { index } className = "bg-white/60 backdrop-blur-md rounded-3xl p-8 border border-white/40 shadow-sm" >
184+ < div className = "flex items-baseline gap-1 mb-2" >
185+ < span className = "text-3xl md:text-4xl font-semibold font-display tabular-nums text-foreground" >
186+ { metric . rankValue }
187+ </ span >
188+ < span className = { `text-sm font-medium ${ metric . rankColor === 'emerald' ? 'text-emerald-600' : 'text-primary' } ` } >
189+ { metric . rankSuffix }
190+ </ span >
191+ </ div >
192+ < p className = "text-sm text-muted-foreground mb-4" >
193+ { metric . metric }
194+ </ p >
195+ < h3 className = "font-bold text-foreground mb-2" >
196+ { metric . insightTitle }
197+ </ h3 >
198+ < p className = "text-muted-foreground" >
199+ { metric . insightDescription }
200+ </ p >
201+ </ div >
202+ ) ) }
203+ </ motion . div >
204+
205+ { /* Desktop Table Layout */ }
206+ < motion . div
207+ initial = { { opacity : 0 , y : 20 } }
208+ whileInView = { { opacity : 1 , y : 0 } }
209+ viewport = { { once : true , margin : "-100px" } }
210+ transition = { { duration : 0.5 } }
211+ className = "hidden sm:block overflow-hidden rounded-3xl border border-border bg-white/40 backdrop-blur-sm shadow-xl"
212+ >
213+ < table className = "w-full text-left border-collapse" >
214+ < thead >
215+ < tr className = "bg-white/50 border-b border-border/50" >
216+ < th className = "p-6 font-display font-bold text-foreground" > Metric</ th >
217+ < th className = "p-6 font-display font-bold text-primary" > Rank</ th >
218+ < th className = "p-6 font-display font-bold text-foreground" > Elaboration</ th >
219+ </ tr >
220+ </ thead >
221+ < tbody className = "divide-y divide-border/50" >
222+ { metricsData . map ( ( metric , index ) => (
223+ < tr key = { index } className = "hover:bg-white/40 transition-colors" >
224+ < td className = "p-6 font-medium" > { metric . metric } </ td >
225+ < td className = { `p-6 font-bold text-xl ${ metric . rankColor === 'emerald' ? 'text-emerald-600' : '' } ` } >
226+ #{ metric . rankValue }
227+ </ td >
228+ < td className = "p-6 text-muted-foreground text-sm leading-relaxed" >
229+ < strong className = "text-foreground block mb-1" > { metric . insightTitle } </ strong >
230+ { metric . insightDescription }
231+ </ td >
232+ </ tr >
233+ ) ) }
234+ </ tbody >
235+ </ table >
236+ </ motion . div >
237+ </ div >
162238 { /* The Seven Sons Explanation */ }
163239 < div className = "grid md:grid-cols-2 gap-12 mb-24 items-center" >
164240 < motion . div
@@ -174,7 +250,7 @@ export default function Home() {
174250 < Zap className = "w-6 h-6" />
175251 </ div >
176252 < div >
177- < h3 className = "text-xl font-bold font-display mb-2" > The Funding Engine </ h3 >
253+ < h3 className = "text-xl font-bold font-display mb-2" > Funding Priority </ h3 >
178254 < p className = "text-muted-foreground" >
179255 While other universities struggle for grants, BIT's labs are capitalized by the state's most critical projects. This ensures priority in aerospace, high-end manufacturing, and national security research.
180256 </ p >
@@ -260,80 +336,6 @@ export default function Home() {
260336 </ ul >
261337 </ div >
262338 </ div >
263-
264- { /* Rankings Table */ }
265- < div className = "mb-12" >
266- < div className = "text-center mb-8" >
267- < h2 className = "text-3xl font-display font-bold mb-4" > Other Metrics</ h2 >
268- < p className = "text-xs font-medium uppercase tracking-wider text-muted-foreground mb-4" >
269- Global Recognition < span className = "text-muted-foreground/50" > (Multiple Rankings)</ span >
270- </ p >
271- </ div >
272-
273- { /* Mobile Card Layout */ }
274- < motion . div
275- initial = { { opacity : 0 , y : 20 } }
276- whileInView = { { opacity : 1 , y : 0 } }
277- viewport = { { once : true , margin : "-100px" } }
278- transition = { { duration : 0.5 } }
279- className = "block sm:hidden space-y-6"
280- >
281- { metricsData . map ( ( metric , index ) => (
282- < div key = { index } className = "bg-white/60 backdrop-blur-md rounded-3xl p-8 border border-white/40 shadow-sm" >
283- < div className = "flex items-baseline gap-1 mb-2" >
284- < span className = "text-3xl md:text-4xl font-semibold font-display tabular-nums text-foreground" >
285- { metric . rankValue }
286- </ span >
287- < span className = { `text-sm font-medium ${ metric . rankColor === 'emerald' ? 'text-emerald-600' : 'text-primary' } ` } >
288- { metric . rankSuffix }
289- </ span >
290- </ div >
291- < p className = "text-sm text-muted-foreground mb-4" >
292- { metric . metric }
293- </ p >
294- < h3 className = "font-bold text-foreground mb-2" >
295- { metric . insightTitle }
296- </ h3 >
297- < p className = "text-muted-foreground" >
298- { metric . insightDescription }
299- </ p >
300- </ div >
301- ) ) }
302- </ motion . div >
303-
304- { /* Desktop Table Layout */ }
305- < motion . div
306- initial = { { opacity : 0 , y : 20 } }
307- whileInView = { { opacity : 1 , y : 0 } }
308- viewport = { { once : true , margin : "-100px" } }
309- transition = { { duration : 0.5 } }
310- className = "hidden sm:block overflow-hidden rounded-3xl border border-border bg-white/40 backdrop-blur-sm shadow-xl"
311- >
312- < table className = "w-full text-left border-collapse" >
313- < thead >
314- < tr className = "bg-white/50 border-b border-border/50" >
315- < th className = "p-6 font-display font-bold text-foreground" > Metric</ th >
316- < th className = "p-6 font-display font-bold text-primary" > Rank</ th >
317- < th className = "p-6 font-display font-bold text-foreground" > Strategic Insight</ th >
318- </ tr >
319- </ thead >
320- < tbody className = "divide-y divide-border/50" >
321- { metricsData . map ( ( metric , index ) => (
322- < tr key = { index } className = "hover:bg-white/40 transition-colors" >
323- < td className = "p-6 font-medium" > { metric . metric } </ td >
324- < td className = { `p-6 font-bold text-xl ${ metric . rankColor === 'emerald' ? 'text-emerald-600' : '' } ` } >
325- #{ metric . rankValue }
326- </ td >
327- < td className = "p-6 text-muted-foreground text-sm leading-relaxed" >
328- < strong className = "text-foreground block mb-1" > { metric . insightTitle } </ strong >
329- { metric . insightDescription }
330- </ td >
331- </ tr >
332- ) ) }
333- </ tbody >
334- </ table >
335- </ motion . div >
336- </ div >
337339 </ div >
338340 </ section >
339341
0 commit comments