@amelharrak/eldo-ui 1.0.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/css/eldo.css +11683 -0
  4. package/dist/css/eldo.css.map +1 -0
  5. package/dist/css/eldo.min.css +1 -0
  6. package/dist/index.cjs +2 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.mjs +64 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/types/__tests__/Alert.test.d.ts +1 -0
  11. package/dist/types/__tests__/Button.test.d.ts +1 -0
  12. package/dist/types/__tests__/Modal.test.d.ts +1 -0
  13. package/dist/types/components/Accordion.d.ts +15 -0
  14. package/dist/types/components/Alert.d.ts +15 -0
  15. package/dist/types/components/Avatar.d.ts +10 -0
  16. package/dist/types/components/Badge.d.ts +7 -0
  17. package/dist/types/components/Box.d.ts +27 -0
  18. package/dist/types/components/Breadcrumb.d.ts +15 -0
  19. package/dist/types/components/Button.d.ts +16 -0
  20. package/dist/types/components/ButtonGroup.d.ts +7 -0
  21. package/dist/types/components/Card.d.ts +15 -0
  22. package/dist/types/components/Carousel.d.ts +21 -0
  23. package/dist/types/components/Checkbox.d.ts +10 -0
  24. package/dist/types/components/Col.d.ts +12 -0
  25. package/dist/types/components/Collapse.d.ts +12 -0
  26. package/dist/types/components/Container.d.ts +8 -0
  27. package/dist/types/components/Dropdown.d.ts +19 -0
  28. package/dist/types/components/FileUpload.d.ts +13 -0
  29. package/dist/types/components/Input.d.ts +20 -0
  30. package/dist/types/components/InputOTP.d.ts +13 -0
  31. package/dist/types/components/ListGroup.d.ts +20 -0
  32. package/dist/types/components/Modal.d.ts +13 -0
  33. package/dist/types/components/Navbar.d.ts +17 -0
  34. package/dist/types/components/NumberInput.d.ts +15 -0
  35. package/dist/types/components/Offcanvas.d.ts +15 -0
  36. package/dist/types/components/Pagination.d.ts +14 -0
  37. package/dist/types/components/Popover.d.ts +14 -0
  38. package/dist/types/components/Progress.d.ts +11 -0
  39. package/dist/types/components/Radio.d.ts +11 -0
  40. package/dist/types/components/Row.d.ts +7 -0
  41. package/dist/types/components/Scrollspy.d.ts +13 -0
  42. package/dist/types/components/Select.d.ts +16 -0
  43. package/dist/types/components/Slider.d.ts +16 -0
  44. package/dist/types/components/Sonner.d.ts +21 -0
  45. package/dist/types/components/Spinner.d.ts +11 -0
  46. package/dist/types/components/Stat.d.ts +24 -0
  47. package/dist/types/components/Switch.d.ts +14 -0
  48. package/dist/types/components/Tabs.d.ts +20 -0
  49. package/dist/types/components/Text.d.ts +13 -0
  50. package/dist/types/components/Timeline.d.ts +41 -0
  51. package/dist/types/components/Toast.d.ts +17 -0
  52. package/dist/types/components/Tooltip.d.ts +12 -0
  53. package/dist/types/index.d.ts +40 -0
  54. package/package.json +106 -0
  55. package/setup.js +260 -0
  56. package/src/scss/abstracts/_functions.scss +19 -0
  57. package/src/scss/abstracts/_mixins.scss +33 -0
  58. package/src/scss/abstracts/_variables.scss +119 -0
  59. package/src/scss/base/_reset.scss +24 -0
  60. package/src/scss/base/_transitions.scss +10 -0
  61. package/src/scss/base/_typography.scss +50 -0
  62. package/src/scss/components/_accordion.scss +238 -0
  63. package/src/scss/components/_alert.scss +85 -0
  64. package/src/scss/components/_alerts.scss +137 -0
  65. package/src/scss/components/_avatar.scss +184 -0
  66. package/src/scss/components/_badge.scss +70 -0
  67. package/src/scss/components/_blockquote.scss +41 -0
  68. package/src/scss/components/_breadcrumb.scss +39 -0
  69. package/src/scss/components/_button-group.scss +43 -0
  70. package/src/scss/components/_button.scss +92 -0
  71. package/src/scss/components/_buttons.scss +66 -0
  72. package/src/scss/components/_calendar.scss +520 -0
  73. package/src/scss/components/_card.scss +52 -0
  74. package/src/scss/components/_cards.scss +123 -0
  75. package/src/scss/components/_carousel.scss +490 -0
  76. package/src/scss/components/_charts.scss +29 -0
  77. package/src/scss/components/_checkbox.scss +194 -0
  78. package/src/scss/components/_code.scss +70 -0
  79. package/src/scss/components/_collapse.scss +13 -0
  80. package/src/scss/components/_combobox.scss +239 -0
  81. package/src/scss/components/_date-picker.scss +102 -0
  82. package/src/scss/components/_divider.scss +55 -0
  83. package/src/scss/components/_dropdown.scss +122 -0
  84. package/src/scss/components/_file-upload.scss +233 -0
  85. package/src/scss/components/_floating-labels.scss +247 -0
  86. package/src/scss/components/_form-select.scss +49 -0
  87. package/src/scss/components/_forms.scss +41 -0
  88. package/src/scss/components/_index.scss +7 -0
  89. package/src/scss/components/_input-otp.scss +338 -0
  90. package/src/scss/components/_list-group.scss +95 -0
  91. package/src/scss/components/_modal.scss +166 -0
  92. package/src/scss/components/_nav.scss +175 -0
  93. package/src/scss/components/_navbar.scss +228 -0
  94. package/src/scss/components/_number-input.scss +67 -0
  95. package/src/scss/components/_offcanvas.scss +123 -0
  96. package/src/scss/components/_pagination.scss +64 -0
  97. package/src/scss/components/_placeholders.scss +52 -0
  98. package/src/scss/components/_popovers.scss +69 -0
  99. package/src/scss/components/_progress.scss +90 -0
  100. package/src/scss/components/_range.scss +82 -0
  101. package/src/scss/components/_scrollspy.scss +239 -0
  102. package/src/scss/components/_skeleton.scss +108 -0
  103. package/src/scss/components/_slider.scss +95 -0
  104. package/src/scss/components/_snippet.scss +79 -0
  105. package/src/scss/components/_spinners.scss +137 -0
  106. package/src/scss/components/_stat.scss +42 -0
  107. package/src/scss/components/_stepper.scss +104 -0
  108. package/src/scss/components/_switch.scss +57 -0
  109. package/src/scss/components/_table.scss +109 -0
  110. package/src/scss/components/_tag.scss +60 -0
  111. package/src/scss/components/_tags-input.scss +60 -0
  112. package/src/scss/components/_timeline.scss +238 -0
  113. package/src/scss/components/_toasts.scss +75 -0
  114. package/src/scss/components/_tooltips.scss +50 -0
  115. package/src/scss/components/_tree-view.scss +72 -0
  116. package/src/scss/components/_user.scss +26 -0
  117. package/src/scss/docs/_examples.scss +148 -0
  118. package/src/scss/docs/_layout.scss +251 -0
  119. package/src/scss/docs/_search.scss +141 -0
  120. package/src/scss/eldo.scss +74 -0
  121. package/src/scss/layout/_container.scss +37 -0
  122. package/src/scss/layout/_grid.scss +49 -0
  123. package/src/scss/pages/_landing-config.scss +135 -0
  124. package/src/scss/pages/_landing-features-enhanced.scss +165 -0
  125. package/src/scss/pages/_landing-hero-enhanced.scss +427 -0
  126. package/src/scss/pages/_landing-setup.scss +264 -0
  127. package/src/scss/pages/_landing.scss +1828 -0
  128. package/src/scss/utilities/_api.scss +66 -0
  129. package/src/scss/utilities/_colors.scss +32 -0
  130. package/src/scss/utilities/_display.scss +70 -0
  131. package/src/scss/utilities/_glass.scss +32 -0
  132. package/src/scss/utilities/_helpers.scss +16 -0
  133. package/src/scss/utilities/_map.scss +224 -0
  134. package/src/scss/utilities/_spacing.scss +58 -0
@@ -0,0 +1,1828 @@
1
+ // Modern Landing Page Styles
2
+ @use "sass:color";
3
+
4
+ .landing-page {
5
+ font-family: 'Inter', system-ui, -apple-system, sans-serif;
6
+ -webkit-font-smoothing: antialiased;
7
+ -moz-osx-font-smoothing: grayscale;
8
+ background: #ffffff;
9
+ color: #1e293b;
10
+
11
+ // ===== Navigation =====
12
+ .navbar {
13
+ padding: 0;
14
+ backdrop-filter: blur(10px);
15
+ background: rgba(255, 255, 255, 0.98) !important;
16
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
17
+
18
+ .container {
19
+ padding-top: 0.75rem;
20
+ padding-bottom: 0.75rem;
21
+ }
22
+
23
+ .navbar-brand {
24
+ font-size: 1.25rem;
25
+ color: #1e293b;
26
+ font-weight: 700;
27
+
28
+ .logo-icon {
29
+ width: 40px;
30
+ height: 40px;
31
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
32
+ border-radius: 10px;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ color: white;
37
+ font-size: 1.25rem;
38
+ }
39
+ }
40
+
41
+ .navbar-toggler {
42
+ &:focus {
43
+ box-shadow: none;
44
+ }
45
+ }
46
+
47
+ .navbar-nav {
48
+ gap: 0.5rem;
49
+
50
+ .nav-link {
51
+ color: #64748b;
52
+ font-weight: 500;
53
+ padding: 0.5rem 1rem;
54
+ transition: all 0.2s;
55
+ border-radius: 8px;
56
+
57
+ &:hover {
58
+ color: #6366f1;
59
+ background: #f8fafc;
60
+ }
61
+
62
+ &.active {
63
+ color: #6366f1;
64
+ background: #ede9fe;
65
+ }
66
+ }
67
+ }
68
+
69
+ .btn-link {
70
+ font-weight: 500;
71
+ padding: 0.5rem 1rem;
72
+ transition: all 0.2s;
73
+ border-radius: 8px;
74
+
75
+ &:hover {
76
+ background: #f8fafc;
77
+ }
78
+ }
79
+
80
+ .btn-primary {
81
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
82
+ border: none;
83
+ padding: 0.5rem 1.5rem;
84
+ font-weight: 600;
85
+ border-radius: 8px;
86
+ transition: all 0.3s ease;
87
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2);
88
+
89
+ &:hover {
90
+ transform: translateY(-3px);
91
+ box-shadow: 0 12px 28px rgba(99, 102, 241, 0.35);
92
+ background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
93
+ }
94
+
95
+ &:active {
96
+ transform: translateY(-1px);
97
+ }
98
+ }
99
+
100
+ // Desktop styles - force horizontal layout
101
+ @media (min-width: 992px) {
102
+ .navbar-collapse {
103
+ display: flex !important;
104
+ flex-basis: auto;
105
+ }
106
+
107
+ .navbar-toggler {
108
+ display: none !important;
109
+ }
110
+
111
+ .navbar-nav {
112
+ flex-direction: row !important;
113
+ }
114
+ }
115
+
116
+ // Mobile styles
117
+ @media (max-width: 991px) {
118
+ .navbar-collapse {
119
+ margin-top: 1rem;
120
+ padding: 1rem;
121
+ background: #f8fafc;
122
+ border-radius: 12px;
123
+
124
+ .navbar-nav {
125
+ gap: 0.25rem;
126
+ }
127
+
128
+ .nav-link {
129
+ padding: 0.75rem 1rem;
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ // ===== Hero Section =====
136
+ .hero-section {
137
+ position: relative;
138
+ overflow: hidden;
139
+
140
+ .hero-gradient {
141
+ position: absolute;
142
+ top: -50%;
143
+ right: -20%;
144
+ width: 1000px;
145
+ height: 1000px;
146
+ background: radial-gradient(circle, rgba(99, 102, 241, 0.1) 0%, transparent 70%);
147
+ pointer-events: none;
148
+ }
149
+
150
+ .badge-pill {
151
+ display: inline-flex;
152
+ align-items: center;
153
+ gap: 0.5rem;
154
+ background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%);
155
+ color: #6366f1;
156
+ padding: 0.5rem 1rem;
157
+ border-radius: 50px;
158
+ font-weight: 600;
159
+ font-size: 0.875rem;
160
+ }
161
+
162
+ .hero-title {
163
+ font-size: clamp(2.5rem, 5vw, 4rem);
164
+ font-weight: 800;
165
+ line-height: 1.1;
166
+ letter-spacing: -0.02em;
167
+ color: #0f172a;
168
+
169
+ .gradient-text {
170
+ background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);
171
+ -webkit-background-clip: text;
172
+ -webkit-text-fill-color: transparent;
173
+ background-clip: text;
174
+ font-weight: 900;
175
+ }
176
+ }
177
+
178
+ .hero-subtitle {
179
+ font-size: 1.25rem;
180
+ line-height: 1.7;
181
+ color: #64748b;
182
+ max-width: 600px;
183
+ }
184
+
185
+ .install-command {
186
+ display: inline-flex;
187
+ align-items: center;
188
+ gap: 1rem;
189
+ background: #0f172a;
190
+ color: #e2e8f0;
191
+ padding: 1rem 1.5rem;
192
+ border-radius: 12px;
193
+ font-family: 'JetBrains Mono', monospace;
194
+ font-size: 0.9rem;
195
+
196
+ code {
197
+ color: #e2e8f0;
198
+ }
199
+
200
+ .copy-btn {
201
+ background: rgba(255, 255, 255, 0.1);
202
+ border: none;
203
+ color: #94a3b8;
204
+ padding: 0.5rem;
205
+ border-radius: 6px;
206
+ cursor: pointer;
207
+ transition: all 0.2s;
208
+
209
+ &:hover {
210
+ background: rgba(255, 255, 255, 0.2);
211
+ color: white;
212
+ }
213
+ }
214
+ }
215
+
216
+ .hero-visual {
217
+ position: relative;
218
+
219
+ .component-preview-card {
220
+ background: white;
221
+ border-radius: 20px;
222
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
223
+ overflow: hidden;
224
+ border: 1px solid #e2e8f0;
225
+
226
+ .card-header {
227
+ background: #f8fafc;
228
+ padding: 1rem 1.5rem;
229
+ border-bottom: 1px solid #e2e8f0;
230
+ display: flex;
231
+ align-items: center;
232
+ gap: 1rem;
233
+
234
+ .dots {
235
+ display: flex;
236
+ gap: 0.5rem;
237
+
238
+ span {
239
+ width: 12px;
240
+ height: 12px;
241
+ border-radius: 50%;
242
+ background: #cbd5e1;
243
+
244
+ &:nth-child(1) {
245
+ background: #ef4444;
246
+ }
247
+
248
+ &:nth-child(2) {
249
+ background: #f59e0b;
250
+ }
251
+
252
+ &:nth-child(3) {
253
+ background: #10b981;
254
+ }
255
+ }
256
+ }
257
+
258
+ .header-title {
259
+ font-size: 0.875rem;
260
+ color: #64748b;
261
+ font-weight: 500;
262
+ }
263
+ }
264
+
265
+ .card-body {
266
+ padding: 2rem;
267
+
268
+ // Bar Chart Styles
269
+ .chart-container {
270
+ height: 200px;
271
+ display: flex;
272
+ align-items: flex-end;
273
+ justify-content: center;
274
+
275
+ .chart-bars {
276
+ display: flex;
277
+ align-items: flex-end;
278
+ gap: 1.5rem;
279
+ height: 100%;
280
+ width: 100%;
281
+ justify-content: space-around;
282
+ }
283
+
284
+ .chart-bar {
285
+ flex: 1;
286
+ display: flex;
287
+ flex-direction: column;
288
+ align-items: center;
289
+ justify-content: flex-end;
290
+ gap: 0.5rem;
291
+
292
+ .bar-fill {
293
+ width: 100%;
294
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
295
+ border-radius: 8px 8px 0 0;
296
+ height: 100%;
297
+ transition: all 0.3s;
298
+
299
+ &:hover {
300
+ opacity: 0.8;
301
+ }
302
+ }
303
+
304
+ .bar-label {
305
+ font-size: 0.75rem;
306
+ color: #64748b;
307
+ font-weight: 500;
308
+ }
309
+ }
310
+ }
311
+
312
+ .avatar-circle {
313
+ width: 48px;
314
+ height: 48px;
315
+ border-radius: 50%;
316
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
317
+ display: flex;
318
+ align-items: center;
319
+ justify-content: center;
320
+ color: white;
321
+ font-size: 1.5rem;
322
+ }
323
+ }
324
+ }
325
+
326
+ .floating-stat-card {
327
+ position: absolute;
328
+ bottom: 2rem;
329
+ right: -2rem;
330
+ background: white;
331
+ padding: 1.5rem;
332
+ border-radius: 16px;
333
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
334
+ border: 1px solid #e2e8f0;
335
+
336
+ .stat-icon {
337
+ width: 48px;
338
+ height: 48px;
339
+ border-radius: 12px;
340
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
341
+ display: flex;
342
+ align-items: center;
343
+ justify-content: center;
344
+ color: white;
345
+ font-size: 1.5rem;
346
+ }
347
+
348
+ .stat-value {
349
+ font-size: 1.5rem;
350
+ font-weight: 700;
351
+ color: #0f172a;
352
+ }
353
+
354
+ .stat-label {
355
+ font-size: 0.875rem;
356
+ color: #64748b;
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ // ===== Stats Section =====
363
+ .stats-section {
364
+ padding: 3rem 0;
365
+ background: #ffffff;
366
+
367
+ .stat-card {
368
+ background: white;
369
+ border: 1px solid #e2e8f0;
370
+ border-radius: 16px;
371
+ padding: 2rem 1.5rem;
372
+ transition: all 0.3s ease;
373
+ height: 100%;
374
+
375
+ &:hover {
376
+ border-color: #cbd5e1;
377
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.08);
378
+ transform: translateY(-2px);
379
+ }
380
+ }
381
+
382
+ .stat-item {
383
+ text-align: center;
384
+
385
+ .stat-icon-badge {
386
+ width: 56px;
387
+ height: 56px;
388
+ margin: 0 auto 1rem;
389
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
390
+ border-radius: 50%;
391
+ display: flex;
392
+ align-items: center;
393
+ justify-content: center;
394
+ color: white;
395
+ font-size: 1.5rem;
396
+ }
397
+
398
+ .stat-number {
399
+ font-size: 2.5rem;
400
+ font-weight: 800;
401
+ color: #0f172a;
402
+ line-height: 1;
403
+ margin-bottom: 0.5rem;
404
+ }
405
+
406
+ .stat-description {
407
+ font-size: 0.875rem;
408
+ color: #64748b;
409
+ font-weight: 500;
410
+ }
411
+ }
412
+ }
413
+
414
+ // ===== Features Section =====
415
+ .features-section {
416
+ padding: 6rem 0;
417
+
418
+ .section-badge {
419
+ display: inline-block;
420
+ background: linear-gradient(135deg, #ede9fe 0%, #ddd6fe 100%);
421
+ color: #6366f1;
422
+ padding: 0.5rem 1rem;
423
+ border-radius: 50px;
424
+ font-weight: 600;
425
+ font-size: 0.875rem;
426
+ }
427
+
428
+ .section-title {
429
+ font-size: clamp(2rem, 4vw, 3rem);
430
+ font-weight: 800;
431
+ color: #0f172a;
432
+ letter-spacing: -0.02em;
433
+ }
434
+
435
+ .section-subtitle {
436
+ font-size: 1.125rem;
437
+ color: #64748b;
438
+ max-width: 600px;
439
+ margin: 0 auto;
440
+ }
441
+
442
+ .feature-card {
443
+ padding: 2rem;
444
+ border-radius: 16px;
445
+ background: white;
446
+ border: 1px solid #e2e8f0;
447
+ transition: all 0.3s;
448
+ height: 100%;
449
+
450
+ &:hover {
451
+ transform: translateY(-4px);
452
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
453
+ border-color: #c7d2fe;
454
+ }
455
+
456
+ .feature-icon {
457
+ width: 56px;
458
+ height: 56px;
459
+ border-radius: 12px;
460
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
461
+ display: flex;
462
+ align-items: center;
463
+ justify-content: center;
464
+ color: white;
465
+ font-size: 1.75rem;
466
+ margin-bottom: 1.5rem;
467
+ }
468
+
469
+ .feature-title {
470
+ font-size: 1.25rem;
471
+ font-weight: 700;
472
+ color: #0f172a;
473
+ margin-bottom: 0.75rem;
474
+ }
475
+
476
+ .feature-description {
477
+ color: #64748b;
478
+ line-height: 1.6;
479
+ margin: 0;
480
+ }
481
+ }
482
+ }
483
+
484
+ // ===== Components Section =====
485
+ .components-section {
486
+ padding: 6rem 0;
487
+ background: #f8fafc;
488
+
489
+ .component-card {
490
+ background: white;
491
+ border-radius: 16px;
492
+ overflow: hidden;
493
+ border: 1px solid #e2e8f0;
494
+ transition: all 0.3s ease;
495
+ height: 100%;
496
+ display: flex;
497
+ flex-direction: column;
498
+
499
+ &:hover {
500
+ transform: translateY(-4px);
501
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
502
+ border-color: #c7d2fe;
503
+ }
504
+
505
+ .component-header {
506
+ padding: 1.5rem;
507
+ display: flex;
508
+ align-items: flex-start;
509
+ gap: 1rem;
510
+ border-bottom: 1px solid #e2e8f0;
511
+
512
+ .component-icon {
513
+ width: 48px;
514
+ height: 48px;
515
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
516
+ border-radius: 12px;
517
+ display: flex;
518
+ align-items: center;
519
+ justify-content: center;
520
+ color: white;
521
+ font-size: 1.25rem;
522
+ flex-shrink: 0;
523
+ }
524
+
525
+ .component-title {
526
+ font-size: 1.125rem;
527
+ font-weight: 700;
528
+ color: #0f172a;
529
+ margin-bottom: 0.25rem;
530
+ }
531
+
532
+ .component-description {
533
+ color: #64748b;
534
+ margin: 0;
535
+ font-size: 0.875rem;
536
+ line-height: 1.5;
537
+ }
538
+ }
539
+
540
+ .component-preview {
541
+ padding: 2rem;
542
+ background: linear-gradient(135deg, #fafbfc 0%, #f8fafc 100%);
543
+ flex: 1;
544
+ display: flex;
545
+ align-items: center;
546
+ justify-content: center;
547
+ position: relative;
548
+
549
+ // Subtle pattern overlay
550
+ &::before {
551
+ content: '';
552
+ position: absolute;
553
+ top: 0;
554
+ left: 0;
555
+ right: 0;
556
+ bottom: 0;
557
+ background-image: radial-gradient(circle at 1px 1px, rgba(99, 102, 241, 0.03) 1px, transparent 0);
558
+ background-size: 20px 20px;
559
+ pointer-events: none;
560
+ }
561
+
562
+ >* {
563
+ position: relative;
564
+ z-index: 1;
565
+ width: 100%;
566
+ }
567
+ }
568
+
569
+ // Legacy support for old component-info class
570
+ .component-info {
571
+ padding: 1.5rem;
572
+
573
+ h4 {
574
+ font-size: 1.125rem;
575
+ font-weight: 700;
576
+ color: #0f172a;
577
+ margin-bottom: 0.5rem;
578
+ }
579
+
580
+ p {
581
+ color: #64748b;
582
+ margin: 0;
583
+ font-size: 0.875rem;
584
+ }
585
+ }
586
+ }
587
+ }
588
+
589
+ // ===== Code Section =====
590
+ .code-section {
591
+ padding: 6rem 0;
592
+
593
+ .feature-list {
594
+ display: flex;
595
+ flex-direction: column;
596
+ gap: 1rem;
597
+
598
+ .feature-list-item {
599
+ display: flex;
600
+ align-items: center;
601
+ gap: 0.75rem;
602
+ font-size: 1rem;
603
+ color: #475569;
604
+
605
+ i {
606
+ font-size: 1.25rem;
607
+ }
608
+ }
609
+ }
610
+
611
+ .code-example-card {
612
+ background: #0f172a;
613
+ border-radius: 16px;
614
+ overflow: hidden;
615
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
616
+
617
+ .code-header {
618
+ background: #1e293b;
619
+ padding: 1rem 1.5rem;
620
+ display: flex;
621
+ align-items: center;
622
+ gap: 1rem;
623
+
624
+ .dots {
625
+ display: flex;
626
+ gap: 0.5rem;
627
+
628
+ span {
629
+ width: 12px;
630
+ height: 12px;
631
+ border-radius: 50%;
632
+ background: #334155;
633
+
634
+ &:nth-child(1) {
635
+ background: #ef4444;
636
+ }
637
+
638
+ &:nth-child(2) {
639
+ background: #f59e0b;
640
+ }
641
+
642
+ &:nth-child(3) {
643
+ background: #10b981;
644
+ }
645
+ }
646
+ }
647
+
648
+ .code-title {
649
+ font-size: 0.875rem;
650
+ color: #94a3b8;
651
+ font-family: 'JetBrains Mono', monospace;
652
+ }
653
+ }
654
+
655
+ .code-body {
656
+ padding: 2rem;
657
+
658
+ pre {
659
+ margin: 0;
660
+
661
+ code {
662
+ font-family: 'JetBrains Mono', monospace;
663
+ font-size: 0.875rem;
664
+ line-height: 1.7;
665
+ color: #e2e8f0;
666
+ }
667
+ }
668
+ }
669
+ }
670
+ }
671
+
672
+ // ===== CTA Section =====
673
+ .cta-section {
674
+ padding: 6rem 0;
675
+ position: relative;
676
+
677
+ .cta-card {
678
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
679
+ padding: 4rem;
680
+ border-radius: 24px;
681
+ color: white;
682
+ position: relative;
683
+ overflow: hidden;
684
+
685
+ // Background pattern
686
+ &::before {
687
+ content: '';
688
+ position: absolute;
689
+ top: 0;
690
+ left: 0;
691
+ right: 0;
692
+ bottom: 0;
693
+ background-image:
694
+ radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
695
+ radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
696
+ pointer-events: none;
697
+ }
698
+
699
+ .cta-title {
700
+ font-size: clamp(1.75rem, 3vw, 2.5rem);
701
+ font-weight: 800;
702
+ color: white;
703
+ position: relative;
704
+ z-index: 1;
705
+ }
706
+
707
+ .cta-subtitle {
708
+ font-size: 1.125rem;
709
+ color: rgba(255, 255, 255, 0.9);
710
+ position: relative;
711
+ z-index: 1;
712
+ }
713
+
714
+ .btn-light {
715
+ background: white;
716
+ color: #6366f1;
717
+ font-weight: 600;
718
+ padding: 0.875rem 2rem;
719
+ border-radius: 10px;
720
+ transition: all 0.3s ease;
721
+ position: relative;
722
+ z-index: 1;
723
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
724
+
725
+ &:hover {
726
+ transform: translateY(-3px);
727
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
728
+ background: #f8fafc;
729
+ }
730
+ }
731
+ }
732
+ }
733
+
734
+ // ===== Footer =====
735
+ .footer {
736
+ padding: 4rem 0 2rem;
737
+ background: #0f172a;
738
+ color: #94a3b8;
739
+
740
+ .logo-icon {
741
+ width: 40px;
742
+ height: 40px;
743
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
744
+ border-radius: 10px;
745
+ display: flex;
746
+ align-items: center;
747
+ justify-content: center;
748
+ color: white;
749
+ font-size: 1.25rem;
750
+ }
751
+
752
+ .social-links {
753
+ display: flex;
754
+ gap: 1rem;
755
+ margin-top: 1rem;
756
+
757
+ a {
758
+ width: 40px;
759
+ height: 40px;
760
+ border-radius: 8px;
761
+ background: rgba(255, 255, 255, 0.05);
762
+ display: flex;
763
+ align-items: center;
764
+ justify-content: center;
765
+ color: #94a3b8;
766
+ transition: all 0.2s;
767
+
768
+ &:hover {
769
+ background: rgba(99, 102, 241, 0.2);
770
+ color: #6366f1;
771
+ }
772
+ }
773
+ }
774
+
775
+ .footer-title {
776
+ font-weight: 700;
777
+ color: white;
778
+ margin-bottom: 1rem;
779
+ font-size: 0.875rem;
780
+ }
781
+
782
+ .footer-links {
783
+ list-style: none;
784
+ padding: 0;
785
+ margin: 0;
786
+
787
+ li {
788
+ margin-bottom: 0.75rem;
789
+
790
+ a {
791
+ color: #94a3b8;
792
+ text-decoration: none;
793
+ font-size: 0.875rem;
794
+ transition: color 0.2s;
795
+
796
+ &:hover {
797
+ color: #6366f1;
798
+ }
799
+ }
800
+ }
801
+ }
802
+
803
+ .footer-bottom {
804
+ margin-top: 3rem;
805
+ padding-top: 2rem;
806
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
807
+ text-align: center;
808
+ }
809
+ }
810
+
811
+ // ===== Utilities =====
812
+ .btn {
813
+ border-radius: 8px;
814
+ font-weight: 600;
815
+ transition: all 0.2s;
816
+
817
+ &:hover {
818
+ transform: translateY(-2px);
819
+ }
820
+ }
821
+
822
+ .btn-primary {
823
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
824
+ border: none;
825
+
826
+ &:hover {
827
+ box-shadow: 0 10px 25px rgba(99, 102, 241, 0.3);
828
+ }
829
+ }
830
+
831
+ .btn-outline-primary {
832
+ border: 2px solid #6366f1;
833
+ color: #6366f1;
834
+ background: transparent;
835
+
836
+ &:hover {
837
+ background: #6366f1;
838
+ color: white;
839
+ }
840
+ }
841
+ } // ===== Configuration Section =====
842
+ .configuration-section {
843
+ padding: 6rem 0;
844
+ background: #f8fafc;
845
+
846
+ .config-card {
847
+ background: white;
848
+ border-radius: 16px;
849
+ padding: 2rem;
850
+ border: 1px solid #e2e8f0;
851
+ transition: all 0.3s ease;
852
+ height: 100%;
853
+ display: flex;
854
+ flex-direction: column;
855
+
856
+ &:hover {
857
+ transform: translateY(-4px);
858
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
859
+ border-color: #c7d2fe;
860
+ }
861
+
862
+ .config-header {
863
+ display: flex;
864
+ align-items: flex-start;
865
+ gap: 1rem;
866
+ margin-bottom: 1.5rem;
867
+
868
+ .config-icon {
869
+ width: 48px;
870
+ height: 48px;
871
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
872
+ border-radius: 12px;
873
+ display: flex;
874
+ align-items: center;
875
+ justify-content: center;
876
+ color: white;
877
+ font-size: 1.25rem;
878
+ flex-shrink: 0;
879
+ }
880
+
881
+ .config-title {
882
+ font-size: 1.25rem;
883
+ font-weight: 700;
884
+ color: #0f172a;
885
+ margin-bottom: 0.25rem;
886
+ }
887
+
888
+ .config-description {
889
+ color: #64748b;
890
+ margin: 0;
891
+ font-size: 0.875rem;
892
+ }
893
+ }
894
+
895
+ .config-code {
896
+ flex: 1;
897
+ background: #0f172a;
898
+ border-radius: 12px;
899
+ padding: 1.5rem;
900
+ margin-bottom: 1.5rem;
901
+ overflow-x: auto;
902
+
903
+ pre {
904
+ margin: 0;
905
+
906
+ code {
907
+ font-family: 'JetBrains Mono', monospace;
908
+ font-size: 0.875rem;
909
+ line-height: 1.7;
910
+ color: #e2e8f0;
911
+ }
912
+ }
913
+ }
914
+
915
+ .config-features {
916
+ display: flex;
917
+ flex-direction: column;
918
+ gap: 0.75rem;
919
+
920
+ .feature-item {
921
+ display: flex;
922
+ align-items: center;
923
+ gap: 0.5rem;
924
+ font-size: 0.875rem;
925
+ color: #475569;
926
+
927
+ i {
928
+ font-size: 1rem;
929
+ }
930
+ }
931
+ }
932
+ }
933
+
934
+ .config-option {
935
+ text-align: center;
936
+ padding: 2rem 1.5rem;
937
+ background: white;
938
+ border-radius: 12px;
939
+ border: 1px solid #e2e8f0;
940
+ transition: all 0.3s ease;
941
+
942
+ &:hover {
943
+ transform: translateY(-2px);
944
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
945
+ border-color: #c7d2fe;
946
+ }
947
+
948
+ .option-icon {
949
+ width: 56px;
950
+ height: 56px;
951
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
952
+ border-radius: 12px;
953
+ display: flex;
954
+ align-items: center;
955
+ justify-content: center;
956
+ margin: 0 auto 1rem;
957
+ color: #6366f1;
958
+ font-size: 1.5rem;
959
+ }
960
+
961
+ .option-title {
962
+ font-size: 1.125rem;
963
+ font-weight: 700;
964
+ color: #0f172a;
965
+ margin-bottom: 0.5rem;
966
+ }
967
+
968
+ .option-description {
969
+ color: #64748b;
970
+ margin: 0;
971
+ font-size: 0.875rem;
972
+ line-height: 1.5;
973
+ }
974
+ }
975
+ } // ===== Interactive Setup Section =====
976
+ .setup-section {
977
+ padding: 6rem 0;
978
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
979
+
980
+ .setup-card {
981
+ background: white;
982
+ border-radius: 20px;
983
+ padding: 3rem;
984
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
985
+ border: 1px solid #e2e8f0;
986
+ }
987
+
988
+ .setup-header {
989
+ display: flex;
990
+ justify-content: space-between;
991
+ align-items: center;
992
+ margin-bottom: 2rem;
993
+ padding-bottom: 1.5rem;
994
+ border-bottom: 2px solid #e2e8f0;
995
+
996
+ .setup-title {
997
+ font-size: 1.5rem;
998
+ font-weight: 800;
999
+ color: #0f172a;
1000
+ margin: 0;
1001
+ }
1002
+
1003
+ .setup-actions {
1004
+ display: flex;
1005
+ gap: 0.75rem;
1006
+ }
1007
+ }
1008
+
1009
+ .components-grid {
1010
+ display: grid;
1011
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
1012
+ gap: 1rem;
1013
+ margin-bottom: 2rem;
1014
+
1015
+ .component-checkbox {
1016
+ input[type="checkbox"] {
1017
+ display: none;
1018
+
1019
+ &:checked+label {
1020
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
1021
+ color: white;
1022
+ border-color: #6366f1;
1023
+
1024
+ .comp-size {
1025
+ color: rgba(255, 255, 255, 0.9);
1026
+ }
1027
+
1028
+ &::before {
1029
+ content: '✓ ';
1030
+ font-weight: bold;
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ label {
1036
+ display: flex;
1037
+ justify-content: space-between;
1038
+ align-items: center;
1039
+ padding: 1rem 1.25rem;
1040
+ border: 2px solid #e2e8f0;
1041
+ border-radius: 12px;
1042
+ cursor: pointer;
1043
+ transition: all 0.3s ease;
1044
+ background: white;
1045
+
1046
+ &:hover {
1047
+ border-color: #6366f1;
1048
+ transform: translateY(-2px);
1049
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
1050
+ }
1051
+
1052
+ .comp-name {
1053
+ font-weight: 600;
1054
+ font-size: 0.9375rem;
1055
+ }
1056
+
1057
+ .comp-size {
1058
+ font-size: 0.8125rem;
1059
+ color: #64748b;
1060
+ font-weight: 500;
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+
1066
+ .bundle-summary {
1067
+ display: grid;
1068
+ grid-template-columns: repeat(3, 1fr);
1069
+ gap: 1.5rem;
1070
+ padding: 2rem;
1071
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
1072
+ border-radius: 12px;
1073
+ margin-bottom: 2rem;
1074
+
1075
+ .summary-item {
1076
+ text-align: center;
1077
+
1078
+ .summary-label {
1079
+ display: block;
1080
+ font-size: 0.875rem;
1081
+ color: #64748b;
1082
+ margin-bottom: 0.5rem;
1083
+ }
1084
+
1085
+ .summary-value {
1086
+ display: block;
1087
+ font-size: 1.75rem;
1088
+ font-weight: 800;
1089
+ color: #0f172a;
1090
+ }
1091
+ }
1092
+ }
1093
+
1094
+ .bundle-progress {
1095
+ margin-bottom: 2rem;
1096
+
1097
+ .progress-label {
1098
+ display: flex;
1099
+ justify-content: space-between;
1100
+ margin-bottom: 0.5rem;
1101
+ font-weight: 600;
1102
+ color: #0f172a;
1103
+ }
1104
+
1105
+ .progress {
1106
+ border-radius: 8px;
1107
+ background: #e2e8f0;
1108
+ overflow: hidden;
1109
+
1110
+ .progress-bar {
1111
+ transition: width 0.5s ease, background-color 0.3s ease;
1112
+ }
1113
+ }
1114
+
1115
+ .progress-hint {
1116
+ margin-top: 0.5rem;
1117
+ text-align: right;
1118
+ }
1119
+ }
1120
+
1121
+ .generated-code {
1122
+ background: #0f172a;
1123
+ border-radius: 12px;
1124
+ overflow: hidden;
1125
+ margin-bottom: 2rem;
1126
+
1127
+ .code-tabs {
1128
+ display: flex;
1129
+ background: #1e293b;
1130
+ border-bottom: 1px solid #334155;
1131
+
1132
+ .code-tab {
1133
+ flex: 1;
1134
+ padding: 1rem;
1135
+ background: transparent;
1136
+ border: none;
1137
+ color: #94a3b8;
1138
+ font-weight: 600;
1139
+ cursor: pointer;
1140
+ transition: all 0.3s ease;
1141
+ border-bottom: 3px solid transparent;
1142
+
1143
+ &:hover {
1144
+ color: #e2e8f0;
1145
+ background: rgba(99, 102, 241, 0.1);
1146
+ }
1147
+
1148
+ &.active {
1149
+ color: #6366f1;
1150
+ border-bottom-color: #6366f1;
1151
+ background: rgba(99, 102, 241, 0.05);
1152
+ }
1153
+ }
1154
+ }
1155
+
1156
+ .code-content {
1157
+ position: relative;
1158
+
1159
+ .code-panel {
1160
+ display: none;
1161
+
1162
+ &.active {
1163
+ display: block;
1164
+ }
1165
+
1166
+ .code-header {
1167
+ display: flex;
1168
+ justify-content: space-between;
1169
+ align-items: center;
1170
+ padding: 1rem 1.5rem;
1171
+ background: #1e293b;
1172
+ color: #94a3b8;
1173
+ font-size: 0.875rem;
1174
+
1175
+ .btn-copy {
1176
+ background: transparent;
1177
+ border: 1px solid #334155;
1178
+ color: #94a3b8;
1179
+ padding: 0.375rem 0.75rem;
1180
+ border-radius: 6px;
1181
+ cursor: pointer;
1182
+ transition: all 0.3s ease;
1183
+ font-size: 0.8125rem;
1184
+
1185
+ &:hover {
1186
+ background: #334155;
1187
+ color: white;
1188
+ }
1189
+
1190
+ &.btn-success {
1191
+ background: #10b981;
1192
+ border-color: #10b981;
1193
+ color: white;
1194
+ }
1195
+ }
1196
+ }
1197
+
1198
+ pre {
1199
+ margin: 0;
1200
+ padding: 1.5rem;
1201
+ background: #0f172a;
1202
+ overflow-x: auto;
1203
+
1204
+ code {
1205
+ font-family: 'JetBrains Mono', monospace;
1206
+ font-size: 0.875rem;
1207
+ line-height: 1.7;
1208
+ color: #e2e8f0;
1209
+ }
1210
+ }
1211
+ }
1212
+ }
1213
+ }
1214
+ }
1215
+
1216
+ // Responsive adjustments
1217
+ @media (max-width: 768px) {
1218
+ .setup-section {
1219
+ .setup-card {
1220
+ padding: 2rem 1.5rem;
1221
+ }
1222
+
1223
+ .components-grid {
1224
+ grid-template-columns: 1fr;
1225
+ }
1226
+
1227
+ .bundle-summary {
1228
+ grid-template-columns: 1fr;
1229
+ gap: 1rem;
1230
+ }
1231
+
1232
+ .setup-header {
1233
+ flex-direction: column;
1234
+ align-items: flex-start;
1235
+ gap: 1rem;
1236
+ }
1237
+ }
1238
+ } // ===== Enhanced Features Section =====
1239
+ .features-section {
1240
+ padding: 6rem 0;
1241
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
1242
+ position: relative;
1243
+ overflow: hidden;
1244
+
1245
+ &::before {
1246
+ content: '';
1247
+ position: absolute;
1248
+ top: 0;
1249
+ left: 50%;
1250
+ transform: translateX(-50%);
1251
+ width: 1200px;
1252
+ height: 1200px;
1253
+ background: radial-gradient(circle, rgba(99, 102, 241, 0.03) 0%, transparent 70%);
1254
+ pointer-events: none;
1255
+ }
1256
+
1257
+ .feature-card {
1258
+ background: white;
1259
+ border-radius: 20px;
1260
+ padding: 2.5rem;
1261
+ border: 1px solid #e2e8f0;
1262
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1263
+ height: 100%;
1264
+ display: flex;
1265
+ flex-direction: column;
1266
+ position: relative;
1267
+ overflow: hidden;
1268
+
1269
+ &::before {
1270
+ content: '';
1271
+ position: absolute;
1272
+ top: 0;
1273
+ left: 0;
1274
+ right: 0;
1275
+ height: 4px;
1276
+ background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 100%);
1277
+ transform: scaleX(0);
1278
+ transform-origin: left;
1279
+ transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1280
+ }
1281
+
1282
+ &:hover {
1283
+ transform: translateY(-8px);
1284
+ box-shadow: 0 20px 60px rgba(99, 102, 241, 0.15);
1285
+ border-color: #c7d2fe;
1286
+
1287
+ &::before {
1288
+ transform: scaleX(1);
1289
+ }
1290
+
1291
+ .feature-icon-wrapper {
1292
+ transform: scale(1.1) rotate(5deg);
1293
+
1294
+ .feature-glow {
1295
+ opacity: 1;
1296
+ transform: scale(1.5);
1297
+ }
1298
+ }
1299
+
1300
+ .feature-icon {
1301
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
1302
+ color: white;
1303
+ }
1304
+ }
1305
+
1306
+ .feature-icon-wrapper {
1307
+ position: relative;
1308
+ width: 80px;
1309
+ height: 80px;
1310
+ margin-bottom: 1.5rem;
1311
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1312
+
1313
+ .feature-icon {
1314
+ width: 80px;
1315
+ height: 80px;
1316
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
1317
+ border-radius: 20px;
1318
+ display: flex;
1319
+ align-items: center;
1320
+ justify-content: center;
1321
+ font-size: 2rem;
1322
+ color: #6366f1;
1323
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1324
+ position: relative;
1325
+ z-index: 2;
1326
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.1);
1327
+ }
1328
+
1329
+ .feature-glow {
1330
+ position: absolute;
1331
+ top: 50%;
1332
+ left: 50%;
1333
+ transform: translate(-50%, -50%) scale(1);
1334
+ width: 100%;
1335
+ height: 100%;
1336
+ background: radial-gradient(circle, rgba(99, 102, 241, 0.2) 0%, transparent 70%);
1337
+ border-radius: 50%;
1338
+ opacity: 0;
1339
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1340
+ z-index: 1;
1341
+ }
1342
+ }
1343
+
1344
+ .feature-title {
1345
+ font-size: 1.375rem;
1346
+ font-weight: 800;
1347
+ color: #0f172a;
1348
+ margin-bottom: 1rem;
1349
+ line-height: 1.3;
1350
+ }
1351
+
1352
+ .feature-description {
1353
+ color: #64748b;
1354
+ line-height: 1.7;
1355
+ margin-bottom: 1.5rem;
1356
+ flex: 1;
1357
+ font-size: 0.9375rem;
1358
+ }
1359
+
1360
+ .feature-stats {
1361
+ .stat-badge {
1362
+ display: inline-flex;
1363
+ align-items: center;
1364
+ padding: 0.5rem 1rem;
1365
+ background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
1366
+ border: 1px solid #bae6fd;
1367
+ border-radius: 8px;
1368
+ font-size: 0.8125rem;
1369
+ font-weight: 700;
1370
+ color: #0369a1;
1371
+ letter-spacing: 0.025em;
1372
+ }
1373
+ }
1374
+ }
1375
+ }
1376
+
1377
+ // Responsive adjustments
1378
+ @media (max-width: 768px) {
1379
+ .features-section {
1380
+ padding: 4rem 0;
1381
+
1382
+ .feature-card {
1383
+ padding: 2rem;
1384
+
1385
+ .feature-icon-wrapper {
1386
+ width: 64px;
1387
+ height: 64px;
1388
+
1389
+ .feature-icon {
1390
+ width: 64px;
1391
+ height: 64px;
1392
+ font-size: 1.5rem;
1393
+ border-radius: 16px;
1394
+ }
1395
+ }
1396
+
1397
+ .feature-title {
1398
+ font-size: 1.25rem;
1399
+ }
1400
+ }
1401
+ }
1402
+ } // ===== Enhanced Hero Section =====
1403
+ .hero-section {
1404
+ padding: 8rem 0 6rem;
1405
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
1406
+ position: relative;
1407
+ overflow: hidden;
1408
+
1409
+ .version-badge {
1410
+ display: inline-flex;
1411
+ align-items: center;
1412
+ gap: 0.5rem;
1413
+ padding: 0.5rem 1rem;
1414
+ background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
1415
+ border: 1px solid #bae6fd;
1416
+ border-radius: 50px;
1417
+ font-size: 0.875rem;
1418
+ font-weight: 600;
1419
+ color: #0369a1;
1420
+
1421
+ i {
1422
+ color: #0284c7;
1423
+ }
1424
+
1425
+ .badge-separator {
1426
+ color: #7dd3fc;
1427
+ }
1428
+ }
1429
+
1430
+ .hero-title {
1431
+ font-size: clamp(2.5rem, 5vw, 4rem);
1432
+ font-weight: 900;
1433
+ line-height: 1.1;
1434
+ color: #0f172a;
1435
+ letter-spacing: -0.02em;
1436
+ }
1437
+
1438
+ .hero-subtitle {
1439
+ font-size: 1.25rem;
1440
+ line-height: 1.7;
1441
+ color: #64748b;
1442
+ max-width: 540px;
1443
+
1444
+ strong {
1445
+ color: #6366f1;
1446
+ font-weight: 700;
1447
+ }
1448
+ }
1449
+
1450
+ .install-command-enhanced {
1451
+ background: #0f172a;
1452
+ border-radius: 12px;
1453
+ padding: 1rem;
1454
+ border: 1px solid #1e293b;
1455
+
1456
+ .command-label {
1457
+ font-size: 0.75rem;
1458
+ text-transform: uppercase;
1459
+ letter-spacing: 0.05em;
1460
+ color: #94a3b8;
1461
+ margin-bottom: 0.5rem;
1462
+ font-weight: 600;
1463
+ }
1464
+
1465
+ .command-wrapper {
1466
+ display: flex;
1467
+ align-items: center;
1468
+ gap: 0.75rem;
1469
+
1470
+ code {
1471
+ flex: 1;
1472
+ font-family: 'JetBrains Mono', monospace;
1473
+ font-size: 0.9375rem;
1474
+ color: #e2e8f0;
1475
+ background: transparent;
1476
+ padding: 0;
1477
+ }
1478
+
1479
+ .copy-btn-enhanced {
1480
+ background: #1e293b;
1481
+ border: 1px solid #334155;
1482
+ color: #94a3b8;
1483
+ padding: 0.5rem 0.75rem;
1484
+ border-radius: 6px;
1485
+ cursor: pointer;
1486
+ transition: all 0.2s;
1487
+
1488
+ &:hover {
1489
+ background: #334155;
1490
+ color: white;
1491
+ }
1492
+
1493
+ &.copied {
1494
+ background: #10b981;
1495
+ border-color: #10b981;
1496
+ color: white;
1497
+ }
1498
+ }
1499
+ }
1500
+ }
1501
+
1502
+ .component-preview-card {
1503
+ background: white;
1504
+ border-radius: 16px;
1505
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
1506
+ border: 1px solid #e2e8f0;
1507
+ overflow: hidden;
1508
+
1509
+ .card-header {
1510
+ display: flex;
1511
+ align-items: center;
1512
+ gap: 0.75rem;
1513
+ padding: 1rem 1.25rem;
1514
+ background: #f8fafc;
1515
+ border-bottom: 1px solid #e2e8f0;
1516
+
1517
+ .dots {
1518
+ display: flex;
1519
+ gap: 0.5rem;
1520
+
1521
+ span {
1522
+ width: 12px;
1523
+ height: 12px;
1524
+ border-radius: 50%;
1525
+ background: #cbd5e1;
1526
+
1527
+ &:nth-child(1) {
1528
+ background: #ef4444;
1529
+ }
1530
+
1531
+ &:nth-child(2) {
1532
+ background: #f59e0b;
1533
+ }
1534
+
1535
+ &:nth-child(3) {
1536
+ background: #10b981;
1537
+ }
1538
+ }
1539
+ }
1540
+
1541
+ .file-name {
1542
+ font-size: 0.875rem;
1543
+ color: #64748b;
1544
+ font-weight: 500;
1545
+ }
1546
+ }
1547
+
1548
+ .code-content {
1549
+ padding: 1.5rem;
1550
+ background: #0f172a;
1551
+
1552
+ pre {
1553
+ margin: 0;
1554
+
1555
+ code {
1556
+ font-family: 'JetBrains Mono', monospace;
1557
+ font-size: 0.875rem;
1558
+ line-height: 1.7;
1559
+ color: #e2e8f0;
1560
+ }
1561
+ }
1562
+ }
1563
+ }
1564
+
1565
+ .floating-element {
1566
+ position: absolute;
1567
+ animation: float 6s ease-in-out infinite;
1568
+
1569
+ &.element-1 {
1570
+ top: 10%;
1571
+ right: 10%;
1572
+ animation-delay: 0s;
1573
+
1574
+ .mini-card {
1575
+ width: 80px;
1576
+ height: 60px;
1577
+ background: white;
1578
+ border-radius: 8px;
1579
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
1580
+ padding: 0.5rem;
1581
+
1582
+ .mini-header {
1583
+ width: 100%;
1584
+ height: 8px;
1585
+ background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 100%);
1586
+ border-radius: 4px;
1587
+ margin-bottom: 0.5rem;
1588
+ }
1589
+
1590
+ .mini-body {
1591
+ width: 100%;
1592
+ height: 20px;
1593
+ background: #f1f5f9;
1594
+ border-radius: 4px;
1595
+ }
1596
+ }
1597
+ }
1598
+
1599
+ &.element-2 {
1600
+ bottom: 20%;
1601
+ right: 5%;
1602
+ animation-delay: 2s;
1603
+
1604
+ .mini-badge {
1605
+ padding: 0.5rem 1rem;
1606
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
1607
+ color: white;
1608
+ border-radius: 50px;
1609
+ font-weight: 700;
1610
+ font-size: 0.875rem;
1611
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
1612
+ }
1613
+ }
1614
+
1615
+ &.element-3 {
1616
+ top: 50%;
1617
+ right: 15%;
1618
+ animation-delay: 4s;
1619
+
1620
+ .mini-icon {
1621
+ width: 50px;
1622
+ height: 50px;
1623
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
1624
+ border-radius: 12px;
1625
+ display: flex;
1626
+ align-items: center;
1627
+ justify-content: center;
1628
+ color: white;
1629
+ font-size: 1.5rem;
1630
+ box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
1631
+ }
1632
+ }
1633
+ }
1634
+
1635
+ @keyframes float {
1636
+
1637
+ 0%,
1638
+ 100% {
1639
+ transform: translateY(0px);
1640
+ }
1641
+
1642
+ 50% {
1643
+ transform: translateY(-20px);
1644
+ }
1645
+ }
1646
+ }
1647
+
1648
+ // ===== Stats Bar Section =====
1649
+ .stats-bar-section {
1650
+ padding: 4rem 0;
1651
+ background: white;
1652
+ border-top: 1px solid #e2e8f0;
1653
+ border-bottom: 1px solid #e2e8f0;
1654
+
1655
+ .stats-grid {
1656
+ display: grid;
1657
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1658
+ gap: 2rem;
1659
+
1660
+ .stat-item {
1661
+ display: flex;
1662
+ align-items: center;
1663
+ gap: 1rem;
1664
+ padding: 1.5rem;
1665
+ background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
1666
+ border-radius: 12px;
1667
+ border: 1px solid #e2e8f0;
1668
+ transition: all 0.3s;
1669
+
1670
+ &:hover {
1671
+ transform: translateY(-4px);
1672
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
1673
+ }
1674
+
1675
+ .stat-icon {
1676
+ width: 50px;
1677
+ height: 50px;
1678
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
1679
+ border-radius: 12px;
1680
+ display: flex;
1681
+ align-items: center;
1682
+ justify-content: center;
1683
+ color: white;
1684
+ font-size: 1.5rem;
1685
+ flex-shrink: 0;
1686
+ }
1687
+
1688
+ .stat-content {
1689
+ .stat-value {
1690
+ font-size: 2rem;
1691
+ font-weight: 900;
1692
+ color: #0f172a;
1693
+ line-height: 1;
1694
+ margin-bottom: 0.25rem;
1695
+ }
1696
+
1697
+ .stat-label {
1698
+ font-size: 0.875rem;
1699
+ color: #64748b;
1700
+ font-weight: 500;
1701
+ }
1702
+ }
1703
+ }
1704
+ }
1705
+ }
1706
+
1707
+ // ===== Quick Start Section =====
1708
+ .quick-start-section {
1709
+ padding: 6rem 0;
1710
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
1711
+
1712
+ .install-card {
1713
+ background: white;
1714
+ border-radius: 16px;
1715
+ padding: 2rem;
1716
+ border: 1px solid #e2e8f0;
1717
+ height: 100%;
1718
+ transition: all 0.3s;
1719
+
1720
+ &:hover {
1721
+ transform: translateY(-4px);
1722
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
1723
+ }
1724
+
1725
+ .install-icon {
1726
+ width: 60px;
1727
+ height: 60px;
1728
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
1729
+ border-radius: 12px;
1730
+ display: flex;
1731
+ align-items: center;
1732
+ justify-content: center;
1733
+ color: white;
1734
+ font-size: 1.75rem;
1735
+ margin-bottom: 1.5rem;
1736
+ }
1737
+
1738
+ .install-title {
1739
+ font-size: 1.25rem;
1740
+ font-weight: 700;
1741
+ color: #0f172a;
1742
+ margin-bottom: 0.5rem;
1743
+ }
1744
+
1745
+ .install-description {
1746
+ color: #64748b;
1747
+ margin-bottom: 1.5rem;
1748
+ font-size: 0.9375rem;
1749
+ }
1750
+
1751
+ .code-block {
1752
+ background: #0f172a;
1753
+ border-radius: 8px;
1754
+ padding: 0.75rem 1rem;
1755
+ margin-bottom: 0.75rem;
1756
+ display: flex;
1757
+ align-items: center;
1758
+ gap: 0.75rem;
1759
+ border: 1px solid #1e293b;
1760
+
1761
+ &:last-child {
1762
+ margin-bottom: 0;
1763
+ }
1764
+
1765
+ code {
1766
+ flex: 1;
1767
+ font-family: 'JetBrains Mono', monospace;
1768
+ font-size: 0.8125rem;
1769
+ color: #e2e8f0;
1770
+ background: transparent;
1771
+ padding: 0;
1772
+ overflow-x: auto;
1773
+ white-space: nowrap;
1774
+ }
1775
+
1776
+ .btn-copy-code {
1777
+ background: transparent;
1778
+ border: none;
1779
+ color: #94a3b8;
1780
+ padding: 0.25rem;
1781
+ cursor: pointer;
1782
+ transition: color 0.2s;
1783
+ flex-shrink: 0;
1784
+
1785
+ &:hover {
1786
+ color: white;
1787
+ }
1788
+
1789
+ &.copied {
1790
+ color: #10b981;
1791
+ }
1792
+ }
1793
+ }
1794
+ }
1795
+ }
1796
+
1797
+ // Responsive
1798
+ @media (max-width: 992px) {
1799
+ .hero-section {
1800
+ padding: 6rem 0 4rem;
1801
+
1802
+ .hero-title {
1803
+ font-size: 2.5rem;
1804
+ }
1805
+
1806
+ .hero-subtitle {
1807
+ font-size: 1.125rem;
1808
+ }
1809
+
1810
+ .floating-element {
1811
+ display: none;
1812
+ }
1813
+ }
1814
+
1815
+ .stats-bar-section {
1816
+ .stats-grid {
1817
+ grid-template-columns: repeat(2, 1fr);
1818
+ }
1819
+ }
1820
+ }
1821
+
1822
+ @media (max-width: 768px) {
1823
+ .stats-bar-section {
1824
+ .stats-grid {
1825
+ grid-template-columns: 1fr;
1826
+ }
1827
+ }
1828
+ }