fancy-ui-svelte 0.4.0 → 0.5.0

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.
@@ -77,6 +77,15 @@ export const registry = {
77
77
  url: "https://ui.aceternity.com/components/apple-cards-carousel",
78
78
  },
79
79
  ],
80
+ tags: ["carousel", "cards", "animation", "spring", "scroll"],
81
+ props: [
82
+ {
83
+ name: "cards",
84
+ type: "AppleCardData[]",
85
+ description: "Cards to display in the carousel",
86
+ required: true,
87
+ },
88
+ ],
80
89
  },
81
90
  "animated-beam": {
82
91
  name: "AnimatedBeam",
@@ -85,6 +94,95 @@ export const registry = {
85
94
  category: "effects",
86
95
  status: "done",
87
96
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/animated-beam" }],
97
+ tags: ["animation", "svg", "beam", "gradient", "connection"],
98
+ props: [
99
+ {
100
+ name: "containerRef",
101
+ type: "HTMLElement",
102
+ description: "Reference to the container element that holds both endpoints",
103
+ required: true,
104
+ },
105
+ {
106
+ name: "fromRef",
107
+ type: "HTMLElement",
108
+ description: "Reference to the source element",
109
+ required: true,
110
+ },
111
+ {
112
+ name: "toRef",
113
+ type: "HTMLElement",
114
+ description: "Reference to the destination element",
115
+ required: true,
116
+ },
117
+ {
118
+ name: "curvature",
119
+ type: "number",
120
+ default: "0",
121
+ description: "Vertical curvature of the beam path",
122
+ },
123
+ {
124
+ name: "reverse",
125
+ type: "boolean",
126
+ default: "false",
127
+ description: "Reverse the animation direction",
128
+ },
129
+ {
130
+ name: "pathColor",
131
+ type: "string",
132
+ default: '"gray"',
133
+ description: "Color of the static background path",
134
+ },
135
+ { name: "pathWidth", type: "number", default: "2", description: "Stroke width of the path" },
136
+ {
137
+ name: "pathOpacity",
138
+ type: "number",
139
+ default: "0.2",
140
+ description: "Opacity of the background path",
141
+ },
142
+ {
143
+ name: "gradientStartColor",
144
+ type: "string",
145
+ default: '"#FFAA40"',
146
+ description: "Start color of the animated gradient",
147
+ },
148
+ {
149
+ name: "gradientStopColor",
150
+ type: "string",
151
+ default: '"#9C40FF"',
152
+ description: "End color of the animated gradient",
153
+ },
154
+ { name: "delay", type: "number", default: "0", description: "Animation delay in seconds" },
155
+ {
156
+ name: "duration",
157
+ type: "number",
158
+ default: "random 4-7",
159
+ description: "Animation duration in seconds",
160
+ },
161
+ {
162
+ name: "startXOffset",
163
+ type: "number",
164
+ default: "0",
165
+ description: "Horizontal offset for the start point",
166
+ },
167
+ {
168
+ name: "startYOffset",
169
+ type: "number",
170
+ default: "0",
171
+ description: "Vertical offset for the start point",
172
+ },
173
+ {
174
+ name: "endXOffset",
175
+ type: "number",
176
+ default: "0",
177
+ description: "Horizontal offset for the end point",
178
+ },
179
+ {
180
+ name: "endYOffset",
181
+ type: "number",
182
+ default: "0",
183
+ description: "Vertical offset for the end point",
184
+ },
185
+ ],
88
186
  },
89
187
  "animated-testimonials": {
90
188
  name: "AnimatedTestimonials",
@@ -92,6 +190,27 @@ export const registry = {
92
190
  description: "Testimonial carousel with smooth slide animations and optional autoplay",
93
191
  category: "data-display",
94
192
  status: "done",
193
+ tags: ["testimonials", "carousel", "animation", "social-proof"],
194
+ props: [
195
+ {
196
+ name: "testimonials",
197
+ type: "Testimonial[]",
198
+ description: "Array of testimonials to display",
199
+ required: true,
200
+ },
201
+ {
202
+ name: "autoplay",
203
+ type: "boolean",
204
+ default: "false",
205
+ description: "Auto-advance testimonials",
206
+ },
207
+ {
208
+ name: "interval",
209
+ type: "number",
210
+ default: "5000",
211
+ description: "Interval between auto-advances in ms",
212
+ },
213
+ ],
95
214
  },
96
215
  "bg-falling-stars": {
97
216
  name: "FallingStarsBg",
@@ -99,6 +218,11 @@ export const registry = {
99
218
  description: "Canvas-based 3D starfield with perspective projection, motion trails, and glow",
100
219
  category: "backgrounds",
101
220
  status: "done",
221
+ tags: ["background", "stars", "canvas", "animation", "3d", "space"],
222
+ props: [
223
+ { name: "color", type: "string", default: '"#FFF"', description: "Star color as hex string" },
224
+ { name: "count", type: "number", default: "200", description: "Number of stars" },
225
+ ],
102
226
  },
103
227
  "animated-tooltip": {
104
228
  name: "AnimatedTooltip",
@@ -109,6 +233,15 @@ export const registry = {
109
233
  credits: [
110
234
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/animated-tooltip" },
111
235
  ],
236
+ tags: ["tooltip", "avatar", "animation", "hover", "team"],
237
+ props: [
238
+ {
239
+ name: "items",
240
+ type: "TooltipItem[]",
241
+ description: "Array of items with id, name, designation, and image URL",
242
+ required: true,
243
+ },
244
+ ],
112
245
  },
113
246
  "blur-reveal": {
114
247
  name: "BlurReveal",
@@ -117,6 +250,36 @@ export const registry = {
117
250
  category: "text",
118
251
  status: "done",
119
252
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/blur-fade" }],
253
+ tags: ["animation", "reveal", "blur", "scroll", "stagger"],
254
+ props: [
255
+ {
256
+ name: "duration",
257
+ type: "number",
258
+ default: "1",
259
+ description: "Animation duration in seconds",
260
+ },
261
+ {
262
+ name: "delay",
263
+ type: "number",
264
+ default: "0.2",
265
+ description: "Stagger delay between children in seconds",
266
+ },
267
+ {
268
+ name: "blur",
269
+ type: "string",
270
+ default: '"20px"',
271
+ description: "Initial blur amount (CSS value)",
272
+ },
273
+ {
274
+ name: "yOffset",
275
+ type: "number",
276
+ default: "20",
277
+ description: "Initial vertical offset in pixels",
278
+ },
279
+ ],
280
+ slots: [
281
+ { name: "children", description: "Content elements to reveal with staggered animation" },
282
+ ],
120
283
  },
121
284
  "border-beam": {
122
285
  name: "BorderBeam",
@@ -125,6 +288,31 @@ export const registry = {
125
288
  category: "effects",
126
289
  status: "done",
127
290
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/border-beam" }],
291
+ tags: ["animation", "border", "gradient", "beam"],
292
+ props: [
293
+ { name: "size", type: "number", default: "200", description: "Size of the beam in pixels" },
294
+ {
295
+ name: "duration",
296
+ type: "number",
297
+ default: "15",
298
+ description: "Animation duration in seconds",
299
+ },
300
+ {
301
+ name: "borderWidth",
302
+ type: "number",
303
+ default: "1.5",
304
+ description: "Border width in pixels",
305
+ },
306
+ { name: "anchor", type: "number", default: "90", description: "Anchor position (0-100)" },
307
+ {
308
+ name: "colorFrom",
309
+ type: "string",
310
+ default: '"#ffaa40"',
311
+ description: "Gradient start color",
312
+ },
313
+ { name: "colorTo", type: "string", default: '"#9c40ff"', description: "Gradient end color" },
314
+ { name: "delay", type: "number", default: "0", description: "Animation delay in seconds" },
315
+ ],
128
316
  },
129
317
  compare: {
130
318
  name: "Compare",
@@ -133,6 +321,86 @@ export const registry = {
133
321
  category: "media",
134
322
  status: "done",
135
323
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/compare" }],
324
+ tags: ["media", "image", "slider", "comparison", "before-after", "interactive"],
325
+ props: [
326
+ {
327
+ name: "firstImage",
328
+ type: "string",
329
+ default: '""',
330
+ description: "URL of the first (left) image",
331
+ },
332
+ {
333
+ name: "secondImage",
334
+ type: "string",
335
+ default: '""',
336
+ description: "URL of the second (right) image",
337
+ },
338
+ {
339
+ name: "firstImageAlt",
340
+ type: "string",
341
+ default: '"First image"',
342
+ description: "Alt text for the first image",
343
+ },
344
+ {
345
+ name: "secondImageAlt",
346
+ type: "string",
347
+ default: '"Second image"',
348
+ description: "Alt text for the second image",
349
+ },
350
+ {
351
+ name: "firstContentClass",
352
+ type: "string",
353
+ default: '""',
354
+ description: "CSS classes for the first content container",
355
+ },
356
+ {
357
+ name: "secondContentClass",
358
+ type: "string",
359
+ default: '""',
360
+ description: "CSS classes for the second content container",
361
+ },
362
+ {
363
+ name: "initialSliderPercentage",
364
+ type: "number",
365
+ default: "50",
366
+ description: "Initial slider position (0-100)",
367
+ },
368
+ {
369
+ name: "slideMode",
370
+ type: '"hover" | "drag"',
371
+ default: '"hover"',
372
+ description: "How the slider is controlled",
373
+ },
374
+ {
375
+ name: "showHandlebar",
376
+ type: "boolean",
377
+ default: "true",
378
+ description: "Show the drag handle bar",
379
+ },
380
+ {
381
+ name: "autoplay",
382
+ type: "boolean",
383
+ default: "false",
384
+ description: "Automatically animate the slider back and forth",
385
+ },
386
+ {
387
+ name: "autoplayDuration",
388
+ type: "number",
389
+ default: "5000",
390
+ description: "Duration of one autoplay cycle in ms",
391
+ },
392
+ ],
393
+ slots: [
394
+ {
395
+ name: "firstContent",
396
+ description: "Custom content to render in the first (left) panel instead of an image",
397
+ },
398
+ {
399
+ name: "secondContent",
400
+ description: "Custom content to render in the second (right) panel instead of an image",
401
+ },
402
+ { name: "handle", description: "Custom drag handle element" },
403
+ ],
136
404
  },
137
405
  "image-trail-cursor": {
138
406
  name: "ImageTrailCursor",
@@ -140,6 +408,21 @@ export const registry = {
140
408
  description: "Cursor-following image trail with 8 animation variants",
141
409
  category: "effects",
142
410
  status: "done",
411
+ tags: ["cursor", "animation", "images", "trail", "interactive"],
412
+ props: [
413
+ {
414
+ name: "images",
415
+ type: "string[]",
416
+ default: "[]",
417
+ description: "Array of image URLs to show in the trail",
418
+ },
419
+ {
420
+ name: "variant",
421
+ type: '"type1" | "type2" | ... | "type8"',
422
+ default: '"type1"',
423
+ description: "Animation variant controlling how images appear and move",
424
+ },
425
+ ],
143
426
  },
144
427
  "interactive-grid-pattern": {
145
428
  name: "InteractiveGridPattern",
@@ -153,6 +436,32 @@ export const registry = {
153
436
  url: "https://magicui.design/docs/components/interactive-grid-pattern",
154
437
  },
155
438
  ],
439
+ tags: ["grid", "pattern", "interactive", "hover", "svg", "background"],
440
+ props: [
441
+ {
442
+ name: "squaresClassName",
443
+ type: "string",
444
+ description: "Additional CSS classes for individual squares",
445
+ },
446
+ {
447
+ name: "width",
448
+ type: "number",
449
+ default: "40",
450
+ description: "Width of each square in pixels",
451
+ },
452
+ {
453
+ name: "height",
454
+ type: "number",
455
+ default: "40",
456
+ description: "Height of each square in pixels",
457
+ },
458
+ {
459
+ name: "squares",
460
+ type: "[number, number]",
461
+ default: "[24, 24]",
462
+ description: "Grid dimensions as [columns, rows]",
463
+ },
464
+ ],
156
465
  },
157
466
  "line-hover-link": {
158
467
  name: "LineHoverLink",
@@ -161,6 +470,20 @@ export const registry = {
161
470
  category: "navigation",
162
471
  status: "done",
163
472
  credits: [{ source: "VengenceUI", url: "https://www.vengence-ui.com/docs/line-hover-link" }],
473
+ tags: ["link", "navigation", "hover", "animation", "underline", "css"],
474
+ props: [
475
+ {
476
+ name: "variant",
477
+ type: '"slide" | "double" | "grow" | "strike" | "fade" | "pulse" | "swap" | "sweep" | "bounce" | "arc" | "scribble"',
478
+ default: '"slide"',
479
+ description: "The animation variant",
480
+ },
481
+ { name: "href", type: "string", default: '"#"', description: "Link href" },
482
+ { name: "target", type: "string", description: "Link target attribute" },
483
+ { name: "rel", type: "string", description: "Link rel attribute" },
484
+ { name: "aria-label", type: "string", description: "Accessible label" },
485
+ ],
486
+ slots: [{ name: "children", description: "Link text content" }],
164
487
  },
165
488
  "logo-cloud": {
166
489
  name: "LogoCloud",
@@ -169,6 +492,16 @@ export const registry = {
169
492
  category: "data-display",
170
493
  status: "done",
171
494
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/marquee" }],
495
+ tags: ["logos", "marquee", "brands", "animation", "scrolling"],
496
+ props: [
497
+ { name: "title", type: "string", description: "Optional title displayed above the logos" },
498
+ {
499
+ name: "logos",
500
+ type: "Logo[]",
501
+ default: "[]",
502
+ description: "Array of logos with name and image path",
503
+ },
504
+ ],
172
505
  },
173
506
  "direction-aware-hover": {
174
507
  name: "DirectionAwareHover",
@@ -182,6 +515,34 @@ export const registry = {
182
515
  url: "https://ui.aceternity.com/components/direction-aware-hover",
183
516
  },
184
517
  ],
518
+ tags: ["card", "hover", "image", "animation", "direction", "interactive"],
519
+ props: [
520
+ {
521
+ name: "imageUrl",
522
+ type: "string",
523
+ description: "URL of the background image",
524
+ required: true,
525
+ },
526
+ {
527
+ name: "imageAlt",
528
+ type: "string",
529
+ default: '"image"',
530
+ description: "Alt text for the image",
531
+ },
532
+ {
533
+ name: "childrenClass",
534
+ type: "string",
535
+ default: '""',
536
+ description: "CSS classes for the overlay content wrapper",
537
+ },
538
+ {
539
+ name: "imageClass",
540
+ type: "string",
541
+ default: '""',
542
+ description: "CSS classes for the image element",
543
+ },
544
+ ],
545
+ slots: [{ name: "children", description: "Content shown in the overlay when hovered" }],
185
546
  },
186
547
  "rainbow-button": {
187
548
  name: "RainbowButton",
@@ -190,6 +551,12 @@ export const registry = {
190
551
  category: "buttons",
191
552
  status: "done",
192
553
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/rainbow-button" }],
554
+ tags: ["button", "animation", "rainbow", "gradient", "cta"],
555
+ props: [
556
+ { name: "speed", type: "number", default: "2", description: "Animation speed in seconds" },
557
+ { name: "href", type: "string", description: "Render as anchor element when provided" },
558
+ ],
559
+ slots: [{ name: "children", description: "Button label content" }],
193
560
  },
194
561
  "ripple-button": {
195
562
  name: "RippleButton",
@@ -198,6 +565,22 @@ export const registry = {
198
565
  category: "buttons",
199
566
  status: "done",
200
567
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/ripple-button" }],
568
+ tags: ["button", "ripple", "click", "animation", "material"],
569
+ props: [
570
+ {
571
+ name: "rippleColor",
572
+ type: "string",
573
+ default: '"#ADD8E6"',
574
+ description: "Color of the ripple effect",
575
+ },
576
+ {
577
+ name: "duration",
578
+ type: "number",
579
+ default: "600",
580
+ description: "Animation duration in milliseconds",
581
+ },
582
+ ],
583
+ slots: [{ name: "children", description: "Button content" }],
201
584
  },
202
585
  "shimmer-button": {
203
586
  name: "ShimmerButton",
@@ -206,6 +589,40 @@ export const registry = {
206
589
  category: "buttons",
207
590
  status: "done",
208
591
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/shimmer-button" }],
592
+ tags: ["button", "shimmer", "gradient", "animation", "cta"],
593
+ props: [
594
+ {
595
+ name: "shimmerColor",
596
+ type: "string",
597
+ default: '"#ffffff"',
598
+ description: "Shimmer highlight color",
599
+ },
600
+ {
601
+ name: "shimmerSize",
602
+ type: "string",
603
+ default: '"0.05em"',
604
+ description: "Thickness of the shimmer border",
605
+ },
606
+ {
607
+ name: "borderRadius",
608
+ type: "string",
609
+ default: '"100px"',
610
+ description: "Button border radius",
611
+ },
612
+ {
613
+ name: "shimmerDuration",
614
+ type: "string",
615
+ default: '"3s"',
616
+ description: "Duration of the shimmer animation cycle",
617
+ },
618
+ {
619
+ name: "background",
620
+ type: "string",
621
+ default: '"rgba(0, 0, 0, 1)"',
622
+ description: "Button background color",
623
+ },
624
+ ],
625
+ slots: [{ name: "children", description: "Button content" }],
209
626
  },
210
627
  timeline: {
211
628
  name: "Timeline",
@@ -214,6 +631,23 @@ export const registry = {
214
631
  category: "navigation",
215
632
  status: "done",
216
633
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/timeline" }],
634
+ tags: ["timeline", "scroll", "navigation", "progress", "vertical"],
635
+ props: [
636
+ {
637
+ name: "items",
638
+ type: "TimelineItem[]",
639
+ default: "[]",
640
+ description: "Timeline entries with id and label",
641
+ },
642
+ { name: "title", type: "string", description: "Heading text" },
643
+ { name: "description", type: "string", description: "Subheading text" },
644
+ ],
645
+ slots: [
646
+ {
647
+ name: "content",
648
+ description: "Content snippet called for each timeline item, receives the item as argument",
649
+ },
650
+ ],
217
651
  },
218
652
  "bg-stars": {
219
653
  name: "StarsBackground",
@@ -224,6 +658,35 @@ export const registry = {
224
658
  credits: [
225
659
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/stars-background" },
226
660
  ],
661
+ tags: ["background", "stars", "parallax", "animation", "space", "mouse"],
662
+ props: [
663
+ {
664
+ name: "factor",
665
+ type: "number",
666
+ default: "0.05",
667
+ description: "Parallax factor for mouse movement",
668
+ },
669
+ {
670
+ name: "speed",
671
+ type: "number",
672
+ default: "50",
673
+ description: "Base animation speed in seconds",
674
+ },
675
+ {
676
+ name: "stiffness",
677
+ type: "number",
678
+ default: "50",
679
+ description: "Spring stiffness for parallax",
680
+ },
681
+ {
682
+ name: "damping",
683
+ type: "number",
684
+ default: "20",
685
+ description: "Spring damping for parallax",
686
+ },
687
+ { name: "starColor", type: "string", default: '"#fff"', description: "Color of the stars" },
688
+ ],
689
+ slots: [{ name: "children", description: "Child content to render over the stars" }],
227
690
  },
228
691
  dock: {
229
692
  name: "Dock",
@@ -232,6 +695,34 @@ export const registry = {
232
695
  category: "navigation",
233
696
  status: "done",
234
697
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/dock" }],
698
+ tags: ["dock", "navigation", "macos", "magnification", "hover"],
699
+ props: [
700
+ {
701
+ name: "magnification",
702
+ type: "number",
703
+ default: "60",
704
+ description: "Maximum icon size in pixels when magnified",
705
+ },
706
+ {
707
+ name: "distance",
708
+ type: "number",
709
+ default: "140",
710
+ description: "Distance in pixels over which magnification takes effect",
711
+ },
712
+ {
713
+ name: "direction",
714
+ type: '"top" | "middle" | "bottom"',
715
+ default: '"middle"',
716
+ description: "Vertical alignment of icons relative to the dock bar",
717
+ },
718
+ {
719
+ name: "orientation",
720
+ type: '"horizontal" | "vertical"',
721
+ default: '"horizontal"',
722
+ description: "Dock orientation",
723
+ },
724
+ ],
725
+ slots: [{ name: "children", description: "DockIcon and DockSeparator elements" }],
235
726
  },
236
727
  "fluid-cursor": {
237
728
  name: "FluidCursor",
@@ -242,6 +733,138 @@ export const registry = {
242
733
  credits: [
243
734
  { source: "Inspira UI", url: "https://inspira-ui.com/components/cursor/fluid-cursor" },
244
735
  ],
736
+ tags: ["cursor", "webgl", "fluid", "simulation", "interactive"],
737
+ props: [
738
+ {
739
+ name: "simResolution",
740
+ type: "number",
741
+ default: "128",
742
+ description: "Simulation grid resolution",
743
+ },
744
+ {
745
+ name: "dyeResolution",
746
+ type: "number",
747
+ default: "1440",
748
+ description: "Dye/color buffer resolution",
749
+ },
750
+ {
751
+ name: "captureResolution",
752
+ type: "number",
753
+ default: "512",
754
+ description: "Capture buffer resolution",
755
+ },
756
+ {
757
+ name: "densityDissipation",
758
+ type: "number",
759
+ default: "3.5",
760
+ description: "Rate at which density fades",
761
+ },
762
+ {
763
+ name: "velocityDissipation",
764
+ type: "number",
765
+ default: "2",
766
+ description: "Rate at which velocity fades",
767
+ },
768
+ { name: "pressure", type: "number", default: "0.1", description: "Pressure solver strength" },
769
+ {
770
+ name: "pressureIterations",
771
+ type: "number",
772
+ default: "20",
773
+ description: "Number of pressure solver iterations",
774
+ },
775
+ { name: "curl", type: "number", default: "3", description: "Amount of curl/vorticity" },
776
+ {
777
+ name: "splatRadius",
778
+ type: "number",
779
+ default: "0.2",
780
+ description: "Radius of fluid splats",
781
+ },
782
+ { name: "splatForce", type: "number", default: "6000", description: "Force of fluid splats" },
783
+ { name: "shading", type: "boolean", default: "true", description: "Enable fluid shading" },
784
+ {
785
+ name: "colorUpdateSpeed",
786
+ type: "number",
787
+ default: "10",
788
+ description: "Speed of color changes",
789
+ },
790
+ {
791
+ name: "backColor",
792
+ type: "ColorRGB | string",
793
+ default: "{ r: 0.5, g: 0, b: 0 }",
794
+ description: "Background color",
795
+ },
796
+ {
797
+ name: "transparent",
798
+ type: "boolean",
799
+ default: "true",
800
+ description: "Transparent background",
801
+ },
802
+ { name: "fluidColor", type: "string", description: "Override all fluid with a single color" },
803
+ {
804
+ name: "fluidColors",
805
+ type: "string[]",
806
+ description: "Array of colors to cycle through for fluid splats",
807
+ },
808
+ {
809
+ name: "colorIntensity",
810
+ type: "number",
811
+ default: "0.15",
812
+ description: "Intensity of color mixing",
813
+ },
814
+ {
815
+ name: "autoSplat",
816
+ type: "boolean",
817
+ default: "false",
818
+ description: "Automatically create random splats",
819
+ },
820
+ {
821
+ name: "autoSplatInterval",
822
+ type: "number",
823
+ default: "1500",
824
+ description: "Interval between auto-splats in ms",
825
+ },
826
+ {
827
+ name: "interactive",
828
+ type: "boolean",
829
+ default: "true",
830
+ description: "React to mouse/touch input",
831
+ },
832
+ {
833
+ name: "pauseWhenHidden",
834
+ type: "boolean",
835
+ default: "true",
836
+ description: "Pause simulation when tab is hidden",
837
+ },
838
+ {
839
+ name: "splatOnMount",
840
+ type: "boolean",
841
+ default: "false",
842
+ description: "Create a splat on mount",
843
+ },
844
+ {
845
+ name: "allowMultiple",
846
+ type: "boolean",
847
+ default: "false",
848
+ description: "Allow multiple instances simultaneously",
849
+ },
850
+ {
851
+ name: "contained",
852
+ type: "boolean",
853
+ default: "true",
854
+ description: "Confine simulation to parent container",
855
+ },
856
+ ],
857
+ },
858
+ "fluid-cursor-advanced": {
859
+ name: "FluidCursorAdvanced",
860
+ slug: "fluid-cursor-advanced",
861
+ description: "WebGL fluid simulation confined to a parent container element",
862
+ category: "effects",
863
+ status: "done",
864
+ credits: [
865
+ { source: "Inspira UI", url: "https://inspira-ui.com/components/cursor/fluid-cursor" },
866
+ ],
867
+ tags: ["cursor", "webgl", "fluid", "simulation", "interactive", "contained"],
245
868
  },
246
869
  "glow-border": {
247
870
  name: "GlowBorder",
@@ -252,6 +875,28 @@ export const registry = {
252
875
  credits: [
253
876
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/background-gradient" },
254
877
  ],
878
+ tags: ["border", "glow", "animation", "gradient", "decoration"],
879
+ props: [
880
+ {
881
+ name: "borderRadius",
882
+ type: "number",
883
+ default: "10",
884
+ description: "Border radius in pixels",
885
+ },
886
+ {
887
+ name: "color",
888
+ type: "string | string[]",
889
+ default: '"#FFF"',
890
+ description: "Glow color or array of colors for gradient",
891
+ },
892
+ { name: "borderWidth", type: "number", default: "2", description: "Border width in pixels" },
893
+ {
894
+ name: "duration",
895
+ type: "number",
896
+ default: "10",
897
+ description: "Animation duration in seconds",
898
+ },
899
+ ],
255
900
  },
256
901
  "gradient-button": {
257
902
  name: "GradientButton",
@@ -262,6 +907,41 @@ export const registry = {
262
907
  credits: [
263
908
  { source: "Inspira UI", url: "https://inspira-ui.com/components/buttons/gradient-button" },
264
909
  ],
910
+ tags: ["button", "gradient", "animation", "rainbow", "border", "cta"],
911
+ props: [
912
+ {
913
+ name: "colors",
914
+ type: "string[]",
915
+ default: '["#FF0000","#FFA500","#FFFF00","#008000","#0000FF","#4B0082","#EE82EE","#FF0000"]',
916
+ description: "Gradient colors for the conic-gradient border",
917
+ },
918
+ {
919
+ name: "duration",
920
+ type: "number",
921
+ default: "2500",
922
+ description: "Animation duration in milliseconds",
923
+ },
924
+ { name: "borderWidth", type: "number", default: "2", description: "Border width in pixels" },
925
+ {
926
+ name: "borderRadius",
927
+ type: "number",
928
+ default: "8",
929
+ description: "Border radius in pixels",
930
+ },
931
+ {
932
+ name: "blur",
933
+ type: "number",
934
+ default: "4",
935
+ description: "Blur amount for the gradient in pixels",
936
+ },
937
+ {
938
+ name: "bgColor",
939
+ type: "string",
940
+ default: '"#000"',
941
+ description: "Background color of the button content area",
942
+ },
943
+ ],
944
+ slots: [{ name: "children", description: "Button content" }],
265
945
  },
266
946
  "interactive-hover-button": {
267
947
  name: "InteractiveHoverButton",
@@ -275,6 +955,16 @@ export const registry = {
275
955
  url: "https://magicui.design/docs/components/interactive-hover-button",
276
956
  },
277
957
  ],
958
+ tags: ["button", "hover", "animation", "interactive", "reveal"],
959
+ props: [
960
+ {
961
+ name: "text",
962
+ type: "string",
963
+ default: '"Button"',
964
+ description: "Button label text (used when children slot is not provided)",
965
+ },
966
+ ],
967
+ slots: [{ name: "children", description: "Button content (overrides text prop)" }],
278
968
  },
279
969
  marquee: {
280
970
  name: "Marquee",
@@ -283,6 +973,34 @@ export const registry = {
283
973
  category: "layout",
284
974
  status: "done",
285
975
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/marquee" }],
976
+ tags: ["marquee", "scrolling", "animation", "layout", "infinite"],
977
+ props: [
978
+ {
979
+ name: "reverse",
980
+ type: "boolean",
981
+ default: "false",
982
+ description: "Reverse the scroll direction",
983
+ },
984
+ {
985
+ name: "pauseOnHover",
986
+ type: "boolean",
987
+ default: "false",
988
+ description: "Pause animation on hover",
989
+ },
990
+ {
991
+ name: "vertical",
992
+ type: "boolean",
993
+ default: "false",
994
+ description: "Scroll vertically instead of horizontally",
995
+ },
996
+ {
997
+ name: "repeat",
998
+ type: "number",
999
+ default: "4",
1000
+ description: "Number of times to repeat children for seamless loop",
1001
+ },
1002
+ ],
1003
+ slots: [{ name: "children", description: "Content to repeat and scroll" }],
286
1004
  },
287
1005
  meteors: {
288
1006
  name: "Meteors",
@@ -291,6 +1009,10 @@ export const registry = {
291
1009
  category: "effects",
292
1010
  status: "done",
293
1011
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/meteors" }],
1012
+ tags: ["animation", "meteors", "particles", "decoration", "space"],
1013
+ props: [
1014
+ { name: "count", type: "number", default: "20", description: "Number of meteors to render" },
1015
+ ],
294
1016
  },
295
1017
  "flickering-grid": {
296
1018
  name: "FlickeringGrid",
@@ -301,6 +1023,49 @@ export const registry = {
301
1023
  credits: [
302
1024
  { source: "Magic UI", url: "https://magicui.design/docs/components/flickering-grid" },
303
1025
  ],
1026
+ tags: ["background", "grid", "canvas", "animation", "pattern"],
1027
+ props: [
1028
+ {
1029
+ name: "squareSize",
1030
+ type: "number",
1031
+ default: "4",
1032
+ description: "Size of each grid square in pixels",
1033
+ },
1034
+ {
1035
+ name: "gridGap",
1036
+ type: "number",
1037
+ default: "6",
1038
+ description: "Gap between squares in pixels",
1039
+ },
1040
+ {
1041
+ name: "flickerChance",
1042
+ type: "number",
1043
+ default: "0.3",
1044
+ description: "Probability of a square changing opacity each second (0-1)",
1045
+ },
1046
+ {
1047
+ name: "color",
1048
+ type: "string",
1049
+ default: '"#000000"',
1050
+ description: "Color of the squares (hex format)",
1051
+ },
1052
+ {
1053
+ name: "maxOpacity",
1054
+ type: "number",
1055
+ default: "0.3",
1056
+ description: "Maximum opacity of squares (0-1)",
1057
+ },
1058
+ {
1059
+ name: "width",
1060
+ type: "number",
1061
+ description: "Fixed width in pixels (defaults to container width)",
1062
+ },
1063
+ {
1064
+ name: "height",
1065
+ type: "number",
1066
+ description: "Fixed height in pixels (defaults to container height)",
1067
+ },
1068
+ ],
304
1069
  },
305
1070
  "neon-border": {
306
1071
  name: "NeonBorder",
@@ -311,6 +1076,26 @@ export const registry = {
311
1076
  credits: [
312
1077
  { source: "Magic UI", url: "https://magicui.design/docs/components/neon-gradient-card" },
313
1078
  ],
1079
+ tags: ["border", "neon", "glow", "animation", "gradient", "decoration"],
1080
+ props: [
1081
+ { name: "color1", type: "string", default: '"#0496ff"', description: "First neon color" },
1082
+ { name: "color2", type: "string", default: '"#ff0a54"', description: "Second neon color" },
1083
+ {
1084
+ name: "animationType",
1085
+ type: '"none" | "half" | "full"',
1086
+ default: '"half"',
1087
+ description: "Animation type: none (static), half (50% coverage), full (100% coverage)",
1088
+ },
1089
+ {
1090
+ name: "duration",
1091
+ type: "number",
1092
+ default: "6",
1093
+ description: "Animation duration in seconds",
1094
+ },
1095
+ ],
1096
+ slots: [
1097
+ { name: "children", description: "Content to display inside the neon border container" },
1098
+ ],
314
1099
  },
315
1100
  "colourful-text": {
316
1101
  name: "ColourfulText",
@@ -321,6 +1106,28 @@ export const registry = {
321
1106
  credits: [
322
1107
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/colourful-text" },
323
1108
  ],
1109
+ tags: ["text", "animation", "color", "gradient", "typography"],
1110
+ props: [
1111
+ { name: "text", type: "string", description: "Text to animate", required: true },
1112
+ {
1113
+ name: "colors",
1114
+ type: "string[]",
1115
+ default: "[10 preset colors]",
1116
+ description: "Array of colors to cycle through",
1117
+ },
1118
+ {
1119
+ name: "startColor",
1120
+ type: "string",
1121
+ default: '"rgb(255, 255, 255)"',
1122
+ description: "Initial color before animation",
1123
+ },
1124
+ {
1125
+ name: "duration",
1126
+ type: "number",
1127
+ default: "0.5",
1128
+ description: "Transition duration in seconds for each character",
1129
+ },
1130
+ ],
324
1131
  },
325
1132
  "flip-words": {
326
1133
  name: "FlipWords",
@@ -329,6 +1136,21 @@ export const registry = {
329
1136
  category: "text",
330
1137
  status: "done",
331
1138
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/flip-words" }],
1139
+ tags: ["text", "animation", "words", "cycling", "typography", "blur"],
1140
+ props: [
1141
+ {
1142
+ name: "words",
1143
+ type: "string[]",
1144
+ description: "Array of words to cycle through",
1145
+ required: true,
1146
+ },
1147
+ {
1148
+ name: "duration",
1149
+ type: "number",
1150
+ default: "3000",
1151
+ description: "Time each word stays visible in ms",
1152
+ },
1153
+ ],
332
1154
  },
333
1155
  "hyper-text": {
334
1156
  name: "HyperText",
@@ -337,6 +1159,22 @@ export const registry = {
337
1159
  category: "text",
338
1160
  status: "done",
339
1161
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/hyper-text" }],
1162
+ tags: ["text", "animation", "scramble", "hover", "glitch", "typography"],
1163
+ props: [
1164
+ { name: "text", type: "string", description: "Text to display and scramble", required: true },
1165
+ {
1166
+ name: "duration",
1167
+ type: "number",
1168
+ default: "800",
1169
+ description: "Total animation duration in ms",
1170
+ },
1171
+ {
1172
+ name: "animateOnLoad",
1173
+ type: "boolean",
1174
+ default: "false",
1175
+ description: "Whether to animate on initial load",
1176
+ },
1177
+ ],
340
1178
  },
341
1179
  "letter-pullup": {
342
1180
  name: "LetterPullup",
@@ -345,6 +1183,21 @@ export const registry = {
345
1183
  category: "text",
346
1184
  status: "done",
347
1185
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/letter-pullup" }],
1186
+ tags: ["text", "animation", "letters", "stagger", "entrance", "typography"],
1187
+ props: [
1188
+ {
1189
+ name: "words",
1190
+ type: "string",
1191
+ description: "Text to animate (each character gets its own animation)",
1192
+ required: true,
1193
+ },
1194
+ {
1195
+ name: "delay",
1196
+ type: "number",
1197
+ default: "0.05",
1198
+ description: "Delay between each letter animation in seconds",
1199
+ },
1200
+ ],
348
1201
  },
349
1202
  "number-ticker": {
350
1203
  name: "NumberTicker",
@@ -353,6 +1206,34 @@ export const registry = {
353
1206
  category: "text",
354
1207
  status: "done",
355
1208
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/number-ticker" }],
1209
+ tags: ["text", "counter", "animation", "number", "scroll", "statistics"],
1210
+ props: [
1211
+ { name: "value", type: "number", default: "0", description: "Target number to animate to" },
1212
+ {
1213
+ name: "direction",
1214
+ type: '"up" | "down"',
1215
+ default: '"up"',
1216
+ description: 'Animation direction: "up" counts 0→value, "down" counts value→0',
1217
+ },
1218
+ {
1219
+ name: "duration",
1220
+ type: "number",
1221
+ default: "1000",
1222
+ description: "Animation duration in ms",
1223
+ },
1224
+ {
1225
+ name: "delay",
1226
+ type: "number",
1227
+ default: "0",
1228
+ description: "Delay before animation starts in ms",
1229
+ },
1230
+ {
1231
+ name: "decimalPlaces",
1232
+ type: "number",
1233
+ default: "0",
1234
+ description: "Number of decimal places to display",
1235
+ },
1236
+ ],
356
1237
  },
357
1238
  "sparkles-text": {
358
1239
  name: "SparklesText",
@@ -361,6 +1242,22 @@ export const registry = {
361
1242
  category: "text",
362
1243
  status: "done",
363
1244
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/sparkles" }],
1245
+ tags: ["text", "sparkles", "animation", "stars", "decoration", "typography"],
1246
+ props: [
1247
+ { name: "text", type: "string", description: "Text to display", required: true },
1248
+ {
1249
+ name: "sparklesCount",
1250
+ type: "number",
1251
+ default: "10",
1252
+ description: "Number of sparkle stars",
1253
+ },
1254
+ {
1255
+ name: "colors",
1256
+ type: "{ first: string; second: string }",
1257
+ default: '{ first: "#9E7AFF", second: "#FE8BBB" }',
1258
+ description: "Two colors for sparkle stars",
1259
+ },
1260
+ ],
364
1261
  },
365
1262
  "box-reveal": {
366
1263
  name: "BoxReveal",
@@ -369,6 +1266,28 @@ export const registry = {
369
1266
  category: "text",
370
1267
  status: "done",
371
1268
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/box-reveal" }],
1269
+ tags: ["text", "animation", "reveal", "scroll", "entrance"],
1270
+ props: [
1271
+ {
1272
+ name: "color",
1273
+ type: "string",
1274
+ default: '"#5046e6"',
1275
+ description: "Color of the reveal box",
1276
+ },
1277
+ {
1278
+ name: "duration",
1279
+ type: "number",
1280
+ default: "0.5",
1281
+ description: "Animation duration in seconds",
1282
+ },
1283
+ {
1284
+ name: "delay",
1285
+ type: "number",
1286
+ default: "0.25",
1287
+ description: "Delay before animation starts in seconds",
1288
+ },
1289
+ ],
1290
+ slots: [{ name: "children", description: "Content to reveal" }],
372
1291
  },
373
1292
  "card-3d": {
374
1293
  name: "Card3D",
@@ -379,6 +1298,16 @@ export const registry = {
379
1298
  credits: [
380
1299
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/3d-card-effect" },
381
1300
  ],
1301
+ tags: ["card", "3d", "perspective", "hover", "animation", "interactive"],
1302
+ props: [
1303
+ {
1304
+ name: "containerClass",
1305
+ type: "string",
1306
+ default: '""',
1307
+ description: "CSS classes for the outer perspective wrapper",
1308
+ },
1309
+ ],
1310
+ slots: [{ name: "children", description: "CardBody and CardItem elements" }],
382
1311
  },
383
1312
  "card-spotlight": {
384
1313
  name: "CardSpotlight",
@@ -389,6 +1318,34 @@ export const registry = {
389
1318
  credits: [
390
1319
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/card-spotlight" },
391
1320
  ],
1321
+ tags: ["card", "spotlight", "mouse", "gradient", "interactive", "hover"],
1322
+ props: [
1323
+ {
1324
+ name: "slotClass",
1325
+ type: "string",
1326
+ default: '""',
1327
+ description: "CSS classes for the inner content wrapper",
1328
+ },
1329
+ {
1330
+ name: "gradientSize",
1331
+ type: "number",
1332
+ default: "200",
1333
+ description: "Size of the spotlight gradient in pixels",
1334
+ },
1335
+ {
1336
+ name: "gradientColor",
1337
+ type: "string",
1338
+ default: '"#262626"',
1339
+ description: "Color of the spotlight gradient",
1340
+ },
1341
+ {
1342
+ name: "gradientOpacity",
1343
+ type: "number",
1344
+ default: "0.8",
1345
+ description: "Opacity of the spotlight gradient",
1346
+ },
1347
+ ],
1348
+ slots: [{ name: "children", description: "Card content" }],
392
1349
  },
393
1350
  "bento-grid": {
394
1351
  name: "BentoGrid",
@@ -397,6 +1354,8 @@ export const registry = {
397
1354
  category: "cards",
398
1355
  status: "done",
399
1356
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/bento-grid" }],
1357
+ tags: ["grid", "layout", "bento", "cards", "dashboard"],
1358
+ slots: [{ name: "children", description: "BentoGridItem components to arrange in the grid" }],
400
1359
  },
401
1360
  "flip-card": {
402
1361
  name: "FlipCard",
@@ -404,6 +1363,19 @@ export const registry = {
404
1363
  description: "Card that flips to reveal back content on hover using CSS 3D transforms",
405
1364
  category: "cards",
406
1365
  status: "done",
1366
+ tags: ["card", "flip", "3d", "hover", "animation", "interactive"],
1367
+ props: [
1368
+ {
1369
+ name: "rotate",
1370
+ type: '"x" | "y"',
1371
+ default: '"y"',
1372
+ description: "Axis of rotation for the flip effect",
1373
+ },
1374
+ ],
1375
+ slots: [
1376
+ { name: "children", description: "Front face content" },
1377
+ { name: "back", description: "Back face content revealed on hover" },
1378
+ ],
407
1379
  },
408
1380
  book: {
409
1381
  name: "Book",
@@ -412,6 +1384,36 @@ export const registry = {
412
1384
  category: "cards",
413
1385
  status: "done",
414
1386
  credits: [{ source: "Inspira UI", url: "https://inspira-ui.com/components/cards/book" }],
1387
+ tags: ["card", "book", "3d", "hover", "animation"],
1388
+ props: [
1389
+ {
1390
+ name: "duration",
1391
+ type: "number",
1392
+ default: "1000",
1393
+ description: "Hover animation duration in ms",
1394
+ },
1395
+ {
1396
+ name: "color",
1397
+ type: "BookColor",
1398
+ default: '"zinc"',
1399
+ description: "Color theme for the book cover gradient",
1400
+ },
1401
+ {
1402
+ name: "isStatic",
1403
+ type: "boolean",
1404
+ default: "false",
1405
+ description: "Show book in open position without hover animation",
1406
+ },
1407
+ { name: "size", type: "BookSize", default: '"md"', description: "Size variant of the book" },
1408
+ { name: "radius", type: "BookRadius", default: '"md"', description: "Border radius variant" },
1409
+ {
1410
+ name: "shadowSize",
1411
+ type: "BookShadowSize",
1412
+ default: '"lg"',
1413
+ description: "Drop shadow size variant",
1414
+ },
1415
+ ],
1416
+ slots: [{ name: "children", description: "Content rendered on the book cover (front face)" }],
415
1417
  },
416
1418
  "glare-card": {
417
1419
  name: "GlareCard",
@@ -420,6 +1422,10 @@ export const registry = {
420
1422
  category: "cards",
421
1423
  status: "done",
422
1424
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/glare-card" }],
1425
+ tags: ["card", "glare", "holographic", "mouse", "3d", "foil", "interactive"],
1426
+ slots: [
1427
+ { name: "children", description: "Card content rendered inside the holographic surface" },
1428
+ ],
423
1429
  },
424
1430
  "text-reveal-card": {
425
1431
  name: "TextRevealCard",
@@ -430,6 +1436,26 @@ export const registry = {
430
1436
  credits: [
431
1437
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/text-reveal-card" },
432
1438
  ],
1439
+ tags: ["card", "text", "reveal", "drag", "interactive", "particles"],
1440
+ props: [
1441
+ {
1442
+ name: "starsCount",
1443
+ type: "number",
1444
+ default: "130",
1445
+ description: "Number of star particles in the background",
1446
+ },
1447
+ {
1448
+ name: "starsClass",
1449
+ type: "string",
1450
+ default: '""',
1451
+ description: "CSS classes for the stars container",
1452
+ },
1453
+ ],
1454
+ slots: [
1455
+ { name: "children", description: "Content rendered above the reveal area (e.g., title)" },
1456
+ { name: "text", description: "Text shown in the revealed layer (dragged to reveal)" },
1457
+ { name: "revealText", description: "Text visible in the background star layer" },
1458
+ ],
433
1459
  },
434
1460
  "container-scroll": {
435
1461
  name: "ContainerScroll",
@@ -443,6 +1469,17 @@ export const registry = {
443
1469
  url: "https://ui.aceternity.com/components/container-scroll-animation",
444
1470
  },
445
1471
  ],
1472
+ tags: ["layout", "scroll", "animation", "3d", "perspective"],
1473
+ slots: [
1474
+ {
1475
+ name: "titleContent",
1476
+ description: "Header/title content that translates upward on scroll",
1477
+ },
1478
+ {
1479
+ name: "cardContent",
1480
+ description: "Content inside the animated card that tilts flat on scroll",
1481
+ },
1482
+ ],
446
1483
  },
447
1484
  "container-text-flip": {
448
1485
  name: "ContainerTextFlip",
@@ -451,6 +1488,33 @@ export const registry = {
451
1488
  category: "text",
452
1489
  status: "done",
453
1490
  credits: [{ source: "Inspira UI", url: "https://inspira-ui.com/components/text/text-flip" }],
1491
+ tags: ["text", "animation", "words", "cycling", "blur", "typography"],
1492
+ props: [
1493
+ {
1494
+ name: "words",
1495
+ type: "string[]",
1496
+ default: '["better","modern","beautiful","awesome"]',
1497
+ description: "Array of words to cycle through",
1498
+ },
1499
+ {
1500
+ name: "interval",
1501
+ type: "number",
1502
+ default: "3000",
1503
+ description: "Time between word changes in ms",
1504
+ },
1505
+ {
1506
+ name: "animationDuration",
1507
+ type: "number",
1508
+ default: "700",
1509
+ description: "Per-character animation duration in ms",
1510
+ },
1511
+ {
1512
+ name: "textClass",
1513
+ type: "string",
1514
+ default: '""',
1515
+ description: "CSS classes for the text content span",
1516
+ },
1517
+ ],
454
1518
  },
455
1519
  focus: {
456
1520
  name: "Focus",
@@ -459,6 +1523,45 @@ export const registry = {
459
1523
  category: "text",
460
1524
  status: "done",
461
1525
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/focus-cards" }],
1526
+ tags: ["text", "animation", "focus", "blur", "words", "typography"],
1527
+ props: [
1528
+ {
1529
+ name: "sentence",
1530
+ type: "string",
1531
+ default: '"Fancy Focus"',
1532
+ description: "Space-separated words to cycle focus through",
1533
+ },
1534
+ {
1535
+ name: "manualMode",
1536
+ type: "boolean",
1537
+ default: "false",
1538
+ description: "Enable manual control via mouse hover instead of auto-cycling",
1539
+ },
1540
+ {
1541
+ name: "blurAmount",
1542
+ type: "number",
1543
+ default: "5",
1544
+ description: "Blur amount in pixels for unfocused words",
1545
+ },
1546
+ {
1547
+ name: "borderColor",
1548
+ type: "string",
1549
+ default: '"green"',
1550
+ description: "Color of the corner frame border",
1551
+ },
1552
+ {
1553
+ name: "animationDuration",
1554
+ type: "number",
1555
+ default: "0.5",
1556
+ description: "Transition duration in seconds",
1557
+ },
1558
+ {
1559
+ name: "pauseBetweenAnimations",
1560
+ type: "number",
1561
+ default: "1",
1562
+ description: "Pause between word cycles in seconds",
1563
+ },
1564
+ ],
462
1565
  },
463
1566
  "liquid-glass": {
464
1567
  name: "LiquidGlass",
@@ -472,6 +1575,79 @@ export const registry = {
472
1575
  url: "https://inspira-ui.com/components/special-effects/liquid-glass",
473
1576
  },
474
1577
  ],
1578
+ tags: ["glass", "effect", "svg", "filter", "chromatic", "displacement", "blur"],
1579
+ props: [
1580
+ { name: "radius", type: "number", default: "16", description: "Border radius in pixels" },
1581
+ {
1582
+ name: "border",
1583
+ type: "number",
1584
+ default: "0.07",
1585
+ description: "Border thickness as fraction of min dimension",
1586
+ },
1587
+ {
1588
+ name: "lightness",
1589
+ type: "number",
1590
+ default: "50",
1591
+ description: "Background lightness percentage",
1592
+ },
1593
+ {
1594
+ name: "displace",
1595
+ type: "number",
1596
+ description: "Optional Gaussian blur on the displacement output",
1597
+ },
1598
+ {
1599
+ name: "blend",
1600
+ type: "string",
1601
+ default: '"difference"',
1602
+ description: "SVG blend mode for the displacement channels",
1603
+ },
1604
+ {
1605
+ name: "xChannel",
1606
+ type: '"R" | "G" | "B"',
1607
+ default: '"R"',
1608
+ description: "X displacement channel selector",
1609
+ },
1610
+ {
1611
+ name: "yChannel",
1612
+ type: '"R" | "G" | "B"',
1613
+ default: '"B"',
1614
+ description: "Y displacement channel selector",
1615
+ },
1616
+ { name: "alpha", type: "number", default: "0.93", description: "Background fill alpha" },
1617
+ {
1618
+ name: "blur",
1619
+ type: "number",
1620
+ default: "11",
1621
+ description: "Blur applied to the background fill layer",
1622
+ },
1623
+ {
1624
+ name: "rOffset",
1625
+ type: "number",
1626
+ default: "0",
1627
+ description: "Red channel displacement offset",
1628
+ },
1629
+ {
1630
+ name: "gOffset",
1631
+ type: "number",
1632
+ default: "10",
1633
+ description: "Green channel displacement offset",
1634
+ },
1635
+ {
1636
+ name: "bOffset",
1637
+ type: "number",
1638
+ default: "20",
1639
+ description: "Blue channel displacement offset",
1640
+ },
1641
+ { name: "scale", type: "number", default: "-180", description: "Displacement scale" },
1642
+ { name: "frost", type: "number", default: "0.05", description: "Frosted glass opacity" },
1643
+ {
1644
+ name: "containerClass",
1645
+ type: "string",
1646
+ default: '""',
1647
+ description: "CSS classes for the outer container",
1648
+ },
1649
+ ],
1650
+ slots: [{ name: "children", description: "Content rendered inside the glass effect" }],
475
1651
  },
476
1652
  "smooth-cursor": {
477
1653
  name: "SmoothCursor",
@@ -482,6 +1658,16 @@ export const registry = {
482
1658
  credits: [
483
1659
  { source: "Inspira UI", url: "https://inspira-ui.com/components/cursor/smooth-cursor" },
484
1660
  ],
1661
+ tags: ["cursor", "animation", "spring", "physics", "interactive"],
1662
+ props: [
1663
+ {
1664
+ name: "springConfig",
1665
+ type: "SpringConfig",
1666
+ default: "{}",
1667
+ description: "Spring physics configuration with damping, stiffness, and mass",
1668
+ },
1669
+ ],
1670
+ slots: [{ name: "cursor", description: "Custom cursor element (defaults to arrow SVG)" }],
485
1671
  },
486
1672
  "glowing-effect": {
487
1673
  name: "GlowingEffect",
@@ -490,6 +1676,58 @@ export const registry = {
490
1676
  category: "effects",
491
1677
  status: "done",
492
1678
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/glowing-effect" }],
1679
+ tags: ["border", "glow", "mouse", "gradient", "conic", "animation"],
1680
+ props: [
1681
+ {
1682
+ name: "blur",
1683
+ type: "number",
1684
+ default: "0",
1685
+ description: "Blur amount applied to the glow layer",
1686
+ },
1687
+ {
1688
+ name: "inactiveZone",
1689
+ type: "number",
1690
+ default: "0.7",
1691
+ description: "Fraction of element radius where glow is inactive",
1692
+ },
1693
+ {
1694
+ name: "proximity",
1695
+ type: "number",
1696
+ default: "0",
1697
+ description: "Extra pixel range outside element bounds where glow activates",
1698
+ },
1699
+ {
1700
+ name: "spread",
1701
+ type: "number",
1702
+ default: "20",
1703
+ description: "Angular spread of the conic gradient in degrees",
1704
+ },
1705
+ {
1706
+ name: "variant",
1707
+ type: '"default" | "white"',
1708
+ default: '"default"',
1709
+ description: "Color variant of the glow",
1710
+ },
1711
+ {
1712
+ name: "glow",
1713
+ type: "boolean",
1714
+ default: "false",
1715
+ description: "Always show glow regardless of mouse position",
1716
+ },
1717
+ {
1718
+ name: "disabled",
1719
+ type: "boolean",
1720
+ default: "true",
1721
+ description: "Disable the glowing effect",
1722
+ },
1723
+ {
1724
+ name: "movementDuration",
1725
+ type: "number",
1726
+ default: "2",
1727
+ description: "Duration of the angle lerp animation",
1728
+ },
1729
+ { name: "borderWidth", type: "number", default: "1", description: "Border width in pixels" },
1730
+ ],
493
1731
  },
494
1732
  sparkles: {
495
1733
  name: "Sparkles",
@@ -498,6 +1736,40 @@ export const registry = {
498
1736
  category: "backgrounds",
499
1737
  status: "done",
500
1738
  credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/sparkles" }],
1739
+ tags: ["background", "particles", "canvas", "animation", "sparkles"],
1740
+ props: [
1741
+ {
1742
+ name: "background",
1743
+ type: "string",
1744
+ default: '"#0d47a1"',
1745
+ description: "Background color of the canvas container",
1746
+ },
1747
+ {
1748
+ name: "particleColor",
1749
+ type: "string",
1750
+ default: '"#ffffff"',
1751
+ description: "Color of the particles",
1752
+ },
1753
+ {
1754
+ name: "minSize",
1755
+ type: "number",
1756
+ default: "1",
1757
+ description: "Minimum particle radius in pixels",
1758
+ },
1759
+ {
1760
+ name: "maxSize",
1761
+ type: "number",
1762
+ default: "3",
1763
+ description: "Maximum particle radius in pixels",
1764
+ },
1765
+ { name: "speed", type: "number", default: "4", description: "Particle speed multiplier" },
1766
+ {
1767
+ name: "particleDensity",
1768
+ type: "number",
1769
+ default: "120",
1770
+ description: "Number of particles",
1771
+ },
1772
+ ],
501
1773
  },
502
1774
  confetti: {
503
1775
  name: "Confetti",
@@ -506,6 +1778,28 @@ export const registry = {
506
1778
  category: "effects",
507
1779
  status: "done",
508
1780
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/confetti" }],
1781
+ tags: ["confetti", "celebration", "animation", "canvas", "particles"],
1782
+ props: [
1783
+ {
1784
+ name: "options",
1785
+ type: "ConfettiOptions",
1786
+ default: "{}",
1787
+ description: "canvas-confetti options passed to each fire() call",
1788
+ },
1789
+ {
1790
+ name: "globalOptions",
1791
+ type: "ConfettiGlobalOptions",
1792
+ default: "{}",
1793
+ description: "Global canvas-confetti initialization options",
1794
+ },
1795
+ {
1796
+ name: "manualStart",
1797
+ type: "boolean",
1798
+ default: "false",
1799
+ description: "Prevent auto-firing on mount; call fire() manually",
1800
+ },
1801
+ ],
1802
+ slots: [{ name: "children", description: "ConfettiButton or other trigger elements" }],
509
1803
  },
510
1804
  ripple: {
511
1805
  name: "Ripple",
@@ -514,6 +1808,51 @@ export const registry = {
514
1808
  category: "effects",
515
1809
  status: "done",
516
1810
  credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/ripple" }],
1811
+ tags: ["animation", "ripple", "circles", "decoration", "pulse"],
1812
+ props: [
1813
+ {
1814
+ name: "baseCircleSize",
1815
+ type: "number",
1816
+ default: "210",
1817
+ description: "Diameter of the smallest (innermost) circle in pixels",
1818
+ },
1819
+ {
1820
+ name: "baseCircleOpacity",
1821
+ type: "number",
1822
+ default: "0.24",
1823
+ description: "Opacity of the innermost circle",
1824
+ },
1825
+ {
1826
+ name: "spaceBetweenCircle",
1827
+ type: "number",
1828
+ default: "70",
1829
+ description: "Extra pixels added to each successive circle",
1830
+ },
1831
+ {
1832
+ name: "circleOpacityDowngradeRatio",
1833
+ type: "number",
1834
+ default: "0.03",
1835
+ description: "Opacity reduction per circle outward",
1836
+ },
1837
+ {
1838
+ name: "circleClass",
1839
+ type: "string",
1840
+ default: '""',
1841
+ description: "Additional CSS classes applied to each circle",
1842
+ },
1843
+ {
1844
+ name: "waveSpeed",
1845
+ type: "number",
1846
+ default: "80",
1847
+ description: "Animation delay between circles in ms",
1848
+ },
1849
+ {
1850
+ name: "numberOfCircles",
1851
+ type: "number",
1852
+ default: "7",
1853
+ description: "Total number of concentric circles",
1854
+ },
1855
+ ],
517
1856
  },
518
1857
  "text-generate-effect": {
519
1858
  name: "TextGenerateEffect",
@@ -524,6 +1863,34 @@ export const registry = {
524
1863
  credits: [
525
1864
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/text-generate-effect" },
526
1865
  ],
1866
+ tags: ["text", "animation", "typewriter", "reveal", "blur", "typography"],
1867
+ props: [
1868
+ { name: "words", type: "string", description: "Text to reveal word by word", required: true },
1869
+ {
1870
+ name: "filter",
1871
+ type: "boolean",
1872
+ default: "true",
1873
+ description: "Apply blur filter during reveal animation",
1874
+ },
1875
+ {
1876
+ name: "duration",
1877
+ type: "number",
1878
+ default: "0.7",
1879
+ description: "Fade-in duration per word in seconds",
1880
+ },
1881
+ {
1882
+ name: "delay",
1883
+ type: "number",
1884
+ default: "0",
1885
+ description: "Initial delay before animation starts in ms",
1886
+ },
1887
+ {
1888
+ name: "stagger",
1889
+ type: "number",
1890
+ default: "200",
1891
+ description: "Delay between each word in ms",
1892
+ },
1893
+ ],
527
1894
  },
528
1895
  "line-shadow-text": {
529
1896
  name: "LineShadowText",
@@ -534,6 +1901,22 @@ export const registry = {
534
1901
  credits: [
535
1902
  { source: "Magic UI", url: "https://magicui.design/docs/components/line-shadow-text" },
536
1903
  ],
1904
+ tags: ["text", "animation", "shadow", "pattern", "typography", "decoration"],
1905
+ props: [
1906
+ { name: "text", type: "string", description: "Text content to display", required: true },
1907
+ {
1908
+ name: "shadowColor",
1909
+ type: "string",
1910
+ default: '"black"',
1911
+ description: "Color of the diagonal line shadow",
1912
+ },
1913
+ {
1914
+ name: "as",
1915
+ type: '"span" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "div"',
1916
+ default: '"span"',
1917
+ description: "HTML element to render as",
1918
+ },
1919
+ ],
537
1920
  },
538
1921
  "tracing-beam": {
539
1922
  name: "TracingBeam",
@@ -544,6 +1927,10 @@ export const registry = {
544
1927
  credits: [
545
1928
  { source: "Aceternity UI", url: "https://ui.aceternity.com/components/tracing-beam" },
546
1929
  ],
1930
+ tags: ["scroll", "animation", "svg", "beam", "progress", "sidebar"],
1931
+ slots: [
1932
+ { name: "children", description: "Long-form content rendered alongside the tracing beam" },
1933
+ ],
547
1934
  },
548
1935
  "displacement-text": {
549
1936
  name: "DisplacementText",
@@ -552,6 +1939,25 @@ export const registry = {
552
1939
  category: "text",
553
1940
  status: "done",
554
1941
  credits: [{ source: "VengenceUI", url: "https://vengenceui.com/docs/liquid-text" }],
1942
+ tags: ["text", "webgl", "3d", "displacement", "cursor", "shader", "threejs"],
1943
+ props: [
1944
+ { name: "text", type: "string", default: '"Hover Me"', description: "Text to display" },
1945
+ { name: "fontSize", type: "number", default: "200", description: "Font size in pixels" },
1946
+ { name: "font", type: "string", default: '"Inter, sans-serif"', description: "Font family" },
1947
+ { name: "color", type: "string", description: "Fixed text color (overrides theme colors)" },
1948
+ {
1949
+ name: "lightColor",
1950
+ type: "string",
1951
+ default: '"#000000"',
1952
+ description: "Text color in light mode",
1953
+ },
1954
+ {
1955
+ name: "darkColor",
1956
+ type: "string",
1957
+ default: '"#ffffff"',
1958
+ description: "Text color in dark mode",
1959
+ },
1960
+ ],
555
1961
  },
556
1962
  "matrix-rain": {
557
1963
  name: "MatrixRain",
@@ -559,6 +1965,34 @@ export const registry = {
559
1965
  description: "Canvas-based Matrix-style falling glyph rain with configurable color, speed, and density",
560
1966
  category: "backgrounds",
561
1967
  status: "done",
1968
+ tags: ["background", "matrix", "canvas", "animation", "glyphs", "cyberpunk"],
1969
+ props: [
1970
+ {
1971
+ name: "color",
1972
+ type: "string",
1973
+ default: '"#00ff41"',
1974
+ description: "Glyph color (the classic Matrix green)",
1975
+ },
1976
+ {
1977
+ name: "speed",
1978
+ type: "number",
1979
+ default: "1.0",
1980
+ description: "Fall speed multiplier (< 1 slower, > 1 faster)",
1981
+ },
1982
+ { name: "density", type: "number", default: "1.0", description: "Column density multiplier" },
1983
+ {
1984
+ name: "glyphSize",
1985
+ type: "number",
1986
+ default: "16",
1987
+ description: "Font size of each glyph in pixels",
1988
+ },
1989
+ {
1990
+ name: "fadeOpacity",
1991
+ type: "number",
1992
+ default: "0.05",
1993
+ description: "Opacity of the black overlay used to create trailing fade effect",
1994
+ },
1995
+ ],
562
1996
  },
563
1997
  "terminal-text": {
564
1998
  name: "TerminalText",
@@ -566,6 +2000,45 @@ export const registry = {
566
2000
  description: "Terminal-style text streamer with per-character animation, blinking cursor, and glitch effect",
567
2001
  category: "text",
568
2002
  status: "done",
2003
+ tags: ["text", "terminal", "animation", "typewriter", "glitch", "code"],
2004
+ props: [
2005
+ {
2006
+ name: "lines",
2007
+ type: "string[]",
2008
+ description: "Array of lines to stream character by character",
2009
+ required: true,
2010
+ },
2011
+ {
2012
+ name: "speed",
2013
+ type: "number",
2014
+ default: "40",
2015
+ description: "Delay between each character in ms",
2016
+ },
2017
+ {
2018
+ name: "delay",
2019
+ type: "number",
2020
+ default: "0",
2021
+ description: "Initial delay before streaming starts in ms",
2022
+ },
2023
+ { name: "cursor", type: "boolean", default: "true", description: "Show blinking cursor" },
2024
+ {
2025
+ name: "cursorChar",
2026
+ type: "string",
2027
+ default: '"█"',
2028
+ description: "Character used as the cursor",
2029
+ },
2030
+ {
2031
+ name: "glitch",
2032
+ type: "boolean",
2033
+ default: "false",
2034
+ description: "Enable random character glitch effect after streaming",
2035
+ },
2036
+ {
2037
+ name: "onComplete",
2038
+ type: "() => void",
2039
+ description: "Callback fired when all lines finish streaming",
2040
+ },
2041
+ ],
569
2042
  },
570
2043
  };
571
2044
  // =============================================================================