Skip to content

Commit 73c1f95

Browse files
Fix: Academy partner logos and UX/UI
Fixes repeated and broken partner logos in the Academy section. Improves UX/UI design and optimizes code for better performance.
1 parent bdc712d commit 73c1f95

File tree

1 file changed

+36
-31
lines changed

1 file changed

+36
-31
lines changed

src/pages/Academy.tsx

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import React from 'react';
32
import StarBackground from '@/components/StarBackground';
43
import { GraduationCap, BookOpen, Video, Users, Award, Sparkles, Leaf, Brain, Coins, ShoppingCart, Heart, Lightbulb, ExternalLink } from 'lucide-react';
@@ -69,27 +68,38 @@ const CourseCard = ({
6968
</Card>
7069
);
7170

72-
const PartnerCard = ({ name, url, logo }: { name: string; url: string; logo?: string }) => (
71+
const PartnerCard = ({ name, url, logoUrl }: { name: string; url: string; logoUrl?: string }) => (
7372
<a
7473
href={url}
7574
target="_blank"
7675
rel="noopener noreferrer"
77-
className="bg-alien-space-dark/80 backdrop-blur-md rounded-xl p-6 border border-alien-gold/30 hover:border-alien-gold/60 transition-all duration-300 hover:transform hover:scale-105 group flex items-center justify-center min-h-[120px] relative overflow-hidden"
76+
className="bg-alien-space-dark/70 backdrop-blur-md rounded-xl p-4 border border-alien-gold/20 hover:border-alien-gold/50 transition-all duration-300 hover:transform hover:scale-105 group flex items-center justify-center min-h-[100px] relative overflow-hidden"
7877
>
7978
<div className="absolute inset-0 bg-gradient-to-br from-alien-gold/5 to-alien-green/5 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
8079
<div className="text-center relative z-10">
81-
{logo ? (
82-
<img
83-
src={logo}
84-
alt={name}
85-
className="w-12 h-12 mx-auto mb-3 object-contain group-hover:scale-110 transition-transform duration-300"
86-
/>
80+
{logoUrl ? (
81+
<div className="w-12 h-12 mx-auto mb-2 flex items-center justify-center">
82+
<img
83+
src={logoUrl}
84+
alt={`${name} logo`}
85+
className="max-w-full max-h-full object-contain group-hover:scale-110 transition-transform duration-300"
86+
onError={(e) => {
87+
// Fallback to letter icon if image fails to load
88+
const target = e.target as HTMLImageElement;
89+
target.style.display = 'none';
90+
target.nextElementSibling?.classList.remove('hidden');
91+
}}
92+
/>
93+
<div className="w-10 h-10 bg-alien-gold/20 rounded-lg items-center justify-center border border-alien-gold/30 hidden">
94+
<span className="text-alien-gold font-bold text-sm">{name.charAt(0)}</span>
95+
</div>
96+
</div>
8797
) : (
88-
<div className="w-12 h-12 mx-auto mb-3 bg-alien-gold/20 rounded-lg flex items-center justify-center border border-alien-gold/30">
98+
<div className="w-12 h-12 mx-auto mb-2 bg-alien-gold/20 rounded-lg flex items-center justify-center border border-alien-gold/30">
8999
<span className="text-alien-gold font-bold text-lg">{name.charAt(0)}</span>
90100
</div>
91101
)}
92-
<h3 className="text-alien-gold font-semibold text-sm group-hover:text-alien-gold-light transition-colors font-[Exo] mb-1">
102+
<h3 className="text-alien-gold font-semibold text-xs group-hover:text-alien-gold-light transition-colors font-[Exo] mb-1">
93103
{name}
94104
</h3>
95105
<ExternalLink className="w-3 h-3 text-alien-green mx-auto opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
@@ -218,72 +228,67 @@ const Academy: React.FC = () => {
218228
{
219229
name: "Alchemy",
220230
url: "https://www.alchemy.com/",
221-
logo: "https://docs.alchemy.com/img/logo.svg"
231+
logoUrl: "https://assets-global.website-files.com/618b0aafa4afde65f2fe38fe/618b0aafa4afde7888fe3a17_logo_mark.svg"
222232
},
223233
{
224234
name: "AulaFacil",
225235
url: "https://www.aulafacil.com/",
226-
logo: "https://www.aulafacil.com/favicon.ico"
236+
logoUrl: "https://www.aulafacil.com/images/af-logo-header.png"
227237
},
228238
{
229239
name: "Explore",
230240
url: "https://www.explore.org/",
231-
logo: "https://www.explore.org/favicon.ico"
241+
logoUrl: "https://cdn.explore.org/logo-full-white.png"
232242
},
233243
{
234244
name: "OEGlobal",
235245
url: "https://www.oeglobal.org/",
236-
logo: "https://www.oeglobal.org/wp-content/uploads/2019/04/cropped-OEGlobal-logo-only-scaled-32x32.png"
246+
logoUrl: "https://www.oeglobal.org/wp-content/uploads/2019/04/OEGlobal-logo-only-1024x1024.png"
237247
},
238248
{
239249
name: "OpenupEd",
240250
url: "https://www.openuped.eu/",
241-
logo: "https://www.openuped.eu/images/openuped_logo.png"
251+
logoUrl: "https://www.openuped.eu/images/OuE-logo.png"
242252
},
243253
{
244254
name: "UNSSC",
245255
url: "https://www.unssc.org/",
246-
logo: "https://www.unssc.org/sites/unssc/files/favicon_0.ico"
256+
logoUrl: "https://www.unssc.org/sites/unssc/files/logo.png"
247257
},
248258
{
249259
name: "EdX",
250260
url: "https://www.edx.org/",
251-
logo: "https://www.edx.org/favicon.ico"
261+
logoUrl: "https://d2o2utebsixu4k.cloudfront.net/Logos%20for%20Web-02.svg"
252262
},
253263
{
254-
name: "Google",
264+
name: "Google for Education",
255265
url: "https://edu.google.com/",
256-
logo: "https://www.google.com/favicon.ico"
257-
},
258-
{
259-
name: "MOOC",
260-
url: "https://www.mooc.org/",
261-
logo: "https://www.mooc.org/favicon.ico"
266+
logoUrl: "https://www.gstatic.com/images/branding/googlelogo/svg/googlelogo_clr_74x24px.svg"
262267
},
263268
{
264269
name: "Khan Academy",
265270
url: "https://www.khanacademy.org/",
266-
logo: "https://www.khanacademy.org/favicon.ico"
271+
logoUrl: "https://cdn.kastatic.org/images/khan-logo-dark-background.png"
267272
},
268273
{
269274
name: "Hotmart",
270275
url: "https://www.hotmart.com/",
271-
logo: "https://static.hotmart.com/favicon.ico"
276+
logoUrl: "https://static.hotmart.com/img/hotmart-logo.svg"
272277
},
273278
{
274279
name: "Udemy",
275280
url: "https://www.udemy.com/",
276-
logo: "https://www.udemy.com/staticx/udemy/images/v7/favicon.ico"
281+
logoUrl: "https://www.udemy.com/staticx/udemy/images/v7/logo-udemy-inverted.svg"
277282
},
278283
{
279284
name: "Unity Learn",
280285
url: "https://learn.unity.com/",
281-
logo: "https://unity.com/favicon.ico"
286+
logoUrl: "https://unity.com/logo/unity-logo-293w-white.png"
282287
},
283288
{
284289
name: "Unreal Engine",
285290
url: "https://www.unrealengine.com/en-US/learn",
286-
logo: "https://www.unrealengine.com/favicon.ico"
291+
logoUrl: "https://cdn2.unrealengine.com/ue-logo-stacked-white-530x680-d09f1b91cadc.svg"
287292
}
288293
];
289294

@@ -384,7 +389,7 @@ const Academy: React.FC = () => {
384389
<p className="text-gray-300 text-center mb-12 font-[Exo]">
385390
We collaborate with the world's best educational platforms
386391
</p>
387-
<div className="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-6">
392+
<div className="grid grid-cols-3 md:grid-cols-4 lg:grid-cols-6 xl:grid-cols-7 gap-4">
388393
{partners.map((partner, index) => (
389394
<PartnerCard key={index} {...partner} />
390395
))}

0 commit comments

Comments
 (0)