Skip to content

Commit 1bec407

Browse files
authored
Merge pull request #1835 from Sricharan106/fix/adjust-Book-a-session
fix/ "Book a Session" CTA in TopMate Card
2 parents b394aa2 + 6a86058 commit 1bec407

3 files changed

Lines changed: 67 additions & 63 deletions

File tree

src/components/topmate/TopMateCard.tsx

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
3131
const { isDark } = useSafeColorMode();
3232

3333
const borderClr = isDark ? "rgba(255,255,255,0.06)" : "rgba(0,0,0,0.07)";
34-
const mutedClr = isDark
35-
? "rgba(148,163,184,0.55)"
36-
: "rgba(100,116,139,0.65)";
34+
const mutedClr = isDark ? "rgba(148,163,184,0.55)" : "rgba(100,116,139,0.65)";
3735
const subtleClr = isDark
3836
? "rgba(148,163,184,0.35)"
3937
: "rgba(100,116,139,0.45)";
@@ -42,14 +40,15 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
4240
"Resume & portfolio review",
4341
"Career path guidance",
4442
"Open-source strategy",
43+
"Mock Interview Prep",
4544
];
4645

4746
return (
4847
<motion.div
4948
initial={{ opacity: 0, y: 30, scale: 0.97 }}
5049
animate={{ opacity: 1, y: 0, scale: 1 }}
5150
transition={{ duration: 0.6, ease: [0.25, 0.46, 0.45, 0.94] }}
52-
className="group relative w-full h-full overflow-hidden rounded-2xl flex flex-col transition-all duration-500 hover:scale-[1.008]"
51+
className="group relative flex h-90 w-full flex-col overflow-hidden rounded-2xl transition-all duration-500 hover:scale-[1.008]"
5352
style={{
5453
background: isDark ? "#0a0a0a" : "#ffffff",
5554
border: `1px solid ${borderClr}`,
@@ -60,7 +59,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
6059
>
6160
{/* Grid pattern overlay */}
6261
<div
63-
className="absolute inset-0 pointer-events-none"
62+
className="pointer-events-none absolute inset-0"
6463
style={{
6564
backgroundImage:
6665
"linear-gradient(to right, rgba(79,79,79,0.10) 1px, transparent 1px), linear-gradient(to bottom, rgba(79,79,79,0.10) 1px, transparent 1px)",
@@ -74,7 +73,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
7473

7574
{/* Subtle corner glow */}
7675
<div
77-
className="absolute -top-20 -right-20 w-40 h-40 rounded-full pointer-events-none"
76+
className="pointer-events-none absolute -top-20 -right-20 h-40 w-40 rounded-full"
7877
style={{
7978
background: isDark
8079
? "radial-gradient(circle, rgba(99,102,241,0.06), transparent)"
@@ -83,11 +82,11 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
8382
}}
8483
/>
8584

86-
<div className="relative p-5 flex flex-col h-full">
85+
<div className="relative flex h-full flex-col p-4">
8786
{/* Header Badge row */}
88-
<div className="mb-3 flex items-center justify-between flex-shrink-0">
87+
<div className="mb-2 flex flex-shrink-0 items-center justify-between">
8988
<div
90-
className="flex items-center gap-2 rounded-full px-3 py-1.5"
89+
className="flex items-center gap-2 rounded-full px-2.5 py-1"
9190
style={{
9291
background: isDark
9392
? "rgba(99,102,241,0.08)"
@@ -98,7 +97,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
9897
}}
9998
>
10099
<Calendar
101-
size={13}
100+
size={12}
102101
style={{ color: isDark ? "#a5b4fc" : "#6366f1" }}
103102
/>
104103
<span
@@ -135,7 +134,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
135134

136135
{/* Title */}
137136
<h2
138-
className="mb-1.5 text-base sm:text-lg font-bold leading-tight tracking-tight flex-shrink-0"
137+
className="mb-1 flex-shrink-0 text-base leading-tight font-bold tracking-tight"
139138
style={{
140139
color: isDark ? "#f1f5f9" : "#0f172a",
141140
fontFamily: "'Inter', -apple-system, sans-serif",
@@ -146,7 +145,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
146145

147146
{/* Description */}
148147
<p
149-
className="mb-3 text-[12px] leading-relaxed flex-shrink-0"
148+
className="mb-2 line-clamp-2 flex-shrink-0 text-[11px] leading-snug"
150149
style={{
151150
color: isDark ? "rgba(148,163,184,0.7)" : "rgba(100,116,139,0.8)",
152151
fontFamily: "'Inter', -apple-system, sans-serif",
@@ -155,9 +154,9 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
155154
{description}
156155
</p>
157156

158-
{/* What you get — compact inline */}
159-
<div className="flex-1 mb-3">
160-
<div className="flex items-center gap-1.5 mb-2">
157+
{/* What you get — 2x2 Grid Section */}
158+
<div className="mb-2.5 min-h-0 flex-grow">
159+
<div className="mb-1 flex items-center gap-1.5">
161160
<Sparkles
162161
size={11}
163162
style={{ color: isDark ? "#a5b4fc" : "#6366f1" }}
@@ -169,11 +168,11 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
169168
What you get
170169
</span>
171170
</div>
172-
<ul className="space-y-1.5">
171+
<ul className="grid grid-cols-2 gap-x-2 gap-y-1">
173172
{features.map((f, i) => (
174-
<li key={i} className="flex items-center gap-2">
173+
<li key={i} className="flex min-w-0 items-center gap-1.5">
175174
<CheckCircle2
176-
size={13}
175+
size={11}
177176
className="flex-shrink-0"
178177
style={{
179178
color: isDark
@@ -182,7 +181,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
182181
}}
183182
/>
184183
<span
185-
className="text-[12px]"
184+
className="truncate text-[10.5px]"
186185
style={{
187186
color: isDark
188187
? "rgba(226,232,240,0.75)"
@@ -198,37 +197,37 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
198197
</div>
199198

200199
<div
201-
className="rounded-xl p-3 w-full flex-shrink-0"
200+
className="mt-1 w-full flex-shrink-0 rounded-xl p-1"
202201
style={{
203202
background: isDark ? "rgba(255,255,255,0.02)" : "rgba(0,0,0,0.02)",
204203
border: `1px solid ${borderClr}`,
205204
}}
206205
>
207-
<div className="flex items-center justify-between w-full">
208-
<div className="flex items-center gap-3">
206+
<div className="flex w-full items-center justify-between">
207+
<div className="flex items-center gap-2">
209208
<div className="relative flex-shrink-0">
210209
<img
211210
src={profileImage}
212211
alt="Profile"
213-
className="h-10 w-10 rounded-xl object-cover"
214-
style={{ border: `2px solid ${borderClr}` }}
212+
className="h-8 w-8 rounded-lg object-cover"
213+
style={{ border: `1.5px solid ${borderClr}` }}
215214
/>
216215
<div
217-
className="absolute -bottom-0.5 -right-0.5 rounded-full p-0.5"
216+
className="absolute -right-0.5 -bottom-0.5 rounded-full p-0.5"
218217
style={{ background: isDark ? "#0a0a0a" : "#ffffff" }}
219218
>
220219
<div
221-
className="h-2 w-2 rounded-full"
220+
className="h-1.5 w-1.5 rounded-full"
222221
style={{
223222
background: "#22c55e",
224-
boxShadow: "0 0 6px rgba(34,197,94,0.4)",
223+
boxShadow: "0 0 4px rgba(34,197,94,0.4)",
225224
}}
226225
/>
227226
</div>
228227
</div>
229-
<div>
228+
<div className="min-w-0">
230229
<p
231-
className="text-[10px] font-medium"
230+
className="mb-0.5 text-[9px] leading-none font-medium"
232231
style={{ color: subtleClr }}
233232
>
234233
Book at
@@ -237,28 +236,30 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
237236
href={`https://topmate.io/${username}`}
238237
target="_blank"
239238
rel="noopener noreferrer"
240-
className="group/link flex items-center gap-1 text-[13px] font-semibold transition-colors duration-200"
239+
className="group/link flex items-center gap-0.5 text-[11px] leading-none font-semibold transition-colors duration-200"
241240
style={{
242241
color: isDark ? "#a5b4fc" : "#4338ca",
243242
textDecoration: "none",
244243
}}
245244
>
246-
<span>topmate.io/{username}</span>
245+
<span className="max-w-[95px] truncate sm:max-w-[none]">
246+
topmate.io/{username}
247+
</span>
247248
<ArrowUpRight
248-
size={12}
249-
className="transition-transform group-hover/link:translate-x-0.5 group-hover/link:-translate-y-0.5"
249+
size={10}
250+
className="flex-shrink-0 transition-transform group-hover/link:translate-x-0.5 group-hover/link:-translate-y-0.5"
250251
/>
251252
</a>
252253
</div>
253254
</div>
254255

255256
{/* Rating */}
256-
<div className="flex flex-col items-end gap-0.5">
257+
<div className="flex flex-shrink-0 flex-col items-end justify-center">
257258
<div className="flex items-center gap-0.5">
258259
{[...Array(5)].map((_, i) => (
259260
<Star
260261
key={i}
261-
size={11}
262+
size={9}
262263
className="flex-shrink-0"
263264
style={{
264265
fill: isDark ? "rgba(251,191,36,0.85)" : "#f59e0b",
@@ -268,7 +269,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
268269
))}
269270
</div>
270271
<span
271-
className="text-[10px] font-medium"
272+
className="mt-0.5 text-[9px] leading-none font-medium"
272273
style={{ color: subtleClr }}
273274
>
274275
5.0 rating
@@ -278,16 +279,18 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
278279
</div>
279280

280281
{/* Social proof line */}
281-
<div
282-
className="flex items-center justify-center gap-1.5 mt-2 mb-2 flex-shrink-0"
283-
>
282+
<div className="mt-1.5 mb-1.5 flex flex-shrink-0 items-center justify-center gap-1.5">
284283
<Users
285-
size={12}
286-
style={{ color: isDark ? "rgba(148,163,184,0.4)" : "rgba(100,116,139,0.5)" }}
284+
size={11}
285+
style={{
286+
color: isDark ? "rgba(148,163,184,0.4)" : "rgba(100,116,139,0.5)",
287+
}}
287288
/>
288289
<span
289-
className="text-[11px] font-medium"
290-
style={{ color: isDark ? "rgba(148,163,184,0.4)" : "rgba(100,116,139,0.5)" }}
290+
className="text-[10px] font-medium"
291+
style={{
292+
color: isDark ? "rgba(148,163,184,0.4)" : "rgba(100,116,139,0.5)",
293+
}}
291294
>
292295
200+ sessions completed
293296
</span>
@@ -300,7 +303,7 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
300303
rel="noopener noreferrer"
301304
whileHover={{ scale: 1.015 }}
302305
whileTap={{ scale: 0.985 }}
303-
className="flex w-full items-center justify-center gap-2 rounded-xl px-4 py-2.5 text-sm font-semibold tracking-wide transition-all duration-300 flex-shrink-0"
306+
className="flex w-full flex-shrink-0 items-center justify-center gap-2 rounded-xl px-4 py-2 text-xs font-semibold tracking-wide transition-all duration-300"
304307
style={{
305308
background: "linear-gradient(135deg, #4338ca 0%, #6d28d9 100%)",
306309
color: "rgba(255,255,255,0.95)",
@@ -312,16 +315,13 @@ const TopMateCard: React.FC<TopMateCardProps> = ({
312315
fontFamily: "'Inter', -apple-system, sans-serif",
313316
}}
314317
>
315-
<Calendar size={15} style={{ color: "rgba(255,255,255,0.8)" }} />
318+
<Calendar size={13} style={{ color: "rgba(255,255,255,0.8)" }} />
316319
<span>Schedule Now</span>
317-
<ArrowUpRight
318-
size={15}
319-
style={{ color: "rgba(255,255,255,0.65)" }}
320-
/>
320+
<ArrowUpRight size={13} style={{ color: "rgba(255,255,255,0.65)" }} />
321321
</motion.a>
322322
</div>
323323
</motion.div>
324324
);
325325
};
326326

327-
export default TopMateCard;
327+
export default TopMateCard;

src/components/topmate/TopMateSection.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ const TopMateSection = ({ setShowTopmate }) => {
3030
};
3131

3232
return (
33-
<div className="relative h-full flex flex-col">
34-
<div className="relative w-full h-full flex flex-col justify-between">
33+
<div className="relative flex flex-col w-full h-90">
34+
<div className="relative flex w-full flex-col justify-between">
3535
{/* Section header — unified height & centered alignment */}
3636
<motion.div
3737
initial="hidden"
3838
whileInView="visible"
3939
viewport={{ once: true }}
40-
className="min-h-[150px] flex flex-col justify-center items-center text-center flex-shrink-0 mb-4 px-4"
40+
className="mb-4 flex flex-shrink-0 flex-col items-center justify-center px-4 text-center"
4141
>
4242
<motion.div custom={0} variants={revealVariants} className="mb-2.5">
4343
<span
@@ -60,7 +60,7 @@ const TopMateSection = ({ setShowTopmate }) => {
6060
<motion.h2
6161
custom={1}
6262
variants={revealVariants}
63-
className="mb-2 text-2xl sm:text-3xl font-extrabold leading-tight tracking-tighter"
63+
className="mb-2 text-2xl leading-tight font-extrabold tracking-tighter sm:text-3xl"
6464
style={{
6565
color: isDark ? "#f1f5f9" : "#0f172a",
6666
fontFamily: "'Outfit', 'Inter', -apple-system, sans-serif",
@@ -82,7 +82,7 @@ const TopMateSection = ({ setShowTopmate }) => {
8282
<motion.p
8383
custom={2}
8484
variants={revealVariants}
85-
className="text-xs sm:text-sm leading-relaxed mx-auto max-w-xs"
85+
className="mx-auto max-w-xs text-xs leading-relaxed sm:text-sm"
8686
style={{
8787
color: isDark ? "#94a3b8" : "#64748b",
8888
fontFamily: "'Inter', -apple-system, sans-serif",
@@ -102,7 +102,7 @@ const TopMateSection = ({ setShowTopmate }) => {
102102
delay: 0.25,
103103
ease: [0.215, 0.61, 0.355, 1],
104104
}}
105-
className="flex-1 flex"
105+
className="flex flex-1 w-full"
106106
>
107107
<TopMateCard {...profileData} setShowTopmate={setShowTopmate} />
108108
</motion.div>

src/pages/index.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,18 @@ export default function Home(): ReactNode {
8888
</div>
8989

9090
{/* Mentorship (left) + Testimonials (right) — side by side */}
91-
<div className="m-4 grid grid-cols-1 gap-6 lg:grid-cols-4 items-stretch">
92-
{showTopmate && (
93-
<div className="lg:col-span-1">
94-
<TopMateSection setShowTopmate={setShowTopmate} />
91+
<div className="ml-4 w-full">
92+
<div className="grid grid-cols-1 items-stretch gap-6 lg:grid-cols-5">
93+
{showTopmate && (
94+
<div className="lg:col-span-2">
95+
<TopMateSection setShowTopmate={setShowTopmate} />
96+
</div>
97+
)}
98+
<div
99+
className={`${showTopmate ? "lg:col-span-3" : "lg:col-span-4"} overflow-hidden`}
100+
>
101+
<TestimonialCarousel />
95102
</div>
96-
)}
97-
<div className={`${showTopmate ? "lg:col-span-3" : "lg:col-span-4"} overflow-hidden`}>
98-
<TestimonialCarousel />
99103
</div>
100104
</div>
101105

0 commit comments

Comments
 (0)