2020{#if ready }
2121<div class =" overflow-x-hidden" >
2222
23- <section class =" hero-section relative isolate overflow-hidden bg-bg-default dark:bg-dark-bg-default px-6 pt-24 pb-16 sm:pt-32 sm:pb-24 lg:px-8 text-center" >
24- <div class =" mx-auto max-w-2xl relative z-10" >
23+ <!-- HERO SECTION - Enhanced responsiveness -->
24+ <section class =" hero-section relative isolate bg-bg-default dark:bg-dark-bg-default min-h-screen flex items-center justify-center px-4 sm:px-6 lg:px-8 xl:px-12 2xl:px-20" >
25+ <div class =" relative z-10 text-center w-full" >
2526 <div class =" animate-flyIn" style =" --fly-y: -20px; --fly-delay: 100ms;" >
26- <h1 class =" text-4xl font-bold tracking-tight text-fg-default dark:text-dark-fg-default sm:text-6xl !leading-tight" >
27+ <h1 class =" mx-auto max-w-full xl:max-w-7xl text-3xl sm:text- 4xl md:text-5xl lg:text-6xl xl:text-7xl font-bold tracking-tight text-fg-default dark:text-dark-fg-default !leading-tight px-2 sm:px-4 " >
2728 Code, Run, <span class =" text-primary dark:text-primary-light" >Integrate</span >. Instantly.
2829 </h1 >
2930 </div >
3031 <div class =" animate-flyIn" style =" --fly-y: 15px; --fly-delay: 300ms;" >
31- <p class =" mt-6 text-lg leading-8 text-fg-muted dark:text-dark-fg-muted" >
32- Welcome to Integr8sCode – the seamless online Python execution environment built on Kubernetes.
32+ <p class =" mx-auto mt-4 sm:mt-6 max-w-full lg:max-w-4xl xl:max-w-5xl text-base sm:text- lg md:text-xl leading-relaxed text-fg-muted dark:text-dark-fg-muted px-4 sm:px-8 lg:px-12 " >
33+ Welcome to Integr8sCode – the seamless online execution environment built on Kubernetes.
3334 Paste your script, hit run, and get results securely and efficiently.
3435 </p >
3536 </div >
36- <div class =" mt-10 animate-flyIn" style =" --fly-y: 15px; --fly-delay: 500ms;" >
37- <Link to =" /editor" class =" btn btn-primary btn-lg px-8 py-3 text-base font-semibold shadow-lg hover:shadow-primary/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary transition-all duration-300 ease-out-expo hover:-translate-y-0.5" >
37+ <div class =" mt-8 sm:mt- 10 animate-flyIn" style =" --fly-y: 15px; --fly-delay: 500ms;" >
38+ <Link to =" /editor" class =" btn btn-primary btn-lg px-6 sm:px- 8 py-2.5 sm:py- 3 text-sm sm:text- base font-semibold shadow-lg hover:shadow-primary/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary transition-all duration-300 ease-out-expo hover:-translate-y-0.5 hover:text-white " >
3839 Start Coding Now
3940 </Link >
4041 </div >
4142 </div >
4243 </section >
4344
44- <section class =" bg-bg-alt dark:bg-dark-bg-alt py-16 sm:py-24 lg:py-32" >
45- <div class =" app-container" >
46- <div class =" mx-auto max-w-xl text-center mb-12 lg:mb-16" >
47- <h2 class =" text-base font-semibold leading-7 text-primary dark:text-primary-light animate-flyIn" style =" --fly-delay: 600ms;" >Core Features</h2 >
48- <p class =" mt-2 text-3xl font-bold tracking-tight text-fg-default dark:text-dark-fg-default sm:text-4xl animate-flyIn" style =" --fly-delay: 700ms;" >
49- Everything you need for quick execution.
50- </p >
51- </div >
52- <div class =" grid grid-cols-1 gap-x-6 gap-y-10 md:grid-cols-3 md:gap-x-8 md:gap-y-12 lg:gap-x-10" >
53- {#each features as feature , i }
54- <div class =" relative flex flex-col items-start text-left p-6 bg-bg-default dark:bg-dark-bg-default rounded-xl shadow-sm border border-border-default dark:border-dark-border-default transition-all duration-300 ease-out-expo hover:shadow-lg hover:border-primary/30 dark:hover:border-primary/40 hover:-translate-y-1 animate-flyIn"
55- style ="--fly-y: 20px; --fly-delay: {800 + i * 150 }ms;" >
56- <div class =" flex h-12 w-12 items-center justify-center rounded-lg bg-primary/10 dark:bg-primary/20 text-primary dark:text-primary-light mb-5" >
57- {@html feature .icon }
58- </div >
59- <h3 class ="text-lg font-semibold leading-7 text-fg-default dark:text-dark-fg-default" >{feature .title }</h3 >
60- <p class ="mt-2 flex-grow text-sm leading-6 text-fg-muted dark:text-dark-fg-muted" >{feature .content }</p >
45+ <!-- FEATURES SECTION - Full width utilization -->
46+ <section class =" bg-bg-default dark:bg-dark-bg-default py-16 sm:py-20 lg:py-28 px-4 sm:px-6 lg:px-8 xl:px-12 2xl:px-20" >
47+ <div class =" mx-auto max-w-full text-center mb-12 sm:mb-16" >
48+ <h2 class =" text-sm sm:text-base font-semibold leading-7 text-primary dark:text-primary-light animate-flyIn uppercase tracking-wider" style =" --fly-delay: 600ms;" >Core Features</h2 >
49+ <p class =" mt-2 text-2xl sm:text-3xl lg:text-4xl font-bold tracking-tight text-fg-default dark:text-dark-fg-default animate-flyIn" style =" --fly-delay: 700ms;" >
50+ Everything you need for quick execution.
51+ </p >
52+ <div class =" mx-auto mt-6 w-24 h-1 bg-gradient-to-r from-transparent via-primary to-transparent animate-flyIn" style =" --fly-delay: 800ms;" ></div >
53+ </div >
54+
55+ <!-- Responsive grid with better space utilization -->
56+ <div class =" mx-auto max-w-full 2xl:max-w-screen-2xl grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6 lg:gap-8 xl:gap-10" >
57+ {#each features as feature , i }
58+ <div class =" feature-card relative flex flex-col items-start text-left p-6 sm:p-8 lg:p-10 bg-bg-alt dark:bg-dark-bg-alt rounded-2xl shadow-xl border border-border-default/50 dark:border-dark-border-default/30 transition-all duration-500 ease-out-expo hover:shadow-2xl hover:border-primary/50 dark:hover:border-primary/60 hover:-translate-y-2 animate-flyIn h-full overflow-hidden group"
59+ style ="--fly-y: 30px; --fly-delay: {800 + i * 150 }ms;" >
60+ <!-- Number accent -->
61+ <div class =" absolute top-6 right-6 text-5xl font-bold text-primary/10 dark:text-primary/20 select-none group-hover:text-primary/20 dark:group-hover:text-primary/30 transition-colors duration-500" >
62+ 0{i + 1 }
63+ </div >
64+
65+ <!-- Gradient overlay for depth -->
66+ <div class =" absolute inset-0 bg-gradient-to-br from-primary/5 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500" ></div >
67+
68+ <!-- Animated background pattern -->
69+ <div class =" absolute -right-8 -top-8 w-32 h-32 bg-primary/10 rounded-full blur-3xl opacity-0 group-hover:opacity-50 transition-all duration-700 group-hover:scale-150" ></div >
70+
71+ <!-- Content with relative positioning -->
72+ <div class =" relative z-10" >
73+ <div class =" icon-wrapper flex h-14 w-14 sm:h-16 sm:w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-primary/20 to-primary/10 dark:from-primary/30 dark:to-primary/15 text-primary dark:text-primary-light mb-6 shadow-lg group-hover:shadow-primary/25 transition-all duration-500 group-hover:scale-110 group-hover:rotate-3" >
74+ {@html feature .icon }
6175 </div >
62- {/each }
76+ <h3 class ="text-lg sm:text-xl font-bold leading-7 sm:leading-8 text-fg-default dark:text-dark-fg-default mb-3 group-hover:text-primary dark:group-hover:text-primary-light transition-colors duration-300" >{feature .title }</h3 >
77+ <p class ="flex-grow text-sm sm:text-base leading-6 sm:leading-7 text-fg-muted dark:text-dark-fg-muted group-hover:text-fg-default dark:group-hover:text-dark-fg-muted transition-colors duration-300" >{feature .content }</p >
78+
79+ <!-- Subtle bottom accent -->
80+ <div class =" absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-transparent via-primary/30 to-transparent transform scale-x-0 group-hover:scale-x-100 transition-transform duration-500" ></div >
81+ </div >
6382 </div >
83+ {/each }
6484 </div >
6585 </section >
6686
82102 opacity : 0 ;
83103 }
84104
85- /* Animated Shapes Background */
105+ /* Animated Shapes Background - Responsive sizing */
86106 @keyframes shape-float-1 {
87107 0 % { transform : translate (0 , 0 ) rotate (0 deg ) scale (1 ); }
88108 25 % { transform : translate (-10 px , 15 px ) rotate (10 deg ) scale (1.05 ); }
98118 100 % { transform : translate (0 , 0 ) rotate (0 deg ) scale (1 ); }
99119 }
100120
121+ /* Feature card enhancements */
122+ .feature-card {
123+ position : relative;
124+ background : theme ('colors.bg.alt' );
125+ backdrop-filter : blur (10 px );
126+ }
127+
128+ .dark .feature-card {
129+ background : theme ('colors.dark.bg.alt' );
130+ }
131+
132+ .feature-card::before {
133+ content : '' ;
134+ position : absolute;
135+ inset : -2 px ;
136+ background : linear-gradient (135 deg ,
137+ theme ('colors.primary.DEFAULT' ) 0 % ,
138+ transparent 40 % ,
139+ transparent 60 % ,
140+ theme ('colors.secondary.DEFAULT' ) 100 % );
141+ border-radius : 1 rem ;
142+ opacity : 0 ;
143+ transition : opacity 0.5 s cubic-bezier (0.16 , 1 , 0.3 , 1 );
144+ z-index : -1 ;
145+ }
146+
147+ .feature-card:hover::before {
148+ opacity : 0.2 ;
149+ }
150+
151+ .icon-wrapper {
152+ position : relative;
153+ }
154+
155+ .icon-wrapper::after {
156+ content : '' ;
157+ position : absolute;
158+ inset : -4 px ;
159+ background : radial-gradient (circle, theme ('colors.primary.DEFAULT' ) 0 % , transparent 70 % );
160+ opacity : 0 ;
161+ border-radius : 1 rem ;
162+ transition : opacity 0.5 s ease;
163+ z-index : -1 ;
164+ }
165+
166+ .group:hover .icon-wrapper::after {
167+ opacity : 0.3 ;
168+ }
169+
170+ .icon-wrapper svg {
171+ transition : transform 0.5 s cubic-bezier (0.16 , 1 , 0.3 , 1 );
172+ }
173+
174+ .group:hover .icon-wrapper svg {
175+ transform : scale (1.1 );
176+ }
177+
178+ /* Subtle floating animation for icons */
179+ @keyframes icon-float {
180+ 0 % , 100 % { transform : translateY (0 ); }
181+ 50 % { transform : translateY (-4 px ); }
182+ }
183+
184+ .group:hover .icon-wrapper {
185+ animation : icon-float 2 s ease-in-out infinite;
186+ }
187+
101188 .hero-section::before ,
102189 .hero-section::after {
103190 content : '' ;
104191 @apply absolute -z-10 rounded-full;
105- filter : blur (60 px ); /* Slightly less blur than gradient */
192+ filter : blur (60 px );
106193 opacity : 0.15 ;
107194 will-change : transform;
108195 }
109196 .dark .hero-section::before ,
110197 .dark .hero-section::after {
111- opacity : 0.1 ; /* Even more subtle in dark mode */
198+ opacity : 0.1 ;
112199 filter : blur (70 px );
113200 }
114201
115- /* Shape 1: Large Circle (Primary Color) */
116202 .hero-section::before {
117- width : 50 rem ; height : 50 rem ;
118- left : -20 rem ; top : -20 rem ;
203+ width : 25 rem ; height : 25 rem ;
204+ left : -10 rem ; top : -10 rem ;
119205 background-color : theme ('colors.primary.light' );
120206 animation : shape-float-1 35 s ease-in-out infinite;
121207 }
208+
209+ /* Responsive background shapes */
210+ @media (min-width : 640 px ) {
211+ .hero-section::before {
212+ width : 35 rem ; height : 35 rem ;
213+ left : -15 rem ; top : -15 rem ;
214+ }
215+ }
216+
217+ @media (min-width : 1024 px ) {
218+ .hero-section::before {
219+ width : 50 rem ; height : 50 rem ;
220+ left : -20 rem ; top : -20 rem ;
221+ }
222+ }
223+
122224 .dark .hero-section::before {
123225 background-color : theme ('colors.primary.DEFAULT' );
124226 }
125227
126-
127- /* Shape 2: Smaller Ellipse (Secondary Color) */
128228 .hero-section::after {
129- width : 40 rem ; height : 30 rem ; /* Elliptical */
130- right : -15 rem ; bottom : -10 rem ;
131- border-radius : 60 % 40 % 30 % 70 % / 60 % 30 % 70 % 40 % ; /* Organic shape */
229+ width : 20 rem ; height : 15 rem ;
230+ right : -10 rem ; bottom : -5 rem ;
231+ border-radius : 60 % 40 % 30 % 70 % / 60 % 30 % 70 % 40 % ;
132232 background-color : theme ('colors.secondary.DEFAULT' );
133233 animation : shape-float-2 45 s ease-in-out infinite;
134234 }
135- .dark .hero-section::after {
136- background-color : theme ('colors.secondary.dark' );
137- border-radius : 30 % 70 % 70 % 30 % / 30 % 30 % 70 % 70 % ; /* Different shape */
138- }
139235
236+ @media (min-width : 640 px ) {
237+ .hero-section::after {
238+ width : 30 rem ; height : 22 rem ;
239+ right : -12 rem ; bottom : -7 rem ;
240+ }
241+ }
242+
243+ @media (min-width : 1024 px ) {
244+ .hero-section::after {
245+ width : 40 rem ; height : 30 rem ;
246+ right : -15 rem ; bottom : -10 rem ;
247+ }
248+ }
140249
141- .hero-section > div {
142- @apply relative z-10;
250+ .dark .hero-section::after {
251+ background-color : theme ('colors.secondary.dark' );
252+ border-radius : 30 % 70 % 70 % 30 % / 30 % 30 % 70 % 70 % ;
143253 }
144254 </style >
0 commit comments