Skip to content

Commit 31b6084

Browse files
committed
feat: update ticket link
1 parent 4b07264 commit 31b6084

3 files changed

Lines changed: 88 additions & 38 deletions

File tree

src/Components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ const Footer = () => {
170170
initial={{ opacity: 0, y: 20 }}
171171
animate={{ opacity: 1, y: 0 }}
172172
transition={{ duration: 0.6, delay: 0.4 }}
173-
className="text-center lg:text-right"
173+
className="text-center lg:text-right md:col-span-2 lg:col-span-1"
174174
>
175175
<h4 className="text-lg font-bold mb-4 text-purple-200">Website built with ❤️ by</h4>
176176
<div className="space-y-2">

src/Components/Home.tsx

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ const Home = () => {
127127
animate={{ opacity: 1, y: 0 }}
128128
transition={{ duration: 0.4, delay: 0.5 }}
129129
>
130-
{IS_COMING_SOON ? null : <EnhancedCTAButtons /> }
130+
{IS_COMING_SOON ? null : <EnhancedCTAButtons />}
131131
</motion.div>
132132

133133
{/* Additional Info */}
@@ -245,25 +245,24 @@ const EnhancedCTAButtons = () => {
245245
const IS_SPONSOR_OPEN = true; // Set to true to enable Sponsor button
246246

247247
return (
248-
<div className="flex flex-col sm:flex-row items-center justify-center gap-4 sm:gap-6 w-full">
249-
248+
<div className="flex flex-col sm:flex-row flex-wrap items-stretch justify-center gap-3 sm:gap-4 w-full">
250249
{/* 1. Main CTA - Get Ticket */}
251250
<motion.div
252251
whileHover={IS_TICKET_SALE_OPEN ? { scale: 1.05 } : {}}
253252
whileTap={IS_TICKET_SALE_OPEN ? { scale: 0.95 } : {}}
254-
className={`w-full sm:w-auto ${!IS_TICKET_SALE_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
253+
className={`flex-1 min-w-0 sm:min-w-[10rem] sm:max-w-[14rem] ${!IS_TICKET_SALE_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
255254
>
256255
{IS_TICKET_SALE_OPEN ? (
257256
<a
258-
href="https://www.eventi.overnet.education/ServerlessDaysMilano2026#/tickets"
257+
href="https://www.eventi.overnet.education/ServerlessDaysMilano2026#/buyTickets/selectTickets"
259258
target="_blank"
260259
className="group block w-full"
261260
>
262261
<TicketButtonContent isOpen={true} />
263262
</a>
264263
) : (
265264
<div className="block w-full pointer-events-none">
266-
<TicketButtonContent isOpen={false} />
265+
<TicketButtonContent isOpen={false} />
267266
</div>
268267
)}
269268
</motion.div>
@@ -272,15 +271,15 @@ const EnhancedCTAButtons = () => {
272271
<motion.div
273272
whileHover={IS_CFP_OPEN ? { scale: 1.05 } : {}}
274273
whileTap={IS_CFP_OPEN ? { scale: 0.95 } : {}}
275-
className={`w-full sm:w-auto ${!IS_CFP_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
274+
className={`flex-1 min-w-0 sm:min-w-[10rem] sm:max-w-[14rem] ${!IS_CFP_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
276275
>
277276
{IS_CFP_OPEN ? (
278277
<a
279278
href="https://forms.zohopublic.eu/overnet/form/CFPServerlessDays1310/formperma/PxdFEPzD1aumi1bdUp2dJrzqOhd3uxRpGpM_0A-XX-g"
280279
target="_blank"
281280
className="group block w-full"
282281
>
283-
<SpeakerButtonContent isOpen={true} />
282+
<SpeakerButtonContent isOpen={true} />
284283
</a>
285284
) : (
286285
<div className="block w-full pointer-events-none">
@@ -293,7 +292,7 @@ const EnhancedCTAButtons = () => {
293292
<motion.div
294293
whileHover={IS_SPONSOR_OPEN ? { scale: 1.05 } : {}}
295294
whileTap={IS_SPONSOR_OPEN ? { scale: 0.95 } : {}}
296-
className={`w-full sm:w-auto ${!IS_SPONSOR_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
295+
className={`flex-1 min-w-0 sm:min-w-[10rem] sm:max-w-[14rem] ${!IS_SPONSOR_OPEN ? 'cursor-not-allowed opacity-80' : ''}`}
297296
>
298297
{IS_SPONSOR_OPEN ? (
299298
<a
@@ -309,7 +308,6 @@ const EnhancedCTAButtons = () => {
309308
</div>
310309
)}
311310
</motion.div>
312-
313311
</div>
314312
);
315313
};
@@ -321,22 +319,33 @@ const EnhancedCTAButtons = () => {
321319
const TicketButtonContent = ({ isOpen }: { isOpen: boolean }) => {
322320
if (isOpen) {
323321
return (
324-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-gradient-to-r from-white via-pink-50 to-white text-purple-900 font-black text-lg sm:text-xl rounded-2xl border-4 border-purple-200 shadow-2xl hover:shadow-purple-500/50 transition-all duration-300 ease-in-out group-hover:border-purple-300 cursor-pointer">
322+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-gradient-to-r from-white via-pink-50 to-white text-purple-900 font-black text-base sm:text-lg lg:text-xl rounded-2xl border-4 border-purple-200 shadow-2xl hover:shadow-purple-500/50 transition-all duration-300 ease-in-out group-hover:border-purple-300 cursor-pointer">
325323
<span className="absolute inset-0 bg-gradient-to-r from-purple-100 via-pink-100 to-purple-100 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
326324
<span className="relative flex items-center justify-center gap-3">
327-
<motion.span animate={{ rotate: [0, 10, -10, 0] }} transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut' }}>
325+
<motion.span
326+
animate={{ rotate: [0, 10, -10, 0] }}
327+
transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut' }}
328+
>
328329
🎫
329330
</motion.span>
330331
<span>Get Your Ticket!</span>
331-
<motion.span animate={{ scale: [1, 1.2, 1] }} transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut', delay: 0.5 }}>
332+
<motion.span
333+
animate={{ scale: [1, 1.2, 1] }}
334+
transition={{
335+
duration: 2,
336+
repeat: Infinity,
337+
ease: 'easeInOut',
338+
delay: 0.5,
339+
}}
340+
>
332341
333342
</motion.span>
334343
</span>
335344
</button>
336345
);
337346
}
338347
return (
339-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-slate-100 text-slate-400 font-bold text-lg sm:text-xl rounded-2xl border-4 border-slate-200 shadow-none cursor-not-allowed grayscale">
348+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-slate-100 text-slate-400 font-bold text-base sm:text-lg lg:text-xl rounded-2xl border-4 border-slate-200 shadow-none cursor-not-allowed grayscale">
340349
<span className="relative flex items-center justify-center gap-3">
341350
<span>🎫</span>
342351
<span>Tickets coming Soon</span>
@@ -350,14 +359,25 @@ const SpeakerButtonContent = ({ isOpen }: { isOpen: boolean }) => {
350359
if (isOpen) {
351360
// Active: Vibrant Orchid (Pink/Purple)
352361
return (
353-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-gradient-to-r from-purple-500 via-pink-500 to-purple-500 text-white font-bold text-lg sm:text-xl rounded-2xl shadow-xl hover:shadow-pink-500/50 transition-all duration-300 ease-in-out border-2 border-purple-300 group-hover:border-pink-300 cursor-pointer">
362+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-gradient-to-r from-purple-500 via-pink-500 to-purple-500 text-white font-bold text-base sm:text-lg lg:text-xl rounded-2xl shadow-xl hover:shadow-pink-500/50 transition-all duration-300 ease-in-out border-2 border-purple-300 group-hover:border-pink-300 cursor-pointer">
354363
<span className="absolute inset-0 bg-gradient-to-r from-pink-500 via-purple-500 to-pink-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
355364
<span className="relative flex items-center justify-center gap-3">
356-
<motion.span animate={{ rotate: [0, 10, -10, 0] }} transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut' }}>
365+
<motion.span
366+
animate={{ rotate: [0, 10, -10, 0] }}
367+
transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut' }}
368+
>
357369
📢
358370
</motion.span>
359371
<span>Become a Speaker</span>
360-
<motion.span animate={{ y: [0, -3, 0] }} transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut', delay: 1 }}>
372+
<motion.span
373+
animate={{ y: [0, -3, 0] }}
374+
transition={{
375+
duration: 2,
376+
repeat: Infinity,
377+
ease: 'easeInOut',
378+
delay: 1,
379+
}}
380+
>
361381
🗣️
362382
</motion.span>
363383
</span>
@@ -366,7 +386,7 @@ const SpeakerButtonContent = ({ isOpen }: { isOpen: boolean }) => {
366386
}
367387
// Disabled
368388
return (
369-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-slate-100 text-slate-400 font-bold text-lg sm:text-xl rounded-2xl border-2 border-slate-200 shadow-none cursor-not-allowed grayscale">
389+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-slate-100 text-slate-400 font-bold text-base sm:text-lg lg:text-xl rounded-2xl border-2 border-slate-200 shadow-none cursor-not-allowed grayscale">
370390
<span className="relative flex items-center justify-center gap-3">
371391
<span>📢</span>
372392
<span>CFP Coming Soon</span>
@@ -380,14 +400,25 @@ const SponsorButtonContent = ({ isOpen }: { isOpen: boolean }) => {
380400
if (isOpen) {
381401
// Active: Purple/Blue
382402
return (
383-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-gradient-to-r from-purple-600 via-blue-600 to-purple-600 text-white font-bold text-lg sm:text-xl rounded-2xl shadow-xl hover:shadow-blue-500/50 transition-all duration-300 ease-in-out border-2 border-purple-400 group-hover:border-blue-400 cursor-pointer">
403+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-gradient-to-r from-purple-600 via-blue-600 to-purple-600 text-white font-bold text-base sm:text-lg lg:text-xl rounded-2xl shadow-xl hover:shadow-blue-500/50 transition-all duration-300 ease-in-out border-2 border-purple-400 group-hover:border-blue-400 cursor-pointer">
384404
<span className="absolute inset-0 bg-gradient-to-r from-blue-600 via-purple-600 to-blue-600 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
385405
<span className="relative flex items-center justify-center gap-3">
386-
<motion.span animate={{ rotate: [0, 360] }} transition={{ duration: 3, repeat: Infinity, ease: 'linear' }}>
406+
<motion.span
407+
animate={{ rotate: [0, 360] }}
408+
transition={{ duration: 3, repeat: Infinity, ease: 'linear' }}
409+
>
387410
🤝
388411
</motion.span>
389412
<span>Become a Sponsor</span>
390-
<motion.span animate={{ y: [0, -3, 0] }} transition={{ duration: 2, repeat: Infinity, ease: 'easeInOut', delay: 1 }}>
413+
<motion.span
414+
animate={{ y: [0, -3, 0] }}
415+
transition={{
416+
duration: 2,
417+
repeat: Infinity,
418+
ease: 'easeInOut',
419+
delay: 1,
420+
}}
421+
>
391422
🚀
392423
</motion.span>
393424
</span>
@@ -396,7 +427,7 @@ const SponsorButtonContent = ({ isOpen }: { isOpen: boolean }) => {
396427
}
397428
// Disabled
398429
return (
399-
<button className="relative overflow-hidden w-full sm:w-auto px-8 sm:px-10 py-4 sm:py-5 bg-slate-100 text-slate-400 font-bold text-lg sm:text-xl rounded-2xl border-2 border-slate-200 shadow-none cursor-not-allowed grayscale">
430+
<button className="relative overflow-hidden w-full px-6 sm:px-8 lg:px-10 py-3 sm:py-4 lg:py-5 bg-slate-100 text-slate-400 font-bold text-base sm:text-lg lg:text-xl rounded-2xl border-2 border-slate-200 shadow-none cursor-not-allowed grayscale">
400431
<span className="relative flex items-center justify-center gap-3">
401432
<span>🤝</span>
402433
<span>Become Sponsor Soon</span>

src/Components/Navbar.tsx

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,21 @@ const Navbar = () => {
2121
const [salesOpened] = useState(false);
2222

2323
return (
24-
<nav className={`sticky top-0 z-50 transition-all duration-300 ${
25-
scrolled
26-
? 'bg-white/95 backdrop-blur-md shadow-lg border-b border-purple-200'
27-
: 'bg-white/80 backdrop-blur-sm'
28-
} rounded-2xl mx-2 mt-2 sm:mx-4 sm:mt-4`}>
24+
<nav
25+
className={`sticky top-0 z-50 transition-all duration-300 ${
26+
scrolled
27+
? 'bg-white/95 backdrop-blur-md shadow-lg border-b border-purple-200'
28+
: 'bg-white/80 backdrop-blur-sm'
29+
} rounded-2xl mx-2 mt-2 sm:mx-4 sm:mt-4`}
30+
>
2931
<div className="flex items-center justify-between p-3 sm:p-5">
3032
{/* Logo */}
3133
<div className="block h-8 p-0 sm:h-10 md:hidden">
32-
<img src={Logo2025} alt="logo" className="w-full h-full drop-shadow-md" />
34+
<img
35+
src={Logo2025}
36+
alt="logo"
37+
className="w-full h-full drop-shadow-md"
38+
/>
3339
</div>
3440
<div className="hidden w-36 p-0 sm:w-48 md:block">
3541
<img src={Logo2025} alt="logo" className="drop-shadow-md" />
@@ -38,7 +44,10 @@ const Navbar = () => {
3844
{/* Desktop Navigation */}
3945
<div className="hidden md:flex items-center space-x-6 lg:space-x-9">
4046
<div className="group">
41-
<Link to="/" className="relative font-semibold text-gray-700 hover:text-purple-600 transition-colors duration-300">
47+
<Link
48+
to="/"
49+
className="relative font-semibold text-gray-700 hover:text-purple-600 transition-colors duration-300"
50+
>
4251
🏠 Home
4352
<span className="absolute -bottom-1 left-0 w-0 h-0.5 bg-gradient-to-r from-purple-500 to-pink-500 group-hover:w-full transition-all duration-300"></span>
4453
</Link>
@@ -51,7 +60,10 @@ const Navbar = () => {
5160
</div> */}
5261

5362
<div className="relative group">
54-
<a href="#aboutUs" className="pointer-events-none text-gray-400 font-semibold">
63+
<a
64+
href="#aboutUs"
65+
className="pointer-events-none text-gray-400 font-semibold"
66+
>
5567
👥 About us
5668
</a>
5769
<div className="absolute -rotate-[8deg] w-28 top-5 -left-2 text-xs font-bold text-fuchsia-600 handwriting-1 animate-pulse">
@@ -62,18 +74,23 @@ const Navbar = () => {
6274

6375
<div className="relative">
6476
<a
65-
href={salesOpened ? undefined : "https://www.eventi.overnet.education/ServerlessDaysMilano2026#/tickets"}
77+
href={
78+
salesOpened
79+
? undefined
80+
: 'https://www.eventi.overnet.education/ServerlessDaysMilano2026#/buyTickets/selectTickets'
81+
}
6682
target="_blank"
67-
className={salesOpened ? "cursor-not-allowed" : ""}
83+
className={salesOpened ? 'cursor-not-allowed' : ''}
6884
onClick={(e) => salesOpened && e.preventDefault()} // Extra safety: prevents click if true
6985
>
7086
<Button
7187
variant={'default'}
7288
disabled={salesOpened}
7389
className={`relative overflow-hidden font-bold text-white bg-gradient-to-r from-purple-600 to-pink-600 border-0 rounded-2xl text-sm px-6 py-3 shadow-xl transition-all duration-300 ease-in-out group
74-
${salesOpened
75-
? 'opacity-50 grayscale pointer-events-none' // Disables interaction & dims colors
76-
: 'hover:shadow-purple-500/50 hover:scale-105'
90+
${
91+
salesOpened
92+
? 'opacity-50 grayscale pointer-events-none' // Disables interaction & dims colors
93+
: 'hover:shadow-purple-500/50 hover:scale-105'
7794
}`}
7895
>
7996
<span className="absolute inset-0 bg-gradient-to-r from-pink-600 to-purple-600 opacity-0 group-hover:opacity-100 transition-opacity duration-300"></span>
@@ -140,13 +157,15 @@ const Navbar = () => {
140157
<div className="flex items-center space-x-3 py-3 px-4 rounded-xl bg-gray-100 text-gray-400 font-semibold relative">
141158
<span>👥</span>
142159
<span>About us</span>
143-
<span className="absolute right-3 text-xs text-fuchsia-500 font-bold animate-pulse">Coming soon!</span>
160+
<span className="absolute right-3 text-xs text-fuchsia-500 font-bold animate-pulse">
161+
Coming soon!
162+
</span>
144163
</div>
145164
</div>
146165

147166
<div className="block pt-2">
148167
<a
149-
href="https://www.eventi.overnet.education/ServerlessDaysMilano2026#/tickets"
168+
href="https://www.eventi.overnet.education/ServerlessDaysMilano2026#/buyTickets/selectTickets"
150169
target="_blank"
151170
onClick={() => setIsMobileMenuOpen(false)}
152171
>

0 commit comments

Comments
 (0)