@@ -90,51 +90,125 @@ export default function Landing() {
9090 } }
9191 />
9292 </ h2 >
93- < motion . button
94- whileHover = { { scale : 1.08 } }
95- whileTap = { { scale : 0.95 } }
96- className = "mt-6 px-6 py-3 rounded-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500
97- text-white font-semibold shadow-lg hover:shadow-xl transition-all duration-300"
98- >
99- < a
100- href = "/codearena"
101- onClick = { handleClick }
102- className = "relative inline-flex items-center justify-center px-12 py-6 text-lg font-mono font-medium tracking-tighter text-white rounded-2xl
103- bg-gradient-to-r from-purple-600 via-indigo-600 to-pink-600
104- shadow-lg hover:shadow-2xl
105- transition-all duration-300
106- group overflow-hidden
107- disabled:opacity-70"
108- >
109- { /* Glow Effect */ }
110- < span className = "absolute inset-0 bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity duration-300" > </ span >
111-
112- { /* Animated Border */ }
113- < span className = "absolute inset-0 rounded-2xl border-2 border-transparent group-hover:border-white/40 transition-all duration-300" > </ span >
114-
115- { /* Content */ }
116- < span className = "relative flex flex-col items-center justify-center text-center leading-tight transition-all duration-300" >
117- { loading ? (
118- < div className = "flex flex-col items-center gap-3 animate-fadeIn" >
119- < div className = "w-7 h-7 border-4 border-white/80 border-t-transparent rounded-full animate-spin" > </ div >
120- < span className = "text-sm tracking-widest opacity-90 animate-pulse" >
121- Redirecting...
122- </ span >
123- </ div >
124- ) : (
125- < div className = "transition-all duration-300 group-hover:scale-105" >
126- < span className = "text-2xl" >
127- Welcome to Code Arena
128- </ span >
129- < br />
130- < span className = "text-sm tracking-widest opacity-90" >
131- OUR LATEST EVENT
132- </ span >
133- </ div >
134- ) }
135- </ span >
136- </ a >
137- </ motion . button >
93+ < motion . div
94+ initial = { { opacity : 0 , y : 20 } }
95+ animate = { { opacity : 1 , y : 0 } }
96+ transition = { { duration : 0.8 , delay : 0.4 } }
97+ >
98+ < style > { `
99+ .get-started-btn {
100+ position: relative;
101+ display: inline-flex;
102+ align-items: center;
103+ justify-content: center;
104+ padding: 14px 48px;
105+ border-radius: 10px;
106+ background: rgba(0, 0, 0, 0.4);
107+ border: 1.5px solid rgba(255, 255, 255, 0.3);
108+ cursor: pointer;
109+ text-decoration: none;
110+ transition: all 0.3s ease;
111+ overflow: hidden;
112+ min-width: 200px;
113+ box-shadow: 0 0 20px rgba(255, 255, 255, 0.1), inset 0 0 20px rgba(255, 255, 255, 0.05);
114+ animation: glowPulse 3s ease-in-out infinite;
115+ }
116+
117+ .get-started-btn::before {
118+ content: '';
119+ position: absolute;
120+ top: 0;
121+ left: -100%;
122+ width: 100%;
123+ height: 100%;
124+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
125+ transition: left 0.5s ease;
126+ }
127+
128+ .get-started-btn:hover::before {
129+ left: 100%;
130+ }
131+
132+ .get-started-btn:hover {
133+ background: rgba(0, 0, 0, 0.5);
134+ border-color: rgba(255, 255, 255, 0.5);
135+ box-shadow: 0 0 30px rgba(255, 255, 255, 0.3), inset 0 0 20px rgba(255, 255, 255, 0.15);
136+ transform: scale(1.05);
137+ animation: glowPulse 1.5s ease-in-out infinite;
138+ }
139+
140+ .get-started-btn:active {
141+ transform: scale(0.98);
142+ }
143+
144+ .btn-text {
145+ font-size: 18px;
146+ font-weight: 500;
147+ letter-spacing: 1px;
148+ color: #ffffff;
149+ text-shadow: 0 0 15px rgba(255, 255, 255, 0.6), 0 0 30px rgba(255, 255, 255, 0.3);
150+ transition: all 0.3s ease;
151+ position: relative;
152+ z-index: 1;
153+ animation: textFloat 3s ease-in-out infinite;
154+ }
155+
156+ .get-started-btn:hover .btn-text {
157+ text-shadow: 0 0 20px rgba(255, 255, 255, 0.9), 0 0 40px rgba(255, 255, 255, 0.6);
158+ animation: textFloat 1.5s ease-in-out infinite;
159+ }
160+
161+ .spinner {
162+ width: 20px;
163+ height: 20px;
164+ border: 2px solid rgba(255, 255, 255, 0.2);
165+ border-top: 2px solid #ffffff;
166+ border-radius: 50%;
167+ animation: spin 0.8s linear infinite;
168+ margin-right: 10px;
169+ position: relative;
170+ z-index: 1;
171+ }
172+
173+ @keyframes spin {
174+ to { transform: rotate(360deg); }
175+ }
176+
177+ @keyframes glowPulse {
178+ 0%, 100% {
179+ box-shadow: 0 0 20px rgba(255, 255, 255, 0.1), inset 0 0 20px rgba(255, 255, 255, 0.05);
180+ }
181+ 50% {
182+ box-shadow: 0 0 30px rgba(255, 255, 255, 0.2), inset 0 0 25px rgba(255, 255, 255, 0.1);
183+ }
184+ }
185+
186+ @keyframes textFloat {
187+ 0%, 100% {
188+ transform: translateY(0px);
189+ letter-spacing: 1px;
190+ }
191+ 50% {
192+ transform: translateY(-2px);
193+ letter-spacing: 1.5px;
194+ }
195+ }
196+ ` } </ style >
197+
198+ < a
199+ href = "/codearena"
200+ className = "get-started-btn"
201+ >
202+ { loading ? (
203+ < div style = { { display : 'flex' , alignItems : 'center' , justifyContent : 'center' } } >
204+ < div className = "spinner" > </ div >
205+ < span className = "btn-text" > Entering...</ span >
206+ </ div >
207+ ) : (
208+ < span className = "btn-text" > CodeArena</ span >
209+ ) }
210+ </ a >
211+ </ motion . div >
138212 </ motion . div >
139213 </ div >
140214
0 commit comments