git0 0.3.17 → 0.3.18

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 (59) hide show
  1. package/docs/README.md +20 -0
  2. package/docs/app/(home)/docs-home.css +235 -0
  3. package/docs/app/(home)/layout.tsx +12 -0
  4. package/docs/app/(home)/page.tsx +27 -0
  5. package/docs/app/docs/[[...slug]]/page.tsx +84 -0
  6. package/docs/app/docs/api/docs-search/route.ts +11 -0
  7. package/docs/app/docs/layout.tsx +16 -0
  8. package/docs/app/docs/llms-full.txt/route.ts +15 -0
  9. package/docs/app/docs/llms.mdx/docs/[[...slug]]/route.ts +24 -0
  10. package/docs/app/globals.css +814 -0
  11. package/docs/app/layout.config.tsx +32 -0
  12. package/docs/app/layout.tsx +22 -0
  13. package/docs/app/provider.tsx +20 -0
  14. package/docs/cli.json +11 -0
  15. package/docs/components/DocsHomepage/code-example.tsx +123 -0
  16. package/docs/components/DocsHomepage/features-grid.tsx +92 -0
  17. package/docs/components/DocsHomepage/footer.tsx +58 -0
  18. package/docs/components/DocsHomepage/hero-section.tsx +114 -0
  19. package/docs/components/DocsHomepage/project-types.tsx +114 -0
  20. package/docs/components/fumadocs/ai/ask-ai-dropdown.tsx +299 -0
  21. package/docs/components/fumadocs/ai/llm-copy-button.tsx +61 -0
  22. package/docs/components/fumadocs/api/api-page.client.tsx +7 -0
  23. package/docs/components/fumadocs/api/api-page.tsx +7 -0
  24. package/docs/components/fumadocs/layout/breadcrumb.tsx +36 -0
  25. package/docs/components/fumadocs/layout/search.tsx +55 -0
  26. package/docs/components/fumadocs/layout/theme-dropdown.tsx +3 -0
  27. package/docs/components/fumadocs/layout/theme-provider.tsx +15 -0
  28. package/docs/components/fumadocs/layout/theme-toggle.tsx +40 -0
  29. package/docs/components/ui/badge.tsx +50 -0
  30. package/docs/components/ui/button.tsx +66 -0
  31. package/docs/components/ui/collapsible.tsx +44 -0
  32. package/docs/components/ui/slider.tsx +36 -0
  33. package/docs/components/ui/tooltip.tsx +63 -0
  34. package/docs/components/ui/video-modal.tsx +238 -0
  35. package/docs/content/docs/fm.mdx +11 -0
  36. package/docs/content/docs/git0.mdx +104 -0
  37. package/docs/content/docs/github-api.mdx +764 -0
  38. package/docs/content/docs/index.mdx +98 -0
  39. package/docs/content/docs/meta.json +15 -0
  40. package/docs/content/docs/modules.mdx +10 -0
  41. package/docs/lib/fumadocs/customize-docs.ts +47 -0
  42. package/docs/lib/fumadocs/generate-api-docs.ts +73 -0
  43. package/docs/lib/fumadocs/source.tsx +50 -0
  44. package/docs/lib/utils.ts +10 -0
  45. package/docs/mdx-components.tsx +21 -0
  46. package/docs/next-env.d.ts +7 -0
  47. package/docs/next.config.ts +35 -0
  48. package/docs/package.json +61 -0
  49. package/docs/postcss.config.mjs +5 -0
  50. package/docs/public/apple-touch-icon.png +0 -0
  51. package/docs/public/favicon-192.png +0 -0
  52. package/docs/public/favicon-512.png +0 -0
  53. package/docs/public/favicon.ico +0 -0
  54. package/docs/public/manifest.webmanifest +14 -0
  55. package/docs/source.config.ts +29 -0
  56. package/docs/tsconfig.json +50 -0
  57. package/docs/vite.config.ts +2 -0
  58. package/docs/wrangler.jsonc +13 -0
  59. package/package.json +1 -1
@@ -0,0 +1,814 @@
1
+ @import "tailwindcss";
2
+ @import 'fumadocs-ui/css/shadcn.css';
3
+ @import "fumadocs-ui/css/preset.css";
4
+ @import 'fumadocs-openapi/css/preset.css';
5
+ @import 'shadcn-theme-menu/themes.css';
6
+
7
+ /*
8
+ * Plain (non "fd-") shadcn color tokens. Tailwind v4 only generates utility
9
+ * classes like bg-popover / text-accent-foreground / border-border when a
10
+ * matching --color-* var is registered here. fumadocs' own CSS only
11
+ * registers the fd-prefixed tokens above, so components that use plain
12
+ * shadcn classes (e.g. the shadcn-theme-menu dropdown) rendered with no
13
+ * background at all until these were added.
14
+ */
15
+ @theme inline {
16
+ --color-background: var(--background);
17
+ --color-foreground: var(--foreground);
18
+ --color-card: var(--card);
19
+ --color-card-foreground: var(--card-foreground);
20
+ --color-popover: var(--popover);
21
+ --color-popover-foreground: var(--popover-foreground);
22
+ --color-primary: var(--primary);
23
+ --color-primary-foreground: var(--primary-foreground);
24
+ --color-secondary: var(--secondary);
25
+ --color-secondary-foreground: var(--secondary-foreground);
26
+ --color-muted: var(--muted);
27
+ --color-muted-foreground: var(--muted-foreground);
28
+ --color-accent: var(--accent);
29
+ --color-accent-foreground: var(--accent-foreground);
30
+ --color-destructive: var(--destructive);
31
+ --color-destructive-foreground: var(--destructive-foreground);
32
+ --color-border: var(--border);
33
+ --color-input: var(--input);
34
+ --color-ring: var(--ring);
35
+ --color-sidebar: var(--sidebar);
36
+ --color-sidebar-foreground: var(--sidebar-foreground);
37
+ --color-sidebar-primary: var(--sidebar-primary);
38
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
39
+ --color-sidebar-accent: var(--sidebar-accent);
40
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
41
+ --color-sidebar-border: var(--sidebar-border);
42
+ --color-sidebar-ring: var(--sidebar-ring);
43
+ --radius-sm: calc(var(--radius) - 4px);
44
+ --radius-md: calc(var(--radius) - 2px);
45
+ --radius-lg: var(--radius);
46
+ --radius-xl: calc(var(--radius) + 4px);
47
+ }
48
+
49
+ /* Custom Refined Beige & Sand Desert Paper Theme Variables */
50
+ :root {
51
+ --color-fd-background: hsl(42, 35%, 97%);
52
+ --color-fd-primary: hsl(38, 45%, 52%);
53
+ --color-fd-accent: hsl(32, 55%, 62%);
54
+ --color-fd-muted: hsl(42, 25%, 92%);
55
+ --color-fd-border: hsl(38, 30%, 82%);
56
+ --color-fd-text: hsl(28, 30%, 22%);
57
+ --color-fd-text-muted: hsl(28, 25%, 42%);
58
+
59
+ /* Search dialog / popover */
60
+ --color-fd-popover: hsl(42, 35%, 95%);
61
+ --color-fd-popover-foreground: hsl(28, 30%, 22%);
62
+
63
+ /* Layout customization */
64
+ --fd-layout-width: 1400px;
65
+
66
+ /*
67
+ * Plain shadcn vars (fallback, active until the shadcn-theme-menu
68
+ * dropdown applies its own .theme-<name> class). Mirrors the desert
69
+ * palette above so components using plain shadcn classes match the site.
70
+ */
71
+ --radius: 0.5rem;
72
+ --background: hsl(42, 35%, 97%);
73
+ --foreground: hsl(28, 30%, 22%);
74
+ --card: hsl(42, 35%, 97%);
75
+ --card-foreground: hsl(28, 30%, 22%);
76
+ --popover: hsl(42, 35%, 95%);
77
+ --popover-foreground: hsl(28, 30%, 22%);
78
+ --primary: hsl(38, 45%, 52%);
79
+ --primary-foreground: hsl(42, 35%, 97%);
80
+ --secondary: hsl(42, 25%, 92%);
81
+ --secondary-foreground: hsl(28, 30%, 22%);
82
+ --muted: hsl(42, 25%, 92%);
83
+ --muted-foreground: hsl(28, 25%, 42%);
84
+ --accent: hsl(32, 55%, 62%);
85
+ --accent-foreground: hsl(28, 30%, 22%);
86
+ --destructive: hsl(0, 70%, 50%);
87
+ --destructive-foreground: hsl(42, 35%, 97%);
88
+ --border: hsl(38, 30%, 82%);
89
+ --input: hsl(38, 30%, 82%);
90
+ --ring: hsl(38, 45%, 52%);
91
+ --sidebar: hsl(42, 25%, 92%);
92
+ --sidebar-foreground: hsl(28, 30%, 22%);
93
+ --sidebar-primary: hsl(38, 45%, 52%);
94
+ --sidebar-primary-foreground: hsl(42, 35%, 97%);
95
+ --sidebar-accent: hsl(32, 55%, 62%);
96
+ --sidebar-accent-foreground: hsl(28, 30%, 22%);
97
+ --sidebar-border: hsl(38, 30%, 82%);
98
+ --sidebar-ring: hsl(38, 45%, 52%);
99
+ }
100
+
101
+ .dark {
102
+ --color-fd-background: hsl(28, 20%, 14%);
103
+ --color-fd-primary: hsl(38, 45%, 65%);
104
+ --color-fd-accent: hsl(32, 55%, 75%);
105
+ --color-fd-muted: hsl(28, 25%, 20%);
106
+ --color-fd-border: hsl(28, 30%, 28%);
107
+ --color-fd-text: hsl(42, 25%, 88%);
108
+ --color-fd-text-muted: hsl(42, 20%, 72%);
109
+
110
+ /* Search dialog / popover */
111
+ --color-fd-popover: hsl(28, 20%, 16%);
112
+ --color-fd-popover-foreground: hsl(42, 25%, 88%);
113
+
114
+ /* Plain shadcn vars (fallback), dark variant */
115
+ --background: hsl(28, 20%, 14%);
116
+ --foreground: hsl(42, 25%, 88%);
117
+ --card: hsl(28, 20%, 14%);
118
+ --card-foreground: hsl(42, 25%, 88%);
119
+ --popover: hsl(28, 20%, 16%);
120
+ --popover-foreground: hsl(42, 25%, 88%);
121
+ --primary: hsl(38, 45%, 65%);
122
+ --primary-foreground: hsl(28, 20%, 14%);
123
+ --secondary: hsl(28, 25%, 20%);
124
+ --secondary-foreground: hsl(42, 25%, 88%);
125
+ --muted: hsl(28, 25%, 20%);
126
+ --muted-foreground: hsl(42, 20%, 72%);
127
+ --accent: hsl(32, 55%, 75%);
128
+ --accent-foreground: hsl(28, 20%, 14%);
129
+ --destructive: hsl(0, 70%, 55%);
130
+ --destructive-foreground: hsl(42, 25%, 88%);
131
+ --border: hsl(28, 30%, 28%);
132
+ --input: hsl(28, 30%, 28%);
133
+ --ring: hsl(38, 45%, 65%);
134
+ --sidebar: hsl(28, 25%, 20%);
135
+ --sidebar-foreground: hsl(42, 25%, 88%);
136
+ --sidebar-primary: hsl(38, 45%, 65%);
137
+ --sidebar-primary-foreground: hsl(28, 20%, 14%);
138
+ --sidebar-accent: hsl(32, 55%, 75%);
139
+ --sidebar-accent-foreground: hsl(28, 20%, 14%);
140
+ --sidebar-border: hsl(28, 30%, 28%);
141
+ --sidebar-ring: hsl(38, 45%, 65%);
142
+ }
143
+
144
+ /* Sidebar Glass Effect Override - Comprehensive */
145
+ .bg-sidebar,
146
+ [data-sidebar="sidebar"],
147
+ [data-slot="sidebar"],
148
+ [data-slot="sidebar-inner"],
149
+ div[class*="bg-sidebar"],
150
+ div[class*="sidebar"],
151
+ [data-collapsible="offcanvas"],
152
+ [data-state="collapsed"],
153
+ [data-slot="sidebar-container"],
154
+ [data-slot="sidebar-gap"] {
155
+ background-color: rgb(255, 255, 255) !important;
156
+ backdrop-filter: blur(20px) !important;
157
+ -webkit-backdrop-filter: blur(20px) !important;
158
+ border: 1px solid rgba(255, 255, 255, 0.3) !important;
159
+ box-shadow:
160
+ 0 8px 32px rgba(0, 0, 0, 0.15),
161
+ inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
162
+ }
163
+
164
+ .dark .bg-sidebar,
165
+ .dark [data-sidebar="sidebar"],
166
+ .dark [data-slot="sidebar"],
167
+ .dark [data-slot="sidebar-inner"],
168
+ .dark div[class*="bg-sidebar"],
169
+ .dark div[class*="sidebar"],
170
+ .dark [data-collapsible="offcanvas"],
171
+ .dark [data-state="collapsed"],
172
+ .dark [data-slot="sidebar-container"],
173
+ .dark [data-slot="sidebar-gap"] {
174
+ background-color: rgb(30, 41, 59) !important;
175
+ backdrop-filter: blur(24px) !important;
176
+ -webkit-backdrop-filter: blur(24px) !important;
177
+ border: 1px solid rgba(148, 163, 184, 0.2) !important;
178
+ box-shadow:
179
+ 0 8px 32px rgba(0, 0, 0, 0.4),
180
+ inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
181
+ }
182
+
183
+ /* Enhanced Sidebar Container Glass Effect */
184
+ [data-slot="sidebar-inner"],
185
+ [data-sidebar="sidebar"],
186
+ [data-collapsible="offcanvas"] [data-slot="sidebar-inner"],
187
+ [data-state="collapsed"] [data-slot="sidebar-inner"] {
188
+ background-color: rgba(255, 255, 255, 0.8) !important;
189
+ backdrop-filter: blur(16px) !important;
190
+ -webkit-backdrop-filter: blur(16px) !important;
191
+ border: 1px solid rgba(255, 255, 255, 0.25) !important;
192
+ box-shadow:
193
+ 0 4px 16px rgba(0, 0, 0, 0.1),
194
+ inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
195
+ }
196
+
197
+ .dark [data-slot="sidebar-inner"],
198
+ .dark [data-sidebar="sidebar"],
199
+ .dark [data-collapsible="offcanvas"] [data-slot="sidebar-inner"],
200
+ .dark [data-state="collapsed"] [data-slot="sidebar-inner"] {
201
+ background-color: rgba(30, 41, 59, 0.8) !important;
202
+ backdrop-filter: blur(20px) !important;
203
+ -webkit-backdrop-filter: blur(20px) !important;
204
+ border: 1px solid rgba(148, 163, 184, 0.15) !important;
205
+ box-shadow:
206
+ 0 4px 16px rgba(0, 0, 0, 0.25),
207
+ inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
208
+ }
209
+
210
+ /* Mobile Sidebar Glass Effect */
211
+ [data-mobile="true"],
212
+ [data-mobile="true"] [data-sidebar="sidebar"],
213
+ [data-mobile="true"] [data-slot="sidebar"],
214
+ [data-collapsible="offcanvas"][data-mobile="true"],
215
+ [data-state="collapsed"][data-mobile="true"] {
216
+ background-color: rgba(255, 255, 255, 0.9) !important;
217
+ backdrop-filter: blur(24px) !important;
218
+ -webkit-backdrop-filter: blur(24px) !important;
219
+ border: 1px solid rgba(255, 255, 255, 0.35) !important;
220
+ box-shadow:
221
+ 0 12px 40px rgba(0, 0, 0, 0.2),
222
+ inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
223
+ }
224
+
225
+ .dark [data-mobile="true"],
226
+ .dark [data-mobile="true"] [data-sidebar="sidebar"],
227
+ .dark [data-mobile="true"] [data-slot="sidebar"],
228
+ .dark [data-collapsible="offcanvas"][data-mobile="true"],
229
+ .dark [data-state="collapsed"][data-mobile="true"] {
230
+ background-color: rgba(30, 41, 59, 0.9) !important;
231
+ backdrop-filter: blur(28px) !important;
232
+ -webkit-backdrop-filter: blur(28px) !important;
233
+ border: 1px solid rgba(148, 163, 184, 0.25) !important;
234
+ box-shadow:
235
+ 0 12px 40px rgba(0, 0, 0, 0.5),
236
+ inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
237
+ }
238
+
239
+ /* Force override for any sidebar-related elements */
240
+ *[class*="sidebar"],
241
+ *[data-sidebar],
242
+ *[data-slot*="sidebar"] {
243
+ background-color: rgba(255, 255, 255, 0.85) !important;
244
+ backdrop-filter: blur(18px) !important;
245
+ -webkit-backdrop-filter: blur(18px) !important;
246
+ }
247
+
248
+ .dark *[class*="sidebar"],
249
+ .dark *[data-sidebar],
250
+ .dark *[data-slot*="sidebar"] {
251
+ background-color: rgba(30, 41, 59, 0.85) !important;
252
+ backdrop-filter: blur(22px) !important;
253
+ -webkit-backdrop-filter: blur(22px) !important;
254
+ }
255
+
256
+ /* 3D Glassmorphism Effects */
257
+ .glass-3d {
258
+ background-color: rgba(255, 255, 255, 0.2);
259
+ backdrop-filter: blur(24px);
260
+ border: 1px solid rgba(255, 255, 255, 0.4);
261
+ border-radius: 1rem;
262
+ transform-style: preserve-3d;
263
+ perspective: 1000px;
264
+ box-shadow:
265
+ 0 8px 32px rgba(0, 0, 0, 0.1),
266
+ inset 0 1px 0 rgba(255, 255, 255, 0.2);
267
+ }
268
+
269
+ .glass-3d-hover {
270
+ background-color: rgba(255, 255, 255, 0.2);
271
+ backdrop-filter: blur(24px);
272
+ border: 1px solid rgba(255, 255, 255, 0.4);
273
+ border-radius: 1rem;
274
+ transform-style: preserve-3d;
275
+ perspective: 1000px;
276
+ box-shadow:
277
+ 0 8px 32px rgba(0, 0, 0, 0.1),
278
+ inset 0 1px 0 rgba(255, 255, 255, 0.2);
279
+ transition: all 0.5s ease-out;
280
+ transform: translateZ(0);
281
+ }
282
+
283
+ .glass-3d-hover:hover {
284
+ background-color: rgba(255, 255, 255, 0.3);
285
+ box-shadow:
286
+ 0 20px 40px rgba(0, 0, 0, 0.15),
287
+ 0 0 0 1px rgba(255, 255, 255, 0.3),
288
+ inset 0 1px 0 rgba(255, 255, 255, 0.3);
289
+ transform: translateZ(20px) rotateX(5deg) rotateY(5deg);
290
+ }
291
+
292
+ /* Advanced Hover Animations */
293
+ .hover-lift {
294
+ transition: all 0.3s ease-out;
295
+ transform: translateY(0) scale(1);
296
+ }
297
+
298
+ .hover-lift:hover {
299
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
300
+ transform: translateY(-8px) scale(1.02);
301
+ }
302
+
303
+ .hover-glow {
304
+ transition: all 0.3s ease-out;
305
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
306
+ }
307
+
308
+ .hover-glow:hover {
309
+ box-shadow:
310
+ 0 10px 25px rgba(0, 0, 0, 0.15),
311
+ 0 0 0 1px rgba(255, 255, 255, 0.1),
312
+ 0 0 20px rgba(255, 255, 255, 0.1);
313
+ }
314
+
315
+ .hover-rotate {
316
+ transition: all 0.5s ease-out;
317
+ transform: rotate(0deg) scale(1);
318
+ }
319
+
320
+ .hover-rotate:hover {
321
+ transform: rotate(2deg) scale(1.05);
322
+ }
323
+
324
+ .hover-bounce {
325
+ transition: all 0.3s ease-out;
326
+ animation: none;
327
+ }
328
+
329
+ .hover-bounce:hover {
330
+ animation: bounce 0.6s ease-in-out;
331
+ }
332
+
333
+ .hover-pulse {
334
+ transition: all 0.3s ease-out;
335
+ }
336
+
337
+ .hover-pulse:hover {
338
+ animation: pulse 1s ease-in-out infinite;
339
+ }
340
+
341
+ .hover-shake {
342
+ transition: all 0.3s ease-out;
343
+ }
344
+
345
+ .hover-shake:hover {
346
+ animation: shake 0.5s ease-in-out;
347
+ }
348
+
349
+ /* 3D Card Effects */
350
+ .card-3d {
351
+ transition: all 0.5s ease-out;
352
+ transform-style: preserve-3d;
353
+ perspective: 1000px;
354
+ }
355
+
356
+ .card-3d:hover {
357
+ transform: rotateX(10deg) rotateY(10deg) translateZ(20px);
358
+ }
359
+
360
+ /* NEW: Gradient Animations */
361
+ .gradient-animate {
362
+ background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
363
+ background-size: 400% 400%;
364
+ animation: gradientShift 3s ease infinite;
365
+ }
366
+
367
+ .gradient-animate-hover {
368
+ background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
369
+ background-size: 400% 400%;
370
+ transition: all 0.3s ease;
371
+ }
372
+
373
+ .gradient-animate-hover:hover {
374
+ animation: gradientShift 2s ease infinite;
375
+ transform: scale(1.05);
376
+ }
377
+
378
+ /* NEW: Morphing Effects */
379
+ .morph {
380
+ transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
381
+ border-radius: 1rem;
382
+ }
383
+
384
+ .morph:hover {
385
+ border-radius: 2rem;
386
+ transform: scale(1.1) rotate(5deg);
387
+ }
388
+
389
+ /* NEW: Particle Effect */
390
+ .particle-effect {
391
+ position: relative;
392
+ overflow: hidden;
393
+ }
394
+
395
+ .particle-effect::before {
396
+ content: '';
397
+ position: absolute;
398
+ top: 0;
399
+ left: -100%;
400
+ width: 100%;
401
+ height: 100%;
402
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
403
+ transition: left 0.5s;
404
+ }
405
+
406
+ .particle-effect:hover::before {
407
+ left: 100%;
408
+ }
409
+
410
+ /* NEW: Neon Glow Effect */
411
+ .neon-glow {
412
+ transition: all 0.3s ease;
413
+ box-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
414
+ }
415
+
416
+ .neon-glow:hover {
417
+ box-shadow:
418
+ 0 0 20px rgba(255, 255, 255, 0.8),
419
+ 0 0 40px rgba(255, 255, 255, 0.6),
420
+ 0 0 60px rgba(255, 255, 255, 0.4);
421
+ transform: scale(1.05);
422
+ }
423
+
424
+ /* NEW: Magnetic Effect */
425
+ .magnetic {
426
+ transition: all 0.3s ease;
427
+ transform: translate(0, 0);
428
+ }
429
+
430
+ .magnetic:hover {
431
+ transform: translate(5px, -5px);
432
+ box-shadow: -5px 5px 15px rgba(0, 0, 0, 0.2);
433
+ }
434
+
435
+ /* NEW: Elastic Bounce */
436
+ .elastic-bounce {
437
+ transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
438
+ }
439
+
440
+ .elastic-bounce:hover {
441
+ transform: scale(1.2) rotate(10deg);
442
+ }
443
+
444
+ /* NEW: Slide In Effect */
445
+ .slide-in {
446
+ transition: all 0.4s ease;
447
+ transform: translateX(-100%);
448
+ }
449
+
450
+ .slide-in:hover {
451
+ transform: translateX(0);
452
+ opacity: 1;
453
+ }
454
+
455
+ /* NEW: Flip Card Effect */
456
+ .flip-card {
457
+ perspective: 1000px;
458
+ transform-style: preserve-3d;
459
+ }
460
+
461
+ .flip-card-inner {
462
+ transition: transform 0.6s;
463
+ transform-style: preserve-3d;
464
+ }
465
+
466
+ .flip-card:hover .flip-card-inner {
467
+ transform: rotateY(180deg);
468
+ }
469
+
470
+ .flip-card-front,
471
+ .flip-card-back {
472
+ backface-visibility: hidden;
473
+ position: absolute;
474
+ top: 0;
475
+ left: 0;
476
+ width: 100%;
477
+ height: 100%;
478
+ }
479
+
480
+ .flip-card-back {
481
+ transform: rotateY(180deg);
482
+ }
483
+
484
+ /* NEW: Typewriter Effect */
485
+ .typewriter {
486
+ overflow: hidden;
487
+ border-right: 2px solid;
488
+ white-space: nowrap;
489
+ animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
490
+ }
491
+
492
+ /* NEW: Breathing Effect */
493
+ .breathing {
494
+ animation: breathing 4s ease-in-out infinite;
495
+ }
496
+
497
+ /* NEW: Ripple Effect */
498
+ .ripple {
499
+ position: relative;
500
+ overflow: hidden;
501
+ }
502
+
503
+ .ripple::after {
504
+ content: '';
505
+ position: absolute;
506
+ top: 50%;
507
+ left: 50%;
508
+ width: 0;
509
+ height: 0;
510
+ border-radius: 50%;
511
+ background: rgba(255, 255, 255, 0.3);
512
+ transform: translate(-50%, -50%);
513
+ transition: width 0.6s, height 0.6s;
514
+ }
515
+
516
+ .ripple:hover::after {
517
+ width: 300px;
518
+ height: 300px;
519
+ }
520
+
521
+ /* NEW: Glitch Effect */
522
+ .glitch {
523
+ position: relative;
524
+ }
525
+
526
+ .glitch::before,
527
+ .glitch::after {
528
+ content: attr(data-text);
529
+ position: absolute;
530
+ top: 0;
531
+ left: 0;
532
+ width: 100%;
533
+ height: 100%;
534
+ }
535
+
536
+ .glitch::before {
537
+ animation: glitch-1 0.5s infinite;
538
+ color: #ff0000;
539
+ z-index: -1;
540
+ }
541
+
542
+ .glitch::after {
543
+ animation: glitch-2 0.5s infinite;
544
+ color: #00ff00;
545
+ z-index: -2;
546
+ }
547
+
548
+ /* Floating Animation */
549
+ @keyframes float {
550
+
551
+ 0%,
552
+ 100% {
553
+ transform: translateY(0px);
554
+ }
555
+
556
+ 50% {
557
+ transform: translateY(-10px);
558
+ }
559
+ }
560
+
561
+ .hover-float {
562
+ transition: all 0.3s ease-out;
563
+ }
564
+
565
+ .hover-float:hover {
566
+ animation: float 2s ease-in-out infinite;
567
+ }
568
+
569
+ /* Shake Animation */
570
+ @keyframes shake {
571
+
572
+ 0%,
573
+ 100% {
574
+ transform: translateX(0);
575
+ }
576
+
577
+ 10%,
578
+ 30%,
579
+ 50%,
580
+ 70%,
581
+ 90% {
582
+ transform: translateX(-2px);
583
+ }
584
+
585
+ 20%,
586
+ 40%,
587
+ 60%,
588
+ 80% {
589
+ transform: translateX(2px);
590
+ }
591
+ }
592
+
593
+ /* Bounce Animation */
594
+ @keyframes bounce {
595
+
596
+ 0%,
597
+ 20%,
598
+ 53%,
599
+ 80%,
600
+ 100% {
601
+ transform: translate3d(0, 0, 0);
602
+ }
603
+
604
+ 40%,
605
+ 43% {
606
+ transform: translate3d(0, -8px, 0);
607
+ }
608
+
609
+ 70% {
610
+ transform: translate3d(0, -4px, 0);
611
+ }
612
+
613
+ 90% {
614
+ transform: translate3d(0, -2px, 0);
615
+ }
616
+ }
617
+
618
+ /* Pulse Animation */
619
+ @keyframes pulse {
620
+
621
+ 0%,
622
+ 100% {
623
+ opacity: 1;
624
+ }
625
+
626
+ 50% {
627
+ opacity: 0.8;
628
+ }
629
+ }
630
+
631
+ /* NEW: Gradient Shift Animation */
632
+ @keyframes gradientShift {
633
+ 0% {
634
+ background-position: 0% 50%;
635
+ }
636
+
637
+ 50% {
638
+ background-position: 100% 50%;
639
+ }
640
+
641
+ 100% {
642
+ background-position: 0% 50%;
643
+ }
644
+ }
645
+
646
+ /* NEW: Typewriter Animation */
647
+ @keyframes typing {
648
+ from {
649
+ width: 0;
650
+ }
651
+
652
+ to {
653
+ width: 100%;
654
+ }
655
+ }
656
+
657
+ @keyframes blink-caret {
658
+
659
+ from,
660
+ to {
661
+ border-color: transparent;
662
+ }
663
+
664
+ 50% {
665
+ border-color: currentColor;
666
+ }
667
+ }
668
+
669
+ /* NEW: Breathing Animation */
670
+ @keyframes breathing {
671
+
672
+ 0%,
673
+ 100% {
674
+ transform: scale(1);
675
+ }
676
+
677
+ 50% {
678
+ transform: scale(1.05);
679
+ }
680
+ }
681
+
682
+ /* NEW: Glitch Animations */
683
+ @keyframes glitch-1 {
684
+
685
+ 0%,
686
+ 100% {
687
+ transform: translate(0);
688
+ }
689
+
690
+ 20% {
691
+ transform: translate(-2px, 2px);
692
+ }
693
+
694
+ 40% {
695
+ transform: translate(-2px, -2px);
696
+ }
697
+
698
+ 60% {
699
+ transform: translate(2px, 2px);
700
+ }
701
+
702
+ 80% {
703
+ transform: translate(2px, -2px);
704
+ }
705
+ }
706
+
707
+ @keyframes glitch-2 {
708
+
709
+ 0%,
710
+ 100% {
711
+ transform: translate(0);
712
+ }
713
+
714
+ 20% {
715
+ transform: translate(2px, -2px);
716
+ }
717
+
718
+ 40% {
719
+ transform: translate(2px, 2px);
720
+ }
721
+
722
+ 60% {
723
+ transform: translate(-2px, -2px);
724
+ }
725
+
726
+ 80% {
727
+ transform: translate(-2px, 2px);
728
+ }
729
+ }
730
+
731
+ /* Hover Animation Utility */
732
+ .hover-animate {
733
+ transition: all 0.3s ease-in-out;
734
+ }
735
+
736
+ .hover-animate:hover {
737
+ transform: scale(1.05);
738
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
739
+ transform: translateY(-4px);
740
+ }
741
+
742
+ /* Enhanced typography for MDX content */
743
+ .prose {
744
+ color: var(--color-fd-text);
745
+ }
746
+
747
+ .prose h1,
748
+ .prose h2,
749
+ .prose h3,
750
+ .prose h4,
751
+ .prose h5,
752
+ .prose h6 {
753
+ color: var(--color-fd-text);
754
+ }
755
+
756
+ .prose a {
757
+ color: var(--color-fd-primary);
758
+ }
759
+
760
+ .prose a:hover {
761
+ color: var(--color-fd-accent);
762
+ }
763
+
764
+ /* Custom refined beige accent for code blocks */
765
+ .prose pre {
766
+ background-color: var(--color-fd-muted);
767
+ border: 1px solid var(--color-fd-border);
768
+ }
769
+
770
+ .prose code {
771
+ color: var(--color-fd-primary);
772
+ background-color: var(--color-fd-muted);
773
+ }
774
+
775
+ /* --- FORCE GLASS EFFECT FOR FLYOUT/POPOUT SIDEBAR --- */
776
+ .fixed[data-slot="sidebar-container"],
777
+ .absolute[data-slot="sidebar-container"],
778
+ .fixed.bg-sidebar,
779
+ .absolute.bg-sidebar,
780
+ .fixed[data-sidebar="sidebar"],
781
+ .absolute[data-sidebar="sidebar"],
782
+ .fixed[data-slot*="sidebar"],
783
+ .absolute[data-slot*="sidebar"],
784
+ .fixed.inset-y-0.left-0,
785
+ .absolute.inset-y-0.left-0,
786
+ .md\:flex[data-slot="sidebar-container"],
787
+ .md\:flex.bg-sidebar {
788
+ background-color: rgba(255, 255, 255, 0.85) !important;
789
+ backdrop-filter: blur(22px) !important;
790
+ -webkit-backdrop-filter: blur(22px) !important;
791
+ border: 1px solid rgba(255, 255, 255, 0.32) !important;
792
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;
793
+ z-index: 1000 !important;
794
+ }
795
+
796
+ .dark .fixed[data-slot="sidebar-container"],
797
+ .dark .absolute[data-slot="sidebar-container"],
798
+ .dark .fixed.bg-sidebar,
799
+ .dark .absolute.bg-sidebar,
800
+ .dark .fixed[data-sidebar="sidebar"],
801
+ .dark .absolute[data-sidebar="sidebar"],
802
+ .dark .fixed[data-slot*="sidebar"],
803
+ .dark .absolute[data-slot*="sidebar"],
804
+ .dark .fixed.inset-y-0.left-0,
805
+ .dark .absolute.inset-y-0.left-0,
806
+ .dark .md\:flex[data-slot="sidebar-container"],
807
+ .dark .md\:flex.bg-sidebar {
808
+ background-color: rgba(30, 41, 59, 0.85) !important;
809
+ backdrop-filter: blur(28px) !important;
810
+ -webkit-backdrop-filter: blur(28px) !important;
811
+ border: 1px solid rgba(148, 163, 184, 0.22) !important;
812
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
813
+ z-index: 1000 !important;
814
+ }