@@ -132,11 +132,11 @@ const VideoModal = ({ isOpen, onClose, videoId }: VideoModalProps) => {
132132 < div className = "absolute inset-0 bg-black/80 backdrop-blur-sm" onClick = { onClose } />
133133
134134 { /* Modal Content */ }
135- < div className = "animate-fadeInScale relative z-10 mx-4 w-full max-w-4xl" >
135+ < div className = "relative z-10 mx-4 w-full max-w-4xl animate-fadeInScale " >
136136 < div className = "glass-card-premium overflow-hidden rounded-2xl" >
137137 { /* Header */ }
138- < div className = "flex items-center justify-between border-b border-neutral-6/20 p-6" >
139- < h3 className = "text-xl font-bold text-neutral-12" > Welcome to ExpressoTS</ h3 >
138+ < div className = "flex items-center justify-between border-b border-neutral-6/20 p-4 sm:p- 6" >
139+ < h3 className = "text-lg font-bold text-neutral-12 sm:text-xl " > Welcome to ExpressoTS</ h3 >
140140 < button
141141 onClick = { onClose }
142142 className = "flex h-8 w-8 items-center justify-center rounded-lg bg-neutral-3/20 transition-all duration-300 hover:bg-red-500/20 hover:text-red-400"
@@ -146,7 +146,7 @@ const VideoModal = ({ isOpen, onClose, videoId }: VideoModalProps) => {
146146 </ div >
147147
148148 { /* Video Container */ }
149- < div className = "p-6" >
149+ < div className = "p-4 sm:p- 6" >
150150 < div className = "relative aspect-video w-full overflow-hidden rounded-xl" >
151151 < iframe
152152 width = "100%"
@@ -194,7 +194,7 @@ const PlaygroundModal = ({ isOpen, onClose }: PlaygroundModalProps) => {
194194 openFile : 'src/main.ts' ,
195195 hideExplorer : false ,
196196 theme : 'dark' ,
197- height : 600 ,
197+ height : window . innerWidth < 640 ? 400 : 600 ,
198198 width : '100%' ,
199199 } )
200200 setIsLoaded ( true )
@@ -228,11 +228,11 @@ const PlaygroundModal = ({ isOpen, onClose }: PlaygroundModalProps) => {
228228 < div className = "absolute inset-0 bg-black/80 backdrop-blur-sm" onClick = { onClose } />
229229
230230 { /* Modal Content */ }
231- < div className = "animate-fadeInScale relative z-10 mx-4 w-full max-w-6xl" >
231+ < div className = "relative z-10 mx-4 w-full max-w-6xl animate-fadeInScale " >
232232 < div className = "glass-card-premium overflow-hidden rounded-2xl" >
233233 { /* Header */ }
234- < div className = "flex items-center justify-between border-b border-neutral-6/20 p-6" >
235- < h3 className = "text-xl font-bold text-neutral-12" > Playground</ h3 >
234+ < div className = "flex items-center justify-between border-b border-neutral-6/20 p-4 sm:p- 6" >
235+ < h3 className = "text-lg font-bold text-neutral-12 sm:text-xl " > Playground</ h3 >
236236 < button
237237 onClick = { onClose }
238238 className = "flex h-8 w-8 items-center justify-center rounded-lg bg-neutral-3/20 transition-all duration-300 hover:bg-red-500/20 hover:text-red-400"
@@ -242,10 +242,10 @@ const PlaygroundModal = ({ isOpen, onClose }: PlaygroundModalProps) => {
242242 </ div >
243243
244244 { /* StackBlitz Container */ }
245- < div className = "p-6" >
246- < div className = "relative min-h-[600px ] w-full overflow-hidden rounded-xl bg-neutral-1" >
245+ < div className = "p-4 sm:p- 6" >
246+ < div className = "relative min-h-[400px ] w-full overflow-hidden rounded-xl bg-neutral-1 sm:min-h-[600px] " >
247247 { ! isLoaded && (
248- < div className = "flex h-[600px ] items-center justify-center" >
248+ < div className = "flex h-[400px ] items-center justify-center sm:h-[600px] " >
249249 < div className = "text-center" >
250250 < div className = "mx-auto mb-4 h-8 w-8 animate-spin rounded-full border-2 border-base-6/30 border-t-base-6" > </ div >
251251 < p className = "text-neutral-7" > Loading ExpressoTS Playground...</ p >
@@ -274,15 +274,15 @@ export default function Home() {
274274 < Container className = "relative z-10 w-full" >
275275 < div className = "flex flex-col items-center justify-center py-20 text-center" >
276276 { /* Main Headline */ }
277- < div className = "animate-fadeInScale mb-8" >
278- < h1 className = "mb-6 text-5xl font-bold leading-tight lg :text-7xl" >
277+ < div className = "mb-8 animate-fadeInScale " >
278+ < h1 className = "mb-6 text-3xl font-bold leading-tight sm:text-4xl md:text-5xl lg:text-6xl xl :text-7xl" >
279279 Build Modern APIs with < span className = "text-gradient-premium" > Confidence</ span >
280280 </ h1 >
281281 </ div >
282282
283283 { /* Tagline */ }
284- < div className = "animate-slideInUp mb-12 max-w-3xl" >
285- < p className = "text-xl leading-relaxed text-neutral-8 lg:text-2xl" >
284+ < div className = "mb-12 max-w-3xl animate-slideInUp " >
285+ < p className = "text-lg leading-relaxed text-neutral-8 sm:text-xl lg:text-2xl" >
286286 A type-safe TypeScript framework for building fast, scalable APIs with minimal setup
287287 and developer-first design.
288288 </ p >
@@ -292,15 +292,15 @@ export default function Home() {
292292 < div className = "mb-16 flex flex-col items-center gap-4 lg:flex-row" >
293293 < LinkButton
294294 href = "https://doc.expresso-ts.com/"
295- className = "btn-primary-premium min-w-[220px] rounded-lg px-8 py-4 text-lg font-semibold [&>span]:flex [&>span]:flex-nowrap [&>span]:items-center [&>span]:gap-2"
295+ className = "btn-primary-premium flex-shrink-0 rounded-lg px-6 py-4 text-lg font-semibold sm:px-8 [&>span]:flex [&>span]:flex-nowrap [&>span]:items-center [&>span]:gap-2"
296296 >
297297 < IconRocket className = "h-5 w-5 flex-shrink-0" />
298298 < span > Quick Start</ span >
299299 < IconArrowRight className = "h-5 w-5 flex-shrink-0" />
300300 </ LinkButton >
301301 < button
302302 onClick = { ( ) => setIsVideoModalOpen ( true ) }
303- className = "btn-secondary-premium group relative flex inline- flex min-w-[220px] items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-lg border border-base-6/30 bg-base-7/10 px-8 py-4 text-lg font-semibold transition-all duration-300 hover:scale-105 hover:border-base-6/50 hover:bg-base-6/20 active:scale-95"
303+ className = "btn-secondary-premium group relative flex flex-shrink-0 items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-lg border border-base-6/30 bg-base-7/10 px-6 py-4 text-lg font-semibold transition-all duration-300 hover:scale-105 hover:border-base-6/50 hover:bg-base-6/20 active:scale-95 sm:px-8 "
304304 >
305305 < div className = "absolute inset-0 bg-gradient-to-r from-base-6/20 to-base-5/20 opacity-0 transition-opacity duration-300 group-hover:opacity-100" />
306306 < span className = "relative z-10 flex transform items-center gap-2 transition-all duration-300 group-hover:tracking-wider" >
@@ -311,24 +311,24 @@ export default function Home() {
311311 </ div >
312312
313313 { /* Statistics */ }
314- < div className = "flex flex-col items-center gap-12 lg:flex-row lg:gap-20" >
314+ < div className = "flex flex-col items-center gap-8 sm:gap- 12 lg:flex-row lg:gap-20" >
315315 < div className = "text-center" >
316- < div className = "text-4xl font-bold text-neutral-12 lg:text-5xl" >
316+ < div className = "text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
317317 < AnimatedCounter target = { 130000 } suffix = "+" />
318318 </ div >
319- < div className = "mt-2 text-lg text-neutral-7" > Weekly Downloads</ div >
319+ < div className = "mt-2 text-base text-neutral-7 sm:text-lg " > Weekly Downloads</ div >
320320 </ div >
321321 < div className = "text-center" >
322- < div className = "text-4xl font-bold text-neutral-12 lg:text-5xl" >
322+ < div className = "text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
323323 < AnimatedCounter target = { 1800 } suffix = "+" />
324324 </ div >
325- < div className = "mt-2 text-lg text-neutral-7" > GitHub Stars</ div >
325+ < div className = "mt-2 text-base text-neutral-7 sm:text-lg " > GitHub Stars</ div >
326326 </ div >
327327 < div className = "text-center" >
328- < div className = "text-4xl font-bold text-neutral-12 lg:text-5xl" >
328+ < div className = "text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
329329 < AnimatedCounter target = { 56 } suffix = "+" />
330330 </ div >
331- < div className = "mt-2 text-lg text-neutral-7" > Contributors</ div >
331+ < div className = "mt-2 text-base text-neutral-7 sm:text-lg " > Contributors</ div >
332332 </ div >
333333 </ div >
334334 </ div >
@@ -347,16 +347,16 @@ export default function Home() {
347347 Try It Now
348348 </ span >
349349 </ div >
350- < h2 className = "mb-4 text-4xl font-bold text-neutral-12 lg:text-5xl" >
350+ < h2 className = "mb-4 text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
351351 Interactive < span className = "text-gradient-premium" > Playground</ span >
352352 </ h2 >
353- < p className = "mx-auto mb-8 max-w-2xl text-xl text-neutral-7" >
353+ < p className = "mx-auto mb-8 max-w-2xl text-lg text-neutral-7 sm:text-xl " >
354354 Experience ExpressoTS directly in your browser. No installation required.
355355 </ p >
356356
357357 < button
358358 onClick = { ( ) => setIsPlaygroundModalOpen ( true ) }
359- className = "btn-primary-premium group relative mx-auto flex inline-flex min -w-[220px ] items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-lg border border-base-6/30 bg-base-7/10 px-8 py-4 text-lg font-semibold transition-all duration-300 hover:scale-105 hover:border-base-6/50 hover:bg-base-6/20 active:scale-95"
359+ className = "btn-primary-premium group relative mx-auto flex w-full max -w-[280px ] items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-lg border border-base-6/30 bg-base-7/10 px-6 py-4 text-lg font-semibold transition-all duration-300 hover:scale-105 hover:border-base-6/50 hover:bg-base-6/20 active:scale-95 sm:px-8 "
360360 >
361361 < div className = "absolute inset-0 bg-gradient-to-r from-base-6/20 to-base-5/20 opacity-0 transition-opacity duration-300 group-hover:opacity-100" />
362362 < span className = "relative z-10 flex transform items-center gap-2 transition-all duration-300 group-hover:tracking-wider" >
@@ -374,15 +374,15 @@ export default function Home() {
374374
375375 < Container className = "relative z-10" >
376376 < div className = "mb-16 text-center" >
377- < h2 className = "mb-4 text-4xl font-bold text-neutral-12 lg:text-5xl" >
377+ < h2 className = "mb-4 text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
378378 Complete < span className = "text-gradient-premium" > Ecosystem</ span >
379379 </ h2 >
380- < p className = "mx-auto max-w-2xl text-xl text-neutral-7" >
380+ < p className = "mx-auto max-w-2xl text-lg text-neutral-7 sm:text-xl " >
381381 Everything you need to build, test, and deploy production-ready applications.
382382 </ p >
383383 </ div >
384384
385- < div className = "grid gap-8 md:grid-cols-2 lg:grid-cols-4" >
385+ < div className = "grid gap-6 sm:gap- 8 md:grid-cols-2 lg:grid-cols-4" >
386386 < InfoCard
387387 header = {
388388 < >
@@ -513,19 +513,19 @@ export default function Home() {
513513
514514 < Container className = "relative z-10" >
515515 < div className = "mb-16 text-center" >
516- < h2 className = "mb-4 text-4xl font-bold text-neutral-12 lg:text-5xl" >
516+ < h2 className = "mb-4 text-3xl font-bold text-neutral-12 sm:text-4xl lg:text-5xl" >
517517 Start Building < span className = "text-gradient-premium" > Today</ span >
518518 </ h2 >
519- < p className = "text-xl text-neutral-7" >
519+ < p className = "text-lg text-neutral-7 sm:text-xl " >
520520 Get up and running with ExpressoTS in under 5 minutes.
521521 </ p >
522522 </ div >
523523
524524 < div className = "mx-auto max-w-2xl" >
525525 { /* Installation Command */ }
526- < div className = "glass-card-premium mb-8 rounded-xl p-6" >
527- < div className = "flex items-center justify-between" >
528- < code className = "font-mono text-lg text-neutral-8" >
526+ < div className = "glass-card-premium mb-8 rounded-xl p-4 sm:p- 6" >
527+ < div className = "flex flex-col gap-4 sm:flex-row sm: items-center sm: justify-between" >
528+ < code className = "break-all font-mono text-sm text-neutral-8 sm:break-normal sm:text-lg " >
529529 npx @expressots/cli new my-app
530530 </ code >
531531 < CopyButton command = "npx @expressots/cli new my-app" />
@@ -536,13 +536,13 @@ export default function Home() {
536536 < div className = "flex flex-col items-center gap-4 lg:flex-row lg:justify-center" >
537537 < LinkButton
538538 href = "https://doc.expresso-ts.com/"
539- className = "btn-primary-premium rounded-lg px-8 py-4 text-lg font-semibold"
539+ className = "btn-primary-premium w-full max-w-[200px] rounded-lg px-6 py-4 text-lg font-semibold sm:px-8 "
540540 >
541541 Get Started
542542 </ LinkButton >
543543 < LinkButton
544544 href = "https://github.com/expressots/expressots"
545- className = "btn-secondary-premium rounded-lg px-8 py-4 text-lg font-semibold"
545+ className = "btn-secondary-premium w-full max-w-[200px] rounded-lg px-6 py-4 text-lg font-semibold sm:px-8 "
546546 >
547547 View on GitHub
548548 </ LinkButton >
0 commit comments