@digilogiclabs/create-saas-app 1.13.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +104 -36
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/templates/web/ui-auth/template/src/app/globals.css +53 -0
  4. package/dist/templates/web/ui-auth/template/src/app/page.tsx +14 -1
  5. package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +40 -0
  6. package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +14 -1
  7. package/dist/templates/web/ui-auth-payments-ai/template/src/app/globals.css +53 -0
  8. package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +13 -3
  9. package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +18 -11
  10. package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +53 -0
  11. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +23 -13
  12. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +18 -11
  13. package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +40 -0
  14. package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +14 -1
  15. package/package.json +1 -1
  16. package/src/templates/web/ui-auth/template/src/app/globals.css +53 -0
  17. package/src/templates/web/ui-auth/template/src/app/page.tsx +14 -1
  18. package/src/templates/web/ui-auth-payments/template/src/app/globals.css +40 -0
  19. package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +14 -1
  20. package/src/templates/web/ui-auth-payments-ai/template/src/app/globals.css +53 -0
  21. package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +13 -3
  22. package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +18 -11
  23. package/src/templates/web/ui-auth-payments-audio/template/src/app/globals.css +53 -0
  24. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +23 -13
  25. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +18 -11
  26. package/src/templates/web/ui-auth-payments-video/template/src/app/globals.css +40 -0
  27. package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +14 -1
@@ -84,7 +84,20 @@ export default function Home() {
84
84
  hapticOnTrigger={true}
85
85
  networkAware={true}
86
86
  >
87
- <main className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800">
87
+ <main className="min-h-screen relative overflow-hidden bg-background">
88
+ {/* Theme-aware gradient background for SaaS platform */}
89
+ <div className="absolute inset-0 bg-gradient-to-br from-primary/10 via-background to-secondary/10 dark:from-primary/20 dark:via-background dark:to-secondary/20" />
90
+ <div className="absolute inset-0 bg-gradient-to-tr from-accent/5 via-transparent to-primary/5 dark:from-accent/10 dark:via-transparent dark:to-primary/10" />
91
+ <div className="absolute inset-0 bg-[radial-gradient(ellipse_at_top_left,_var(--tw-gradient-stops))] from-secondary/15 via-transparent to-transparent dark:from-secondary/25 dark:via-transparent dark:to-transparent" />
92
+ {/* Animated business-themed particles */}
93
+ <div className="absolute inset-0 opacity-25 dark:opacity-15">
94
+ <div className="absolute top-1/5 right-1/5 w-64 h-64 bg-primary/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse dark:bg-primary/70"></div>
95
+ <div className="absolute bottom-1/3 left-1/4 w-80 h-80 bg-secondary/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-2000 dark:bg-secondary/70"></div>
96
+ <div className="absolute top-2/3 right-1/3 w-56 h-56 bg-accent/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-4000 dark:bg-accent/70"></div>
97
+ </div>
98
+ {/* Subtle depth overlay */}
99
+ <div className="absolute inset-0 bg-gradient-to-b from-transparent via-background/2 to-background/5" />
100
+ <div className="relative z-10">
88
101
  <MobileContainer className="py-16">
89
102
  {/* Network & Auth Status Bar */}
90
103
  <div className="flex flex-col sm:flex-row justify-between items-center mb-8 gap-4">
@@ -41,3 +41,56 @@
41
41
  }
42
42
  }
43
43
 
44
+ /* Custom animations for enhanced visual effects */
45
+ @keyframes slide-down {
46
+ from {
47
+ opacity: 0;
48
+ transform: translateY(-10px);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: translateY(0);
53
+ }
54
+ }
55
+
56
+ @keyframes fade-in-up {
57
+ from {
58
+ opacity: 0;
59
+ transform: translateY(10px);
60
+ }
61
+ to {
62
+ opacity: 1;
63
+ transform: translateY(0);
64
+ }
65
+ }
66
+
67
+ @keyframes marquee {
68
+ 0% {
69
+ transform: translateX(100%);
70
+ }
71
+ 100% {
72
+ transform: translateX(-100%);
73
+ }
74
+ }
75
+
76
+ .animate-slide-down {
77
+ animation: slide-down 0.6s ease-out;
78
+ }
79
+
80
+ .animate-fade-in-up {
81
+ animation: fade-in-up 0.6s ease-out;
82
+ animation-fill-mode: both;
83
+ }
84
+
85
+ .animate-marquee {
86
+ animation: marquee 20s linear infinite;
87
+ }
88
+
89
+ .animation-delay-2000 {
90
+ animation-delay: 2s;
91
+ }
92
+
93
+ .animation-delay-4000 {
94
+ animation-delay: 4s;
95
+ }
96
+
@@ -208,9 +208,19 @@ export default function Home() {
208
208
  hapticOnTrigger={true}
209
209
  networkAware={true}
210
210
  >
211
- <main className={`min-h-screen ${glass.background.primary} relative overflow-hidden`}>
212
- {/* Glassmorphism background overlay */}
213
- <div className={`absolute inset-0 ${glass.background.accent} opacity-30`} />
211
+ <main className="min-h-screen relative overflow-hidden bg-background">
212
+ {/* Theme-aware gradient background */}
213
+ <div className="absolute inset-0 bg-gradient-to-br from-primary/10 via-background to-secondary/10 dark:from-primary/20 dark:via-background dark:to-secondary/20" />
214
+ <div className="absolute inset-0 bg-gradient-to-tr from-accent/5 via-transparent to-primary/5 dark:from-accent/10 dark:via-transparent dark:to-primary/10" />
215
+ <div className="absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_var(--tw-gradient-stops))] from-primary/15 via-transparent to-transparent dark:from-primary/25 dark:via-transparent dark:to-transparent" />
216
+ {/* Animated background particles - theme aware */}
217
+ <div className="absolute inset-0 opacity-30 dark:opacity-20">
218
+ <div className="absolute top-1/4 left-1/4 w-72 h-72 bg-primary/40 rounded-full mix-blend-multiply filter blur-3xl animate-pulse dark:bg-primary/60"></div>
219
+ <div className="absolute top-3/4 right-1/4 w-72 h-72 bg-secondary/40 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-2000 dark:bg-secondary/60"></div>
220
+ <div className="absolute top-1/2 left-1/2 w-72 h-72 bg-accent/40 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-4000 dark:bg-accent/60"></div>
221
+ </div>
222
+ {/* Subtle overlay for depth */}
223
+ <div className="absolute inset-0 bg-gradient-to-b from-transparent via-background/5 to-background/20" />
214
224
  <div className="relative z-10">
215
225
  <MobileContainer className="py-8">
216
226
  {/* AI Configuration Status */}
@@ -124,26 +124,33 @@ export function Header() {
124
124
  </div>
125
125
  )}
126
126
 
127
- {/* Responsive Header */}
128
- <header className="bg-white dark:bg-gray-800 shadow-md border-b">
129
- <div className="container mx-auto px-4">
127
+ {/* Responsive Header with theme-aware gradient */}
128
+ <header className="bg-background/90 backdrop-blur-md shadow-lg border-b border-border/20 transition-all duration-300 animate-slide-down">
129
+ <div className="absolute inset-0 bg-gradient-to-r from-primary/10 via-transparent to-secondary/10"></div>
130
+ <div className="container mx-auto px-4 relative">
130
131
  <div className="flex justify-between items-center h-16">
131
- {/* Logo */}
132
- <Link href="/" className="text-2xl font-bold text-gray-900 dark:text-white flex items-center gap-2">
133
- <Music className="w-6 h-6" />
134
- {projectName}
132
+ {/* Logo with animation */}
133
+ <Link href="/" className="text-2xl font-bold text-foreground flex items-center gap-2 transition-all duration-300 hover:scale-105">
134
+ <Music className="w-6 h-6 transition-transform duration-300 hover:rotate-12 text-primary" />
135
+ <span className="bg-gradient-to-r from-primary to-secondary bg-clip-text text-transparent transition-all duration-300">
136
+ {projectName}
137
+ </span>
135
138
  </Link>
136
139
 
137
140
  {/* Desktop Navigation */}
138
141
  <nav className="hidden md:flex items-center gap-6">
139
- {visibleNavItems.map((item) => (
142
+ {visibleNavItems.map((item, index) => (
140
143
  <Link
141
144
  key={item.href}
142
145
  href={item.href}
143
- className="flex items-center gap-2 text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white transition-colors"
146
+ className="group flex items-center gap-2 text-muted-foreground hover:text-primary transition-all duration-300 relative px-3 py-2 rounded-lg hover:bg-gradient-to-r hover:from-primary/10 hover:to-secondary/10 animate-fade-in-up"
147
+ style={{ animationDelay: (index * 100) + 'ms' }}
144
148
  >
145
- <item.icon className="w-4 h-4" />
146
- {item.label}
149
+ <item.icon className="w-4 h-4 transition-transform duration-300 group-hover:scale-110 group-hover:rotate-3" />
150
+ <span className="relative">
151
+ {item.label}
152
+ <span className="absolute -bottom-1 left-0 h-0.5 w-0 bg-gradient-to-r from-primary to-secondary transition-all duration-300 group-hover:w-full"></span>
153
+ </span>
147
154
  </Link>
148
155
  ))}
149
156
 
@@ -41,3 +41,56 @@
41
41
  }
42
42
  }
43
43
 
44
+ /* Custom animations for enhanced visual effects */
45
+ @keyframes slide-down {
46
+ from {
47
+ opacity: 0;
48
+ transform: translateY(-10px);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: translateY(0);
53
+ }
54
+ }
55
+
56
+ @keyframes fade-in-up {
57
+ from {
58
+ opacity: 0;
59
+ transform: translateY(10px);
60
+ }
61
+ to {
62
+ opacity: 1;
63
+ transform: translateY(0);
64
+ }
65
+ }
66
+
67
+ @keyframes marquee {
68
+ 0% {
69
+ transform: translateX(100%);
70
+ }
71
+ 100% {
72
+ transform: translateX(-100%);
73
+ }
74
+ }
75
+
76
+ .animate-slide-down {
77
+ animation: slide-down 0.6s ease-out;
78
+ }
79
+
80
+ .animate-fade-in-up {
81
+ animation: fade-in-up 0.6s ease-out;
82
+ animation-fill-mode: both;
83
+ }
84
+
85
+ .animate-marquee {
86
+ animation: marquee 20s linear infinite;
87
+ }
88
+
89
+ .animation-delay-2000 {
90
+ animation-delay: 2s;
91
+ }
92
+
93
+ .animation-delay-4000 {
94
+ animation-delay: 4s;
95
+ }
96
+
@@ -159,9 +159,19 @@ export default function Home() {
159
159
  hapticOnTrigger={true}
160
160
  networkAware={true}
161
161
  >
162
- <main className={"min-h-screen " + glass.background.primary + " relative overflow-hidden"}>
163
- {/* Glassmorphism background overlay */}
164
- <div className={"absolute inset-0 " + glass.background.accent + " opacity-30"} />
162
+ <main className="min-h-screen relative overflow-hidden bg-background">
163
+ {/* Theme-aware gradient background for audio streaming */}
164
+ <div className="absolute inset-0 bg-gradient-to-br from-primary/15 via-background to-accent/15 dark:from-primary/25 dark:via-background dark:to-accent/25" />
165
+ <div className="absolute inset-0 bg-gradient-to-tr from-secondary/10 via-transparent to-primary/10 dark:from-secondary/15 dark:via-transparent dark:to-primary/15" />
166
+ <div className="absolute inset-0 bg-[radial-gradient(ellipse_at_bottom_left,_var(--tw-gradient-stops))] from-accent/20 via-transparent to-transparent dark:from-accent/30 dark:via-transparent dark:to-transparent" />
167
+ {/* Animated music-themed particles */}
168
+ <div className="absolute inset-0 opacity-25 dark:opacity-15">
169
+ <div className="absolute top-1/3 left-1/6 w-64 h-64 bg-primary/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse dark:bg-primary/70"></div>
170
+ <div className="absolute top-2/3 right-1/5 w-80 h-80 bg-accent/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-2000 dark:bg-accent/70"></div>
171
+ <div className="absolute top-1/5 right-1/3 w-56 h-56 bg-secondary/50 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-4000 dark:bg-secondary/70"></div>
172
+ </div>
173
+ {/* Audio wave overlay */}
174
+ <div className="absolute inset-0 bg-gradient-to-t from-transparent via-primary/5 to-transparent opacity-60" />
165
175
  <div className="relative z-10">
166
176
  <MobileContainer className="py-8">
167
177
  {/* Simple Auth Status */}
@@ -232,7 +242,7 @@ export default function Home() {
232
242
  {/* Main Content */}
233
243
  <div className="lg:col-span-3 space-y-8">
234
244
  {/* Now Playing Card with Enhanced Glassmorphism */}
235
- <div className={glass.card + " " + glass.border + " rounded-3xl p-6 mb-8 " + animations.hover.lift + " " + animations.transition.smooth}>
245
+ <div className={glass.card + " " + glass.border + " rounded-3xl p-6 mb-8 " + animations.hover.lift + " " + animations.transition.smooth}>
236
246
  <NowPlayingCard
237
247
  track={currentTrack || demoPlaylist[0]}
238
248
  isPlaying={isPlaying}
@@ -244,7 +254,7 @@ export default function Home() {
244
254
 
245
255
  {/* Featured Playlists with Staggered Animation */}
246
256
  <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
247
- <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.short}>
257
+ <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.short}>
248
258
  <PlaylistCard
249
259
  title="Today's Top Hits"
250
260
  description="The most played songs today"
@@ -254,7 +264,7 @@ export default function Home() {
254
264
  className="bg-transparent border-none"
255
265
  />
256
266
  </div>
257
- <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.medium}>
267
+ <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.medium}>
258
268
  <PlaylistCard
259
269
  title="Chill Vibes"
260
270
  description="Relaxing music for focus and creativity"
@@ -264,7 +274,7 @@ export default function Home() {
264
274
  className="bg-transparent border-none"
265
275
  />
266
276
  </div>
267
- <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.long}>
277
+ <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.long}>
268
278
  <PlaylistCard
269
279
  title="Electronic Pulse"
270
280
  description="High-energy electronic and dance music"
@@ -277,7 +287,7 @@ export default function Home() {
277
287
  </div>
278
288
 
279
289
  {/* Track List with Glassmorphism */}
280
- <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.transition.smooth}>
290
+ <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.transition.smooth}>
281
291
  <TrackList
282
292
  tracks={demoPlaylist}
283
293
  currentTrackId={currentTrack?.id}
@@ -296,7 +306,7 @@ export default function Home() {
296
306
 
297
307
  {/* Sidebar with Glassmorphism */}
298
308
  <div className="lg:col-span-1">
299
- <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.lift + " " + animations.transition.smooth}>
309
+ <div className={glass.card + " " + glass.border + " rounded-2xl overflow-hidden " + animations.hover.lift + " " + animations.transition.smooth}>
300
310
  <PlaylistSidebar
301
311
  playlists={[
302
312
  { id: '1', name: 'Liked Songs', trackCount: 47 },
@@ -314,7 +324,7 @@ export default function Home() {
314
324
 
315
325
  {/* Features Overview with Enhanced Glassmorphism */}
316
326
  <ResponsiveGrid columns={gridConfig.columns_1_sm2_md4} gap="lg" className="mb-16">
317
- <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.short}>
327
+ <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.short}>
318
328
  <div className={"mx-auto w-12 h-12" + " " + glass.accent + " " + "rounded-xl flex items-center justify-center mb-4" + " " + animations.hover.glow}>
319
329
  <Zap className="h-6 w-6 text-blue-400" />
320
330
  </div>
@@ -324,7 +334,7 @@ export default function Home() {
324
334
  </p>
325
335
  </div>
326
336
 
327
- <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.medium}>
337
+ <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.medium}>
328
338
  <div className={"mx-auto w-12 h-12" + " " + glass.accent + " " + "rounded-xl flex items-center justify-center mb-4" + " " + animations.hover.glow}>
329
339
  <Shield className="h-6 w-6 text-green-400" />
330
340
  </div>
@@ -334,7 +344,7 @@ export default function Home() {
334
344
  </p>
335
345
  </div>
336
346
 
337
- <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.long}>
347
+ <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.long}>
338
348
  <div className={"mx-auto w-12 h-12" + " " + glass.accent + " " + "rounded-xl flex items-center justify-center mb-4" + " " + animations.hover.glow}>
339
349
  <Rocket className="h-6 w-6 text-purple-400" />
340
350
  </div>
@@ -344,7 +354,7 @@ export default function Home() {
344
354
  </p>
345
355
  </div>
346
356
 
347
- <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.extra}>
357
+ <div className={glass.card + " " + glass.border + " text-center p-6 rounded-2xl " + animations.hover.scale + " " + animations.transition.smooth + " " + animations.delay.extra}>
348
358
  <div className={"mx-auto w-12 h-12" + " " + glass.accent + " " + "rounded-xl flex items-center justify-center mb-4" + " " + animations.hover.glow}>
349
359
  <svg className="h-6 w-6 text-orange-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
350
360
  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" />
@@ -124,26 +124,33 @@ export function Header() {
124
124
  </div>
125
125
  )}
126
126
 
127
- {/* Responsive Header */}
128
- <header className="bg-white dark:bg-gray-800 shadow-md border-b">
129
- <div className="container mx-auto px-4">
127
+ {/* Responsive Header with theme-aware gradient */}
128
+ <header className="bg-background/90 backdrop-blur-md shadow-lg border-b border-border/20 transition-all duration-300 animate-slide-down">
129
+ <div className="absolute inset-0 bg-gradient-to-r from-primary/10 via-transparent to-accent/10"></div>
130
+ <div className="container mx-auto px-4 relative">
130
131
  <div className="flex justify-between items-center h-16">
131
- {/* Logo */}
132
- <Link href="/" className="text-2xl font-bold text-gray-900 dark:text-white flex items-center gap-2">
133
- <Music className="w-6 h-6" />
134
- {projectName}
132
+ {/* Logo with animation */}
133
+ <Link href="/" className="text-2xl font-bold text-foreground flex items-center gap-2 transition-all duration-300 hover:scale-105">
134
+ <Music className="w-6 h-6 transition-transform duration-300 hover:rotate-12 text-primary" />
135
+ <span className="bg-gradient-to-r from-primary to-accent bg-clip-text text-transparent transition-all duration-300">
136
+ {projectName}
137
+ </span>
135
138
  </Link>
136
139
 
137
140
  {/* Desktop Navigation */}
138
141
  <nav className="hidden md:flex items-center gap-6">
139
- {visibleNavItems.map((item) => (
142
+ {visibleNavItems.map((item, index) => (
140
143
  <Link
141
144
  key={item.href}
142
145
  href={item.href}
143
- className="flex items-center gap-2 text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white transition-colors"
146
+ className="group flex items-center gap-2 text-muted-foreground hover:text-primary transition-all duration-300 relative px-3 py-2 rounded-lg hover:bg-gradient-to-r hover:from-primary/10 hover:to-accent/10 animate-fade-in-up"
147
+ style={{ animationDelay: (index * 100) + 'ms' }}
144
148
  >
145
- <item.icon className="w-4 h-4" />
146
- {item.label}
149
+ <item.icon className="w-4 h-4 transition-transform duration-300 group-hover:scale-110 group-hover:rotate-3" />
150
+ <span className="relative">
151
+ {item.label}
152
+ <span className="absolute -bottom-1 left-0 h-0.5 w-0 bg-gradient-to-r from-primary to-accent transition-all duration-300 group-hover:w-full"></span>
153
+ </span>
147
154
  </Link>
148
155
  ))}
149
156
 
@@ -186,3 +186,43 @@
186
186
  .progressive-image.loaded {
187
187
  filter: blur(0);
188
188
  }
189
+
190
+ /* Additional custom animations for enhanced visual effects */
191
+ @keyframes slide-down {
192
+ from {
193
+ opacity: 0;
194
+ transform: translateY(-10px);
195
+ }
196
+ to {
197
+ opacity: 1;
198
+ transform: translateY(0);
199
+ }
200
+ }
201
+
202
+ @keyframes fade-in-up {
203
+ from {
204
+ opacity: 0;
205
+ transform: translateY(10px);
206
+ }
207
+ to {
208
+ opacity: 1;
209
+ transform: translateY(0);
210
+ }
211
+ }
212
+
213
+ .animate-slide-down {
214
+ animation: slide-down 0.6s ease-out;
215
+ }
216
+
217
+ .animate-fade-in-up {
218
+ animation: fade-in-up 0.6s ease-out;
219
+ animation-fill-mode: both;
220
+ }
221
+
222
+ .animation-delay-2000 {
223
+ animation-delay: 2s;
224
+ }
225
+
226
+ .animation-delay-4000 {
227
+ animation-delay: 4s;
228
+ }
@@ -85,7 +85,20 @@ export default function Home() {
85
85
  hapticOnTrigger={true}
86
86
  networkAware={true}
87
87
  >
88
- <main className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800">
88
+ <main className="min-h-screen relative overflow-hidden bg-background">
89
+ {/* Theme-aware gradient background for video streaming */}
90
+ <div className="absolute inset-0 bg-gradient-to-br from-primary/15 via-background to-secondary/15 dark:from-primary/25 dark:via-background dark:to-secondary/25" />
91
+ <div className="absolute inset-0 bg-gradient-to-tl from-accent/10 via-transparent to-secondary/10 dark:from-accent/15 dark:via-transparent dark:to-secondary/15" />
92
+ <div className="absolute inset-0 bg-[radial-gradient(ellipse_at_center_top,_var(--tw-gradient-stops))] from-primary/20 via-transparent to-transparent dark:from-primary/30 dark:via-transparent dark:to-transparent" />
93
+ {/* Animated video-themed particles */}
94
+ <div className="absolute inset-0 opacity-20 dark:opacity-10">
95
+ <div className="absolute top-1/4 right-1/4 w-72 h-72 bg-primary/60 rounded-full mix-blend-multiply filter blur-3xl animate-pulse dark:bg-primary/80"></div>
96
+ <div className="absolute bottom-1/4 left-1/3 w-96 h-96 bg-secondary/60 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-2000 dark:bg-secondary/80"></div>
97
+ <div className="absolute top-1/2 left-1/5 w-64 h-64 bg-accent/60 rounded-full mix-blend-multiply filter blur-3xl animate-pulse animation-delay-4000 dark:bg-accent/80"></div>
98
+ </div>
99
+ {/* Video player overlay effect */}
100
+ <div className="absolute inset-0 bg-gradient-to-b from-transparent via-background/3 to-background/10" />
101
+ <div className="relative z-10">
89
102
  <MobileContainer className="py-16">
90
103
  {/* Auth Status Bar */}
91
104
  <div className="flex justify-end mb-8">