fancy-ui-svelte 0.4.1 → 0.6.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.
- package/README.md +40 -7
- package/dist/fancy-ui/dock/index.d.ts +1 -1
- package/dist/fancy-ui/dock/index.js +0 -1
- package/dist/fancy-ui/editorial-engine/EditorialEngine.svelte +181 -0
- package/dist/fancy-ui/editorial-engine/EditorialEngine.svelte.d.ts +26 -0
- package/dist/fancy-ui/editorial-engine/README.md +56 -0
- package/dist/fancy-ui/editorial-engine/engine.d.ts +7 -0
- package/dist/fancy-ui/editorial-engine/engine.js +581 -0
- package/dist/fancy-ui/editorial-engine/index.d.ts +2 -0
- package/dist/fancy-ui/editorial-engine/index.js +1 -0
- package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte +168 -32
- package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte.d.ts +7 -0
- package/dist/fancy-ui/fluid-cursor/FluidCursor.test.js +36 -9
- package/dist/fancy-ui/fluid-cursor/index.d.ts +4 -1
- package/dist/fancy-ui/fluid-cursor/index.js +4 -1
- package/dist/fancy-ui/index.d.ts +4 -0
- package/dist/fancy-ui/index.js +4 -0
- package/dist/fancy-ui/line-reveal/LineReveal.svelte +168 -0
- package/dist/fancy-ui/line-reveal/LineReveal.svelte.d.ts +33 -0
- package/dist/fancy-ui/line-reveal/README.md +42 -0
- package/dist/fancy-ui/line-reveal/index.d.ts +2 -0
- package/dist/fancy-ui/line-reveal/index.js +1 -0
- package/dist/fancy-ui/noise-reveal/NoiseReveal.svelte +323 -0
- package/dist/fancy-ui/noise-reveal/NoiseReveal.svelte.d.ts +19 -0
- package/dist/fancy-ui/noise-reveal/NoiseReveal.test.js +123 -0
- package/dist/fancy-ui/noise-reveal/index.d.ts +2 -0
- package/dist/fancy-ui/noise-reveal/index.js +1 -0
- package/dist/fancy-ui/registry.js +1589 -9
- package/dist/fancy-ui/shimmer-button/ShimmerButton.svelte +1 -1
- package/dist/fancy-ui/tailwind.css +2 -2
- package/dist/types.d.ts +37 -0
- package/package.json +10 -2
- package/dist/fancy-ui/fluid-cursor/FluidCursorAdvanced.svelte +0 -1556
- package/dist/fancy-ui/fluid-cursor/FluidCursorAdvanced.svelte.d.ts +0 -33
- package/dist/fancy-ui/fluid-cursor/FluidCursorAdvanced.test.js +0 -86
- /package/dist/fancy-ui/{fluid-cursor/FluidCursorAdvanced.test.d.ts → noise-reveal/NoiseReveal.test.d.ts} +0 -0
|
@@ -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,102 @@ 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" }],
|
|
487
|
+
},
|
|
488
|
+
"line-reveal": {
|
|
489
|
+
name: "LineReveal",
|
|
490
|
+
slug: "line-reveal",
|
|
491
|
+
description: "Staggered line-by-line text reveal with lines computed by pretext instead of DOM splitting",
|
|
492
|
+
category: "text",
|
|
493
|
+
status: "done",
|
|
494
|
+
credits: [{ source: "pretext", url: "https://github.com/chenglou/pretext" }],
|
|
495
|
+
tags: ["text", "animation", "reveal", "stagger", "pretext", "typography"],
|
|
496
|
+
props: [
|
|
497
|
+
{ name: "text", type: "string", description: "Text to reveal", required: true },
|
|
498
|
+
{
|
|
499
|
+
name: "font",
|
|
500
|
+
type: "string",
|
|
501
|
+
default: "'600 32px \"Helvetica Neue\", Helvetica, Arial, sans-serif'",
|
|
502
|
+
description: "CSS font shorthand used for both measurement and rendering",
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
name: "lineHeight",
|
|
506
|
+
type: "number",
|
|
507
|
+
default: "1.2 × font size",
|
|
508
|
+
description: "Line height in pixels",
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
name: "stagger",
|
|
512
|
+
type: "number",
|
|
513
|
+
default: "0.08",
|
|
514
|
+
description: "Delay between lines in seconds",
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
name: "duration",
|
|
518
|
+
type: "number",
|
|
519
|
+
default: "0.7",
|
|
520
|
+
description: "Animation duration per line in seconds",
|
|
521
|
+
},
|
|
522
|
+
{ name: "delay", type: "number", default: "0", description: "Initial delay in seconds" },
|
|
523
|
+
{
|
|
524
|
+
name: "once",
|
|
525
|
+
type: "boolean",
|
|
526
|
+
default: "true",
|
|
527
|
+
description: "Animate only on first viewport entry",
|
|
528
|
+
},
|
|
529
|
+
{ name: "class", type: "string", description: "Additional CSS classes" },
|
|
530
|
+
],
|
|
531
|
+
},
|
|
532
|
+
"editorial-engine": {
|
|
533
|
+
name: "EditorialEngine",
|
|
534
|
+
slug: "editorial-engine",
|
|
535
|
+
description: "Live magazine layout: multi-column text flowing around draggable orbs with zero DOM reads, powered by pretext",
|
|
536
|
+
category: "text",
|
|
537
|
+
status: "done",
|
|
538
|
+
credits: [
|
|
539
|
+
{ source: "pretext editorial engine", url: "https://chenglou.me/pretext/editorial-engine/" },
|
|
540
|
+
],
|
|
541
|
+
tags: ["text", "layout", "magazine", "columns", "pretext", "interactive", "typography"],
|
|
542
|
+
props: [
|
|
543
|
+
{
|
|
544
|
+
name: "headline",
|
|
545
|
+
type: "string",
|
|
546
|
+
default: "built-in copy",
|
|
547
|
+
description: "Auto-sized headline (largest font size that breaks no word)",
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
name: "body",
|
|
551
|
+
type: "string",
|
|
552
|
+
default: "built-in copy",
|
|
553
|
+
description: "Body text, paragraphs separated by blank lines",
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
name: "pullquotes",
|
|
557
|
+
type: "string[]",
|
|
558
|
+
default: "built-in quotes",
|
|
559
|
+
description: "Up to two pullquotes embedded in the columns",
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
name: "fontFamily",
|
|
563
|
+
type: "string",
|
|
564
|
+
default: "Palatino serif stack",
|
|
565
|
+
description: "Font family stack used for all text",
|
|
566
|
+
},
|
|
567
|
+
{ name: "class", type: "string", description: "Additional CSS classes for the stage" },
|
|
568
|
+
],
|
|
164
569
|
},
|
|
165
570
|
"logo-cloud": {
|
|
166
571
|
name: "LogoCloud",
|
|
@@ -169,6 +574,16 @@ export const registry = {
|
|
|
169
574
|
category: "data-display",
|
|
170
575
|
status: "done",
|
|
171
576
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/marquee" }],
|
|
577
|
+
tags: ["logos", "marquee", "brands", "animation", "scrolling"],
|
|
578
|
+
props: [
|
|
579
|
+
{ name: "title", type: "string", description: "Optional title displayed above the logos" },
|
|
580
|
+
{
|
|
581
|
+
name: "logos",
|
|
582
|
+
type: "Logo[]",
|
|
583
|
+
default: "[]",
|
|
584
|
+
description: "Array of logos with name and image path",
|
|
585
|
+
},
|
|
586
|
+
],
|
|
172
587
|
},
|
|
173
588
|
"direction-aware-hover": {
|
|
174
589
|
name: "DirectionAwareHover",
|
|
@@ -182,6 +597,34 @@ export const registry = {
|
|
|
182
597
|
url: "https://ui.aceternity.com/components/direction-aware-hover",
|
|
183
598
|
},
|
|
184
599
|
],
|
|
600
|
+
tags: ["card", "hover", "image", "animation", "direction", "interactive"],
|
|
601
|
+
props: [
|
|
602
|
+
{
|
|
603
|
+
name: "imageUrl",
|
|
604
|
+
type: "string",
|
|
605
|
+
description: "URL of the background image",
|
|
606
|
+
required: true,
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
name: "imageAlt",
|
|
610
|
+
type: "string",
|
|
611
|
+
default: '"image"',
|
|
612
|
+
description: "Alt text for the image",
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
name: "childrenClass",
|
|
616
|
+
type: "string",
|
|
617
|
+
default: '""',
|
|
618
|
+
description: "CSS classes for the overlay content wrapper",
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: "imageClass",
|
|
622
|
+
type: "string",
|
|
623
|
+
default: '""',
|
|
624
|
+
description: "CSS classes for the image element",
|
|
625
|
+
},
|
|
626
|
+
],
|
|
627
|
+
slots: [{ name: "children", description: "Content shown in the overlay when hovered" }],
|
|
185
628
|
},
|
|
186
629
|
"rainbow-button": {
|
|
187
630
|
name: "RainbowButton",
|
|
@@ -190,6 +633,12 @@ export const registry = {
|
|
|
190
633
|
category: "buttons",
|
|
191
634
|
status: "done",
|
|
192
635
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/rainbow-button" }],
|
|
636
|
+
tags: ["button", "animation", "rainbow", "gradient", "cta"],
|
|
637
|
+
props: [
|
|
638
|
+
{ name: "speed", type: "number", default: "2", description: "Animation speed in seconds" },
|
|
639
|
+
{ name: "href", type: "string", description: "Render as anchor element when provided" },
|
|
640
|
+
],
|
|
641
|
+
slots: [{ name: "children", description: "Button label content" }],
|
|
193
642
|
},
|
|
194
643
|
"ripple-button": {
|
|
195
644
|
name: "RippleButton",
|
|
@@ -198,6 +647,22 @@ export const registry = {
|
|
|
198
647
|
category: "buttons",
|
|
199
648
|
status: "done",
|
|
200
649
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/ripple-button" }],
|
|
650
|
+
tags: ["button", "ripple", "click", "animation", "material"],
|
|
651
|
+
props: [
|
|
652
|
+
{
|
|
653
|
+
name: "rippleColor",
|
|
654
|
+
type: "string",
|
|
655
|
+
default: '"#ADD8E6"',
|
|
656
|
+
description: "Color of the ripple effect",
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
name: "duration",
|
|
660
|
+
type: "number",
|
|
661
|
+
default: "600",
|
|
662
|
+
description: "Animation duration in milliseconds",
|
|
663
|
+
},
|
|
664
|
+
],
|
|
665
|
+
slots: [{ name: "children", description: "Button content" }],
|
|
201
666
|
},
|
|
202
667
|
"shimmer-button": {
|
|
203
668
|
name: "ShimmerButton",
|
|
@@ -206,6 +671,40 @@ export const registry = {
|
|
|
206
671
|
category: "buttons",
|
|
207
672
|
status: "done",
|
|
208
673
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/shimmer-button" }],
|
|
674
|
+
tags: ["button", "shimmer", "gradient", "animation", "cta"],
|
|
675
|
+
props: [
|
|
676
|
+
{
|
|
677
|
+
name: "shimmerColor",
|
|
678
|
+
type: "string",
|
|
679
|
+
default: '"#ffffff"',
|
|
680
|
+
description: "Shimmer highlight color",
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
name: "shimmerSize",
|
|
684
|
+
type: "string",
|
|
685
|
+
default: '"0.05em"',
|
|
686
|
+
description: "Thickness of the shimmer border",
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
name: "borderRadius",
|
|
690
|
+
type: "string",
|
|
691
|
+
default: '"100px"',
|
|
692
|
+
description: "Button border radius",
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
name: "shimmerDuration",
|
|
696
|
+
type: "string",
|
|
697
|
+
default: '"3s"',
|
|
698
|
+
description: "Duration of the shimmer animation cycle",
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
name: "background",
|
|
702
|
+
type: "string",
|
|
703
|
+
default: '"rgba(0, 0, 0, 1)"',
|
|
704
|
+
description: "Button background color",
|
|
705
|
+
},
|
|
706
|
+
],
|
|
707
|
+
slots: [{ name: "children", description: "Button content" }],
|
|
209
708
|
},
|
|
210
709
|
timeline: {
|
|
211
710
|
name: "Timeline",
|
|
@@ -214,6 +713,23 @@ export const registry = {
|
|
|
214
713
|
category: "navigation",
|
|
215
714
|
status: "done",
|
|
216
715
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/timeline" }],
|
|
716
|
+
tags: ["timeline", "scroll", "navigation", "progress", "vertical"],
|
|
717
|
+
props: [
|
|
718
|
+
{
|
|
719
|
+
name: "items",
|
|
720
|
+
type: "TimelineItem[]",
|
|
721
|
+
default: "[]",
|
|
722
|
+
description: "Timeline entries with id and label",
|
|
723
|
+
},
|
|
724
|
+
{ name: "title", type: "string", description: "Heading text" },
|
|
725
|
+
{ name: "description", type: "string", description: "Subheading text" },
|
|
726
|
+
],
|
|
727
|
+
slots: [
|
|
728
|
+
{
|
|
729
|
+
name: "content",
|
|
730
|
+
description: "Content snippet called for each timeline item, receives the item as argument",
|
|
731
|
+
},
|
|
732
|
+
],
|
|
217
733
|
},
|
|
218
734
|
"bg-stars": {
|
|
219
735
|
name: "StarsBackground",
|
|
@@ -224,6 +740,35 @@ export const registry = {
|
|
|
224
740
|
credits: [
|
|
225
741
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/stars-background" },
|
|
226
742
|
],
|
|
743
|
+
tags: ["background", "stars", "parallax", "animation", "space", "mouse"],
|
|
744
|
+
props: [
|
|
745
|
+
{
|
|
746
|
+
name: "factor",
|
|
747
|
+
type: "number",
|
|
748
|
+
default: "0.05",
|
|
749
|
+
description: "Parallax factor for mouse movement",
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: "speed",
|
|
753
|
+
type: "number",
|
|
754
|
+
default: "50",
|
|
755
|
+
description: "Base animation speed in seconds",
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
name: "stiffness",
|
|
759
|
+
type: "number",
|
|
760
|
+
default: "50",
|
|
761
|
+
description: "Spring stiffness for parallax",
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
name: "damping",
|
|
765
|
+
type: "number",
|
|
766
|
+
default: "20",
|
|
767
|
+
description: "Spring damping for parallax",
|
|
768
|
+
},
|
|
769
|
+
{ name: "starColor", type: "string", default: '"#fff"', description: "Color of the stars" },
|
|
770
|
+
],
|
|
771
|
+
slots: [{ name: "children", description: "Child content to render over the stars" }],
|
|
227
772
|
},
|
|
228
773
|
dock: {
|
|
229
774
|
name: "Dock",
|
|
@@ -232,6 +777,34 @@ export const registry = {
|
|
|
232
777
|
category: "navigation",
|
|
233
778
|
status: "done",
|
|
234
779
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/dock" }],
|
|
780
|
+
tags: ["dock", "navigation", "macos", "magnification", "hover"],
|
|
781
|
+
props: [
|
|
782
|
+
{
|
|
783
|
+
name: "magnification",
|
|
784
|
+
type: "number",
|
|
785
|
+
default: "60",
|
|
786
|
+
description: "Maximum icon size in pixels when magnified",
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
name: "distance",
|
|
790
|
+
type: "number",
|
|
791
|
+
default: "140",
|
|
792
|
+
description: "Distance in pixels over which magnification takes effect",
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
name: "direction",
|
|
796
|
+
type: '"top" | "middle" | "bottom"',
|
|
797
|
+
default: '"middle"',
|
|
798
|
+
description: "Vertical alignment of icons relative to the dock bar",
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
name: "orientation",
|
|
802
|
+
type: '"horizontal" | "vertical"',
|
|
803
|
+
default: '"horizontal"',
|
|
804
|
+
description: "Dock orientation",
|
|
805
|
+
},
|
|
806
|
+
],
|
|
807
|
+
slots: [{ name: "children", description: "DockIcon and DockSeparator elements" }],
|
|
235
808
|
},
|
|
236
809
|
"fluid-cursor": {
|
|
237
810
|
name: "FluidCursor",
|
|
@@ -242,15 +815,126 @@ export const registry = {
|
|
|
242
815
|
credits: [
|
|
243
816
|
{ source: "Inspira UI", url: "https://inspira-ui.com/components/cursor/fluid-cursor" },
|
|
244
817
|
],
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
{
|
|
818
|
+
tags: ["cursor", "webgl", "fluid", "simulation", "interactive"],
|
|
819
|
+
props: [
|
|
820
|
+
{
|
|
821
|
+
name: "simResolution",
|
|
822
|
+
type: "number",
|
|
823
|
+
default: "128",
|
|
824
|
+
description: "Simulation grid resolution",
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
name: "dyeResolution",
|
|
828
|
+
type: "number",
|
|
829
|
+
default: "1440",
|
|
830
|
+
description: "Dye/color buffer resolution",
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
name: "captureResolution",
|
|
834
|
+
type: "number",
|
|
835
|
+
default: "512",
|
|
836
|
+
description: "Capture buffer resolution",
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
name: "densityDissipation",
|
|
840
|
+
type: "number",
|
|
841
|
+
default: "3.5",
|
|
842
|
+
description: "Rate at which density fades",
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
name: "velocityDissipation",
|
|
846
|
+
type: "number",
|
|
847
|
+
default: "2",
|
|
848
|
+
description: "Rate at which velocity fades",
|
|
849
|
+
},
|
|
850
|
+
{ name: "pressure", type: "number", default: "0.1", description: "Pressure solver strength" },
|
|
851
|
+
{
|
|
852
|
+
name: "pressureIterations",
|
|
853
|
+
type: "number",
|
|
854
|
+
default: "20",
|
|
855
|
+
description: "Number of pressure solver iterations",
|
|
856
|
+
},
|
|
857
|
+
{ name: "curl", type: "number", default: "3", description: "Amount of curl/vorticity" },
|
|
858
|
+
{
|
|
859
|
+
name: "splatRadius",
|
|
860
|
+
type: "number",
|
|
861
|
+
default: "0.2",
|
|
862
|
+
description: "Radius of fluid splats",
|
|
863
|
+
},
|
|
864
|
+
{ name: "splatForce", type: "number", default: "6000", description: "Force of fluid splats" },
|
|
865
|
+
{ name: "shading", type: "boolean", default: "true", description: "Enable fluid shading" },
|
|
866
|
+
{
|
|
867
|
+
name: "colorUpdateSpeed",
|
|
868
|
+
type: "number",
|
|
869
|
+
default: "10",
|
|
870
|
+
description: "Speed of color changes",
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
name: "backColor",
|
|
874
|
+
type: "ColorRGB | string",
|
|
875
|
+
default: "{ r: 0.5, g: 0, b: 0 }",
|
|
876
|
+
description: "Background color",
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
name: "transparent",
|
|
880
|
+
type: "boolean",
|
|
881
|
+
default: "true",
|
|
882
|
+
description: "Transparent background",
|
|
883
|
+
},
|
|
884
|
+
{ name: "fluidColor", type: "string", description: "Override all fluid with a single color" },
|
|
885
|
+
{
|
|
886
|
+
name: "fluidColors",
|
|
887
|
+
type: "string[]",
|
|
888
|
+
description: "Array of colors to cycle through for fluid splats",
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
name: "colorIntensity",
|
|
892
|
+
type: "number",
|
|
893
|
+
default: "0.15",
|
|
894
|
+
description: "Intensity of color mixing",
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
name: "autoSplat",
|
|
898
|
+
type: "boolean",
|
|
899
|
+
default: "false",
|
|
900
|
+
description: "Automatically create random splats",
|
|
901
|
+
},
|
|
902
|
+
{
|
|
903
|
+
name: "autoSplatInterval",
|
|
904
|
+
type: "number",
|
|
905
|
+
default: "1500",
|
|
906
|
+
description: "Interval between auto-splats in ms",
|
|
907
|
+
},
|
|
908
|
+
{
|
|
909
|
+
name: "interactive",
|
|
910
|
+
type: "boolean",
|
|
911
|
+
default: "true",
|
|
912
|
+
description: "React to mouse/touch input",
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
name: "pauseWhenHidden",
|
|
916
|
+
type: "boolean",
|
|
917
|
+
default: "true",
|
|
918
|
+
description: "Pause simulation when tab is hidden",
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
name: "splatOnMount",
|
|
922
|
+
type: "boolean",
|
|
923
|
+
default: "false",
|
|
924
|
+
description: "Create a splat on mount",
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
name: "allowMultiple",
|
|
928
|
+
type: "boolean",
|
|
929
|
+
default: "false",
|
|
930
|
+
description: "Allow multiple instances simultaneously",
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
name: "contained",
|
|
934
|
+
type: "boolean",
|
|
935
|
+
default: "true",
|
|
936
|
+
description: "Confine simulation to parent container",
|
|
937
|
+
},
|
|
254
938
|
],
|
|
255
939
|
},
|
|
256
940
|
"glow-border": {
|
|
@@ -262,6 +946,28 @@ export const registry = {
|
|
|
262
946
|
credits: [
|
|
263
947
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/background-gradient" },
|
|
264
948
|
],
|
|
949
|
+
tags: ["border", "glow", "animation", "gradient", "decoration"],
|
|
950
|
+
props: [
|
|
951
|
+
{
|
|
952
|
+
name: "borderRadius",
|
|
953
|
+
type: "number",
|
|
954
|
+
default: "10",
|
|
955
|
+
description: "Border radius in pixels",
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
name: "color",
|
|
959
|
+
type: "string | string[]",
|
|
960
|
+
default: '"#FFF"',
|
|
961
|
+
description: "Glow color or array of colors for gradient",
|
|
962
|
+
},
|
|
963
|
+
{ name: "borderWidth", type: "number", default: "2", description: "Border width in pixels" },
|
|
964
|
+
{
|
|
965
|
+
name: "duration",
|
|
966
|
+
type: "number",
|
|
967
|
+
default: "10",
|
|
968
|
+
description: "Animation duration in seconds",
|
|
969
|
+
},
|
|
970
|
+
],
|
|
265
971
|
},
|
|
266
972
|
"gradient-button": {
|
|
267
973
|
name: "GradientButton",
|
|
@@ -272,6 +978,41 @@ export const registry = {
|
|
|
272
978
|
credits: [
|
|
273
979
|
{ source: "Inspira UI", url: "https://inspira-ui.com/components/buttons/gradient-button" },
|
|
274
980
|
],
|
|
981
|
+
tags: ["button", "gradient", "animation", "rainbow", "border", "cta"],
|
|
982
|
+
props: [
|
|
983
|
+
{
|
|
984
|
+
name: "colors",
|
|
985
|
+
type: "string[]",
|
|
986
|
+
default: '["#FF0000","#FFA500","#FFFF00","#008000","#0000FF","#4B0082","#EE82EE","#FF0000"]',
|
|
987
|
+
description: "Gradient colors for the conic-gradient border",
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
name: "duration",
|
|
991
|
+
type: "number",
|
|
992
|
+
default: "2500",
|
|
993
|
+
description: "Animation duration in milliseconds",
|
|
994
|
+
},
|
|
995
|
+
{ name: "borderWidth", type: "number", default: "2", description: "Border width in pixels" },
|
|
996
|
+
{
|
|
997
|
+
name: "borderRadius",
|
|
998
|
+
type: "number",
|
|
999
|
+
default: "8",
|
|
1000
|
+
description: "Border radius in pixels",
|
|
1001
|
+
},
|
|
1002
|
+
{
|
|
1003
|
+
name: "blur",
|
|
1004
|
+
type: "number",
|
|
1005
|
+
default: "4",
|
|
1006
|
+
description: "Blur amount for the gradient in pixels",
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
name: "bgColor",
|
|
1010
|
+
type: "string",
|
|
1011
|
+
default: '"#000"',
|
|
1012
|
+
description: "Background color of the button content area",
|
|
1013
|
+
},
|
|
1014
|
+
],
|
|
1015
|
+
slots: [{ name: "children", description: "Button content" }],
|
|
275
1016
|
},
|
|
276
1017
|
"interactive-hover-button": {
|
|
277
1018
|
name: "InteractiveHoverButton",
|
|
@@ -285,6 +1026,16 @@ export const registry = {
|
|
|
285
1026
|
url: "https://magicui.design/docs/components/interactive-hover-button",
|
|
286
1027
|
},
|
|
287
1028
|
],
|
|
1029
|
+
tags: ["button", "hover", "animation", "interactive", "reveal"],
|
|
1030
|
+
props: [
|
|
1031
|
+
{
|
|
1032
|
+
name: "text",
|
|
1033
|
+
type: "string",
|
|
1034
|
+
default: '"Button"',
|
|
1035
|
+
description: "Button label text (used when children slot is not provided)",
|
|
1036
|
+
},
|
|
1037
|
+
],
|
|
1038
|
+
slots: [{ name: "children", description: "Button content (overrides text prop)" }],
|
|
288
1039
|
},
|
|
289
1040
|
marquee: {
|
|
290
1041
|
name: "Marquee",
|
|
@@ -293,6 +1044,34 @@ export const registry = {
|
|
|
293
1044
|
category: "layout",
|
|
294
1045
|
status: "done",
|
|
295
1046
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/marquee" }],
|
|
1047
|
+
tags: ["marquee", "scrolling", "animation", "layout", "infinite"],
|
|
1048
|
+
props: [
|
|
1049
|
+
{
|
|
1050
|
+
name: "reverse",
|
|
1051
|
+
type: "boolean",
|
|
1052
|
+
default: "false",
|
|
1053
|
+
description: "Reverse the scroll direction",
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
name: "pauseOnHover",
|
|
1057
|
+
type: "boolean",
|
|
1058
|
+
default: "false",
|
|
1059
|
+
description: "Pause animation on hover",
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
name: "vertical",
|
|
1063
|
+
type: "boolean",
|
|
1064
|
+
default: "false",
|
|
1065
|
+
description: "Scroll vertically instead of horizontally",
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
name: "repeat",
|
|
1069
|
+
type: "number",
|
|
1070
|
+
default: "4",
|
|
1071
|
+
description: "Number of times to repeat children for seamless loop",
|
|
1072
|
+
},
|
|
1073
|
+
],
|
|
1074
|
+
slots: [{ name: "children", description: "Content to repeat and scroll" }],
|
|
296
1075
|
},
|
|
297
1076
|
meteors: {
|
|
298
1077
|
name: "Meteors",
|
|
@@ -301,6 +1080,10 @@ export const registry = {
|
|
|
301
1080
|
category: "effects",
|
|
302
1081
|
status: "done",
|
|
303
1082
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/meteors" }],
|
|
1083
|
+
tags: ["animation", "meteors", "particles", "decoration", "space"],
|
|
1084
|
+
props: [
|
|
1085
|
+
{ name: "count", type: "number", default: "20", description: "Number of meteors to render" },
|
|
1086
|
+
],
|
|
304
1087
|
},
|
|
305
1088
|
"flickering-grid": {
|
|
306
1089
|
name: "FlickeringGrid",
|
|
@@ -311,6 +1094,49 @@ export const registry = {
|
|
|
311
1094
|
credits: [
|
|
312
1095
|
{ source: "Magic UI", url: "https://magicui.design/docs/components/flickering-grid" },
|
|
313
1096
|
],
|
|
1097
|
+
tags: ["background", "grid", "canvas", "animation", "pattern"],
|
|
1098
|
+
props: [
|
|
1099
|
+
{
|
|
1100
|
+
name: "squareSize",
|
|
1101
|
+
type: "number",
|
|
1102
|
+
default: "4",
|
|
1103
|
+
description: "Size of each grid square in pixels",
|
|
1104
|
+
},
|
|
1105
|
+
{
|
|
1106
|
+
name: "gridGap",
|
|
1107
|
+
type: "number",
|
|
1108
|
+
default: "6",
|
|
1109
|
+
description: "Gap between squares in pixels",
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
name: "flickerChance",
|
|
1113
|
+
type: "number",
|
|
1114
|
+
default: "0.3",
|
|
1115
|
+
description: "Probability of a square changing opacity each second (0-1)",
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
name: "color",
|
|
1119
|
+
type: "string",
|
|
1120
|
+
default: '"#000000"',
|
|
1121
|
+
description: "Color of the squares (hex format)",
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
name: "maxOpacity",
|
|
1125
|
+
type: "number",
|
|
1126
|
+
default: "0.3",
|
|
1127
|
+
description: "Maximum opacity of squares (0-1)",
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
name: "width",
|
|
1131
|
+
type: "number",
|
|
1132
|
+
description: "Fixed width in pixels (defaults to container width)",
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
name: "height",
|
|
1136
|
+
type: "number",
|
|
1137
|
+
description: "Fixed height in pixels (defaults to container height)",
|
|
1138
|
+
},
|
|
1139
|
+
],
|
|
314
1140
|
},
|
|
315
1141
|
"neon-border": {
|
|
316
1142
|
name: "NeonBorder",
|
|
@@ -321,6 +1147,26 @@ export const registry = {
|
|
|
321
1147
|
credits: [
|
|
322
1148
|
{ source: "Magic UI", url: "https://magicui.design/docs/components/neon-gradient-card" },
|
|
323
1149
|
],
|
|
1150
|
+
tags: ["border", "neon", "glow", "animation", "gradient", "decoration"],
|
|
1151
|
+
props: [
|
|
1152
|
+
{ name: "color1", type: "string", default: '"#0496ff"', description: "First neon color" },
|
|
1153
|
+
{ name: "color2", type: "string", default: '"#ff0a54"', description: "Second neon color" },
|
|
1154
|
+
{
|
|
1155
|
+
name: "animationType",
|
|
1156
|
+
type: '"none" | "half" | "full"',
|
|
1157
|
+
default: '"half"',
|
|
1158
|
+
description: "Animation type: none (static), half (50% coverage), full (100% coverage)",
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
name: "duration",
|
|
1162
|
+
type: "number",
|
|
1163
|
+
default: "6",
|
|
1164
|
+
description: "Animation duration in seconds",
|
|
1165
|
+
},
|
|
1166
|
+
],
|
|
1167
|
+
slots: [
|
|
1168
|
+
{ name: "children", description: "Content to display inside the neon border container" },
|
|
1169
|
+
],
|
|
324
1170
|
},
|
|
325
1171
|
"colourful-text": {
|
|
326
1172
|
name: "ColourfulText",
|
|
@@ -331,6 +1177,28 @@ export const registry = {
|
|
|
331
1177
|
credits: [
|
|
332
1178
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/colourful-text" },
|
|
333
1179
|
],
|
|
1180
|
+
tags: ["text", "animation", "color", "gradient", "typography"],
|
|
1181
|
+
props: [
|
|
1182
|
+
{ name: "text", type: "string", description: "Text to animate", required: true },
|
|
1183
|
+
{
|
|
1184
|
+
name: "colors",
|
|
1185
|
+
type: "string[]",
|
|
1186
|
+
default: "[10 preset colors]",
|
|
1187
|
+
description: "Array of colors to cycle through",
|
|
1188
|
+
},
|
|
1189
|
+
{
|
|
1190
|
+
name: "startColor",
|
|
1191
|
+
type: "string",
|
|
1192
|
+
default: '"rgb(255, 255, 255)"',
|
|
1193
|
+
description: "Initial color before animation",
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
name: "duration",
|
|
1197
|
+
type: "number",
|
|
1198
|
+
default: "0.5",
|
|
1199
|
+
description: "Transition duration in seconds for each character",
|
|
1200
|
+
},
|
|
1201
|
+
],
|
|
334
1202
|
},
|
|
335
1203
|
"flip-words": {
|
|
336
1204
|
name: "FlipWords",
|
|
@@ -339,6 +1207,21 @@ export const registry = {
|
|
|
339
1207
|
category: "text",
|
|
340
1208
|
status: "done",
|
|
341
1209
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/flip-words" }],
|
|
1210
|
+
tags: ["text", "animation", "words", "cycling", "typography", "blur"],
|
|
1211
|
+
props: [
|
|
1212
|
+
{
|
|
1213
|
+
name: "words",
|
|
1214
|
+
type: "string[]",
|
|
1215
|
+
description: "Array of words to cycle through",
|
|
1216
|
+
required: true,
|
|
1217
|
+
},
|
|
1218
|
+
{
|
|
1219
|
+
name: "duration",
|
|
1220
|
+
type: "number",
|
|
1221
|
+
default: "3000",
|
|
1222
|
+
description: "Time each word stays visible in ms",
|
|
1223
|
+
},
|
|
1224
|
+
],
|
|
342
1225
|
},
|
|
343
1226
|
"hyper-text": {
|
|
344
1227
|
name: "HyperText",
|
|
@@ -347,6 +1230,22 @@ export const registry = {
|
|
|
347
1230
|
category: "text",
|
|
348
1231
|
status: "done",
|
|
349
1232
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/hyper-text" }],
|
|
1233
|
+
tags: ["text", "animation", "scramble", "hover", "glitch", "typography"],
|
|
1234
|
+
props: [
|
|
1235
|
+
{ name: "text", type: "string", description: "Text to display and scramble", required: true },
|
|
1236
|
+
{
|
|
1237
|
+
name: "duration",
|
|
1238
|
+
type: "number",
|
|
1239
|
+
default: "800",
|
|
1240
|
+
description: "Total animation duration in ms",
|
|
1241
|
+
},
|
|
1242
|
+
{
|
|
1243
|
+
name: "animateOnLoad",
|
|
1244
|
+
type: "boolean",
|
|
1245
|
+
default: "false",
|
|
1246
|
+
description: "Whether to animate on initial load",
|
|
1247
|
+
},
|
|
1248
|
+
],
|
|
350
1249
|
},
|
|
351
1250
|
"letter-pullup": {
|
|
352
1251
|
name: "LetterPullup",
|
|
@@ -355,6 +1254,21 @@ export const registry = {
|
|
|
355
1254
|
category: "text",
|
|
356
1255
|
status: "done",
|
|
357
1256
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/letter-pullup" }],
|
|
1257
|
+
tags: ["text", "animation", "letters", "stagger", "entrance", "typography"],
|
|
1258
|
+
props: [
|
|
1259
|
+
{
|
|
1260
|
+
name: "words",
|
|
1261
|
+
type: "string",
|
|
1262
|
+
description: "Text to animate (each character gets its own animation)",
|
|
1263
|
+
required: true,
|
|
1264
|
+
},
|
|
1265
|
+
{
|
|
1266
|
+
name: "delay",
|
|
1267
|
+
type: "number",
|
|
1268
|
+
default: "0.05",
|
|
1269
|
+
description: "Delay between each letter animation in seconds",
|
|
1270
|
+
},
|
|
1271
|
+
],
|
|
358
1272
|
},
|
|
359
1273
|
"number-ticker": {
|
|
360
1274
|
name: "NumberTicker",
|
|
@@ -363,6 +1277,34 @@ export const registry = {
|
|
|
363
1277
|
category: "text",
|
|
364
1278
|
status: "done",
|
|
365
1279
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/number-ticker" }],
|
|
1280
|
+
tags: ["text", "counter", "animation", "number", "scroll", "statistics"],
|
|
1281
|
+
props: [
|
|
1282
|
+
{ name: "value", type: "number", default: "0", description: "Target number to animate to" },
|
|
1283
|
+
{
|
|
1284
|
+
name: "direction",
|
|
1285
|
+
type: '"up" | "down"',
|
|
1286
|
+
default: '"up"',
|
|
1287
|
+
description: 'Animation direction: "up" counts 0→value, "down" counts value→0',
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
name: "duration",
|
|
1291
|
+
type: "number",
|
|
1292
|
+
default: "1000",
|
|
1293
|
+
description: "Animation duration in ms",
|
|
1294
|
+
},
|
|
1295
|
+
{
|
|
1296
|
+
name: "delay",
|
|
1297
|
+
type: "number",
|
|
1298
|
+
default: "0",
|
|
1299
|
+
description: "Delay before animation starts in ms",
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
name: "decimalPlaces",
|
|
1303
|
+
type: "number",
|
|
1304
|
+
default: "0",
|
|
1305
|
+
description: "Number of decimal places to display",
|
|
1306
|
+
},
|
|
1307
|
+
],
|
|
366
1308
|
},
|
|
367
1309
|
"sparkles-text": {
|
|
368
1310
|
name: "SparklesText",
|
|
@@ -371,6 +1313,22 @@ export const registry = {
|
|
|
371
1313
|
category: "text",
|
|
372
1314
|
status: "done",
|
|
373
1315
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/sparkles" }],
|
|
1316
|
+
tags: ["text", "sparkles", "animation", "stars", "decoration", "typography"],
|
|
1317
|
+
props: [
|
|
1318
|
+
{ name: "text", type: "string", description: "Text to display", required: true },
|
|
1319
|
+
{
|
|
1320
|
+
name: "sparklesCount",
|
|
1321
|
+
type: "number",
|
|
1322
|
+
default: "10",
|
|
1323
|
+
description: "Number of sparkle stars",
|
|
1324
|
+
},
|
|
1325
|
+
{
|
|
1326
|
+
name: "colors",
|
|
1327
|
+
type: "{ first: string; second: string }",
|
|
1328
|
+
default: '{ first: "#9E7AFF", second: "#FE8BBB" }',
|
|
1329
|
+
description: "Two colors for sparkle stars",
|
|
1330
|
+
},
|
|
1331
|
+
],
|
|
374
1332
|
},
|
|
375
1333
|
"box-reveal": {
|
|
376
1334
|
name: "BoxReveal",
|
|
@@ -379,6 +1337,28 @@ export const registry = {
|
|
|
379
1337
|
category: "text",
|
|
380
1338
|
status: "done",
|
|
381
1339
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/box-reveal" }],
|
|
1340
|
+
tags: ["text", "animation", "reveal", "scroll", "entrance"],
|
|
1341
|
+
props: [
|
|
1342
|
+
{
|
|
1343
|
+
name: "color",
|
|
1344
|
+
type: "string",
|
|
1345
|
+
default: '"#5046e6"',
|
|
1346
|
+
description: "Color of the reveal box",
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
name: "duration",
|
|
1350
|
+
type: "number",
|
|
1351
|
+
default: "0.5",
|
|
1352
|
+
description: "Animation duration in seconds",
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
name: "delay",
|
|
1356
|
+
type: "number",
|
|
1357
|
+
default: "0.25",
|
|
1358
|
+
description: "Delay before animation starts in seconds",
|
|
1359
|
+
},
|
|
1360
|
+
],
|
|
1361
|
+
slots: [{ name: "children", description: "Content to reveal" }],
|
|
382
1362
|
},
|
|
383
1363
|
"card-3d": {
|
|
384
1364
|
name: "Card3D",
|
|
@@ -389,6 +1369,16 @@ export const registry = {
|
|
|
389
1369
|
credits: [
|
|
390
1370
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/3d-card-effect" },
|
|
391
1371
|
],
|
|
1372
|
+
tags: ["card", "3d", "perspective", "hover", "animation", "interactive"],
|
|
1373
|
+
props: [
|
|
1374
|
+
{
|
|
1375
|
+
name: "containerClass",
|
|
1376
|
+
type: "string",
|
|
1377
|
+
default: '""',
|
|
1378
|
+
description: "CSS classes for the outer perspective wrapper",
|
|
1379
|
+
},
|
|
1380
|
+
],
|
|
1381
|
+
slots: [{ name: "children", description: "CardBody and CardItem elements" }],
|
|
392
1382
|
},
|
|
393
1383
|
"card-spotlight": {
|
|
394
1384
|
name: "CardSpotlight",
|
|
@@ -399,6 +1389,34 @@ export const registry = {
|
|
|
399
1389
|
credits: [
|
|
400
1390
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/card-spotlight" },
|
|
401
1391
|
],
|
|
1392
|
+
tags: ["card", "spotlight", "mouse", "gradient", "interactive", "hover"],
|
|
1393
|
+
props: [
|
|
1394
|
+
{
|
|
1395
|
+
name: "slotClass",
|
|
1396
|
+
type: "string",
|
|
1397
|
+
default: '""',
|
|
1398
|
+
description: "CSS classes for the inner content wrapper",
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
name: "gradientSize",
|
|
1402
|
+
type: "number",
|
|
1403
|
+
default: "200",
|
|
1404
|
+
description: "Size of the spotlight gradient in pixels",
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
name: "gradientColor",
|
|
1408
|
+
type: "string",
|
|
1409
|
+
default: '"#262626"',
|
|
1410
|
+
description: "Color of the spotlight gradient",
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
name: "gradientOpacity",
|
|
1414
|
+
type: "number",
|
|
1415
|
+
default: "0.8",
|
|
1416
|
+
description: "Opacity of the spotlight gradient",
|
|
1417
|
+
},
|
|
1418
|
+
],
|
|
1419
|
+
slots: [{ name: "children", description: "Card content" }],
|
|
402
1420
|
},
|
|
403
1421
|
"bento-grid": {
|
|
404
1422
|
name: "BentoGrid",
|
|
@@ -407,6 +1425,8 @@ export const registry = {
|
|
|
407
1425
|
category: "cards",
|
|
408
1426
|
status: "done",
|
|
409
1427
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/bento-grid" }],
|
|
1428
|
+
tags: ["grid", "layout", "bento", "cards", "dashboard"],
|
|
1429
|
+
slots: [{ name: "children", description: "BentoGridItem components to arrange in the grid" }],
|
|
410
1430
|
},
|
|
411
1431
|
"flip-card": {
|
|
412
1432
|
name: "FlipCard",
|
|
@@ -414,6 +1434,19 @@ export const registry = {
|
|
|
414
1434
|
description: "Card that flips to reveal back content on hover using CSS 3D transforms",
|
|
415
1435
|
category: "cards",
|
|
416
1436
|
status: "done",
|
|
1437
|
+
tags: ["card", "flip", "3d", "hover", "animation", "interactive"],
|
|
1438
|
+
props: [
|
|
1439
|
+
{
|
|
1440
|
+
name: "rotate",
|
|
1441
|
+
type: '"x" | "y"',
|
|
1442
|
+
default: '"y"',
|
|
1443
|
+
description: "Axis of rotation for the flip effect",
|
|
1444
|
+
},
|
|
1445
|
+
],
|
|
1446
|
+
slots: [
|
|
1447
|
+
{ name: "children", description: "Front face content" },
|
|
1448
|
+
{ name: "back", description: "Back face content revealed on hover" },
|
|
1449
|
+
],
|
|
417
1450
|
},
|
|
418
1451
|
book: {
|
|
419
1452
|
name: "Book",
|
|
@@ -422,6 +1455,36 @@ export const registry = {
|
|
|
422
1455
|
category: "cards",
|
|
423
1456
|
status: "done",
|
|
424
1457
|
credits: [{ source: "Inspira UI", url: "https://inspira-ui.com/components/cards/book" }],
|
|
1458
|
+
tags: ["card", "book", "3d", "hover", "animation"],
|
|
1459
|
+
props: [
|
|
1460
|
+
{
|
|
1461
|
+
name: "duration",
|
|
1462
|
+
type: "number",
|
|
1463
|
+
default: "1000",
|
|
1464
|
+
description: "Hover animation duration in ms",
|
|
1465
|
+
},
|
|
1466
|
+
{
|
|
1467
|
+
name: "color",
|
|
1468
|
+
type: "BookColor",
|
|
1469
|
+
default: '"zinc"',
|
|
1470
|
+
description: "Color theme for the book cover gradient",
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
name: "isStatic",
|
|
1474
|
+
type: "boolean",
|
|
1475
|
+
default: "false",
|
|
1476
|
+
description: "Show book in open position without hover animation",
|
|
1477
|
+
},
|
|
1478
|
+
{ name: "size", type: "BookSize", default: '"md"', description: "Size variant of the book" },
|
|
1479
|
+
{ name: "radius", type: "BookRadius", default: '"md"', description: "Border radius variant" },
|
|
1480
|
+
{
|
|
1481
|
+
name: "shadowSize",
|
|
1482
|
+
type: "BookShadowSize",
|
|
1483
|
+
default: '"lg"',
|
|
1484
|
+
description: "Drop shadow size variant",
|
|
1485
|
+
},
|
|
1486
|
+
],
|
|
1487
|
+
slots: [{ name: "children", description: "Content rendered on the book cover (front face)" }],
|
|
425
1488
|
},
|
|
426
1489
|
"glare-card": {
|
|
427
1490
|
name: "GlareCard",
|
|
@@ -430,6 +1493,10 @@ export const registry = {
|
|
|
430
1493
|
category: "cards",
|
|
431
1494
|
status: "done",
|
|
432
1495
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/glare-card" }],
|
|
1496
|
+
tags: ["card", "glare", "holographic", "mouse", "3d", "foil", "interactive"],
|
|
1497
|
+
slots: [
|
|
1498
|
+
{ name: "children", description: "Card content rendered inside the holographic surface" },
|
|
1499
|
+
],
|
|
433
1500
|
},
|
|
434
1501
|
"text-reveal-card": {
|
|
435
1502
|
name: "TextRevealCard",
|
|
@@ -440,6 +1507,26 @@ export const registry = {
|
|
|
440
1507
|
credits: [
|
|
441
1508
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/text-reveal-card" },
|
|
442
1509
|
],
|
|
1510
|
+
tags: ["card", "text", "reveal", "drag", "interactive", "particles"],
|
|
1511
|
+
props: [
|
|
1512
|
+
{
|
|
1513
|
+
name: "starsCount",
|
|
1514
|
+
type: "number",
|
|
1515
|
+
default: "130",
|
|
1516
|
+
description: "Number of star particles in the background",
|
|
1517
|
+
},
|
|
1518
|
+
{
|
|
1519
|
+
name: "starsClass",
|
|
1520
|
+
type: "string",
|
|
1521
|
+
default: '""',
|
|
1522
|
+
description: "CSS classes for the stars container",
|
|
1523
|
+
},
|
|
1524
|
+
],
|
|
1525
|
+
slots: [
|
|
1526
|
+
{ name: "children", description: "Content rendered above the reveal area (e.g., title)" },
|
|
1527
|
+
{ name: "text", description: "Text shown in the revealed layer (dragged to reveal)" },
|
|
1528
|
+
{ name: "revealText", description: "Text visible in the background star layer" },
|
|
1529
|
+
],
|
|
443
1530
|
},
|
|
444
1531
|
"container-scroll": {
|
|
445
1532
|
name: "ContainerScroll",
|
|
@@ -453,6 +1540,17 @@ export const registry = {
|
|
|
453
1540
|
url: "https://ui.aceternity.com/components/container-scroll-animation",
|
|
454
1541
|
},
|
|
455
1542
|
],
|
|
1543
|
+
tags: ["layout", "scroll", "animation", "3d", "perspective"],
|
|
1544
|
+
slots: [
|
|
1545
|
+
{
|
|
1546
|
+
name: "titleContent",
|
|
1547
|
+
description: "Header/title content that translates upward on scroll",
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
name: "cardContent",
|
|
1551
|
+
description: "Content inside the animated card that tilts flat on scroll",
|
|
1552
|
+
},
|
|
1553
|
+
],
|
|
456
1554
|
},
|
|
457
1555
|
"container-text-flip": {
|
|
458
1556
|
name: "ContainerTextFlip",
|
|
@@ -461,6 +1559,33 @@ export const registry = {
|
|
|
461
1559
|
category: "text",
|
|
462
1560
|
status: "done",
|
|
463
1561
|
credits: [{ source: "Inspira UI", url: "https://inspira-ui.com/components/text/text-flip" }],
|
|
1562
|
+
tags: ["text", "animation", "words", "cycling", "blur", "typography"],
|
|
1563
|
+
props: [
|
|
1564
|
+
{
|
|
1565
|
+
name: "words",
|
|
1566
|
+
type: "string[]",
|
|
1567
|
+
default: '["better","modern","beautiful","awesome"]',
|
|
1568
|
+
description: "Array of words to cycle through",
|
|
1569
|
+
},
|
|
1570
|
+
{
|
|
1571
|
+
name: "interval",
|
|
1572
|
+
type: "number",
|
|
1573
|
+
default: "3000",
|
|
1574
|
+
description: "Time between word changes in ms",
|
|
1575
|
+
},
|
|
1576
|
+
{
|
|
1577
|
+
name: "animationDuration",
|
|
1578
|
+
type: "number",
|
|
1579
|
+
default: "700",
|
|
1580
|
+
description: "Per-character animation duration in ms",
|
|
1581
|
+
},
|
|
1582
|
+
{
|
|
1583
|
+
name: "textClass",
|
|
1584
|
+
type: "string",
|
|
1585
|
+
default: '""',
|
|
1586
|
+
description: "CSS classes for the text content span",
|
|
1587
|
+
},
|
|
1588
|
+
],
|
|
464
1589
|
},
|
|
465
1590
|
focus: {
|
|
466
1591
|
name: "Focus",
|
|
@@ -469,6 +1594,45 @@ export const registry = {
|
|
|
469
1594
|
category: "text",
|
|
470
1595
|
status: "done",
|
|
471
1596
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/focus-cards" }],
|
|
1597
|
+
tags: ["text", "animation", "focus", "blur", "words", "typography"],
|
|
1598
|
+
props: [
|
|
1599
|
+
{
|
|
1600
|
+
name: "sentence",
|
|
1601
|
+
type: "string",
|
|
1602
|
+
default: '"Fancy Focus"',
|
|
1603
|
+
description: "Space-separated words to cycle focus through",
|
|
1604
|
+
},
|
|
1605
|
+
{
|
|
1606
|
+
name: "manualMode",
|
|
1607
|
+
type: "boolean",
|
|
1608
|
+
default: "false",
|
|
1609
|
+
description: "Enable manual control via mouse hover instead of auto-cycling",
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
name: "blurAmount",
|
|
1613
|
+
type: "number",
|
|
1614
|
+
default: "5",
|
|
1615
|
+
description: "Blur amount in pixels for unfocused words",
|
|
1616
|
+
},
|
|
1617
|
+
{
|
|
1618
|
+
name: "borderColor",
|
|
1619
|
+
type: "string",
|
|
1620
|
+
default: '"green"',
|
|
1621
|
+
description: "Color of the corner frame border",
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
name: "animationDuration",
|
|
1625
|
+
type: "number",
|
|
1626
|
+
default: "0.5",
|
|
1627
|
+
description: "Transition duration in seconds",
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
name: "pauseBetweenAnimations",
|
|
1631
|
+
type: "number",
|
|
1632
|
+
default: "1",
|
|
1633
|
+
description: "Pause between word cycles in seconds",
|
|
1634
|
+
},
|
|
1635
|
+
],
|
|
472
1636
|
},
|
|
473
1637
|
"liquid-glass": {
|
|
474
1638
|
name: "LiquidGlass",
|
|
@@ -482,6 +1646,79 @@ export const registry = {
|
|
|
482
1646
|
url: "https://inspira-ui.com/components/special-effects/liquid-glass",
|
|
483
1647
|
},
|
|
484
1648
|
],
|
|
1649
|
+
tags: ["glass", "effect", "svg", "filter", "chromatic", "displacement", "blur"],
|
|
1650
|
+
props: [
|
|
1651
|
+
{ name: "radius", type: "number", default: "16", description: "Border radius in pixels" },
|
|
1652
|
+
{
|
|
1653
|
+
name: "border",
|
|
1654
|
+
type: "number",
|
|
1655
|
+
default: "0.07",
|
|
1656
|
+
description: "Border thickness as fraction of min dimension",
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
name: "lightness",
|
|
1660
|
+
type: "number",
|
|
1661
|
+
default: "50",
|
|
1662
|
+
description: "Background lightness percentage",
|
|
1663
|
+
},
|
|
1664
|
+
{
|
|
1665
|
+
name: "displace",
|
|
1666
|
+
type: "number",
|
|
1667
|
+
description: "Optional Gaussian blur on the displacement output",
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
name: "blend",
|
|
1671
|
+
type: "string",
|
|
1672
|
+
default: '"difference"',
|
|
1673
|
+
description: "SVG blend mode for the displacement channels",
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
name: "xChannel",
|
|
1677
|
+
type: '"R" | "G" | "B"',
|
|
1678
|
+
default: '"R"',
|
|
1679
|
+
description: "X displacement channel selector",
|
|
1680
|
+
},
|
|
1681
|
+
{
|
|
1682
|
+
name: "yChannel",
|
|
1683
|
+
type: '"R" | "G" | "B"',
|
|
1684
|
+
default: '"B"',
|
|
1685
|
+
description: "Y displacement channel selector",
|
|
1686
|
+
},
|
|
1687
|
+
{ name: "alpha", type: "number", default: "0.93", description: "Background fill alpha" },
|
|
1688
|
+
{
|
|
1689
|
+
name: "blur",
|
|
1690
|
+
type: "number",
|
|
1691
|
+
default: "11",
|
|
1692
|
+
description: "Blur applied to the background fill layer",
|
|
1693
|
+
},
|
|
1694
|
+
{
|
|
1695
|
+
name: "rOffset",
|
|
1696
|
+
type: "number",
|
|
1697
|
+
default: "0",
|
|
1698
|
+
description: "Red channel displacement offset",
|
|
1699
|
+
},
|
|
1700
|
+
{
|
|
1701
|
+
name: "gOffset",
|
|
1702
|
+
type: "number",
|
|
1703
|
+
default: "10",
|
|
1704
|
+
description: "Green channel displacement offset",
|
|
1705
|
+
},
|
|
1706
|
+
{
|
|
1707
|
+
name: "bOffset",
|
|
1708
|
+
type: "number",
|
|
1709
|
+
default: "20",
|
|
1710
|
+
description: "Blue channel displacement offset",
|
|
1711
|
+
},
|
|
1712
|
+
{ name: "scale", type: "number", default: "-180", description: "Displacement scale" },
|
|
1713
|
+
{ name: "frost", type: "number", default: "0.05", description: "Frosted glass opacity" },
|
|
1714
|
+
{
|
|
1715
|
+
name: "containerClass",
|
|
1716
|
+
type: "string",
|
|
1717
|
+
default: '""',
|
|
1718
|
+
description: "CSS classes for the outer container",
|
|
1719
|
+
},
|
|
1720
|
+
],
|
|
1721
|
+
slots: [{ name: "children", description: "Content rendered inside the glass effect" }],
|
|
485
1722
|
},
|
|
486
1723
|
"smooth-cursor": {
|
|
487
1724
|
name: "SmoothCursor",
|
|
@@ -492,6 +1729,16 @@ export const registry = {
|
|
|
492
1729
|
credits: [
|
|
493
1730
|
{ source: "Inspira UI", url: "https://inspira-ui.com/components/cursor/smooth-cursor" },
|
|
494
1731
|
],
|
|
1732
|
+
tags: ["cursor", "animation", "spring", "physics", "interactive"],
|
|
1733
|
+
props: [
|
|
1734
|
+
{
|
|
1735
|
+
name: "springConfig",
|
|
1736
|
+
type: "SpringConfig",
|
|
1737
|
+
default: "{}",
|
|
1738
|
+
description: "Spring physics configuration with damping, stiffness, and mass",
|
|
1739
|
+
},
|
|
1740
|
+
],
|
|
1741
|
+
slots: [{ name: "cursor", description: "Custom cursor element (defaults to arrow SVG)" }],
|
|
495
1742
|
},
|
|
496
1743
|
"glowing-effect": {
|
|
497
1744
|
name: "GlowingEffect",
|
|
@@ -500,6 +1747,58 @@ export const registry = {
|
|
|
500
1747
|
category: "effects",
|
|
501
1748
|
status: "done",
|
|
502
1749
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/glowing-effect" }],
|
|
1750
|
+
tags: ["border", "glow", "mouse", "gradient", "conic", "animation"],
|
|
1751
|
+
props: [
|
|
1752
|
+
{
|
|
1753
|
+
name: "blur",
|
|
1754
|
+
type: "number",
|
|
1755
|
+
default: "0",
|
|
1756
|
+
description: "Blur amount applied to the glow layer",
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
name: "inactiveZone",
|
|
1760
|
+
type: "number",
|
|
1761
|
+
default: "0.7",
|
|
1762
|
+
description: "Fraction of element radius where glow is inactive",
|
|
1763
|
+
},
|
|
1764
|
+
{
|
|
1765
|
+
name: "proximity",
|
|
1766
|
+
type: "number",
|
|
1767
|
+
default: "0",
|
|
1768
|
+
description: "Extra pixel range outside element bounds where glow activates",
|
|
1769
|
+
},
|
|
1770
|
+
{
|
|
1771
|
+
name: "spread",
|
|
1772
|
+
type: "number",
|
|
1773
|
+
default: "20",
|
|
1774
|
+
description: "Angular spread of the conic gradient in degrees",
|
|
1775
|
+
},
|
|
1776
|
+
{
|
|
1777
|
+
name: "variant",
|
|
1778
|
+
type: '"default" | "white"',
|
|
1779
|
+
default: '"default"',
|
|
1780
|
+
description: "Color variant of the glow",
|
|
1781
|
+
},
|
|
1782
|
+
{
|
|
1783
|
+
name: "glow",
|
|
1784
|
+
type: "boolean",
|
|
1785
|
+
default: "false",
|
|
1786
|
+
description: "Always show glow regardless of mouse position",
|
|
1787
|
+
},
|
|
1788
|
+
{
|
|
1789
|
+
name: "disabled",
|
|
1790
|
+
type: "boolean",
|
|
1791
|
+
default: "true",
|
|
1792
|
+
description: "Disable the glowing effect",
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
name: "movementDuration",
|
|
1796
|
+
type: "number",
|
|
1797
|
+
default: "2",
|
|
1798
|
+
description: "Duration of the angle lerp animation",
|
|
1799
|
+
},
|
|
1800
|
+
{ name: "borderWidth", type: "number", default: "1", description: "Border width in pixels" },
|
|
1801
|
+
],
|
|
503
1802
|
},
|
|
504
1803
|
sparkles: {
|
|
505
1804
|
name: "Sparkles",
|
|
@@ -508,6 +1807,40 @@ export const registry = {
|
|
|
508
1807
|
category: "backgrounds",
|
|
509
1808
|
status: "done",
|
|
510
1809
|
credits: [{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/sparkles" }],
|
|
1810
|
+
tags: ["background", "particles", "canvas", "animation", "sparkles"],
|
|
1811
|
+
props: [
|
|
1812
|
+
{
|
|
1813
|
+
name: "background",
|
|
1814
|
+
type: "string",
|
|
1815
|
+
default: '"#0d47a1"',
|
|
1816
|
+
description: "Background color of the canvas container",
|
|
1817
|
+
},
|
|
1818
|
+
{
|
|
1819
|
+
name: "particleColor",
|
|
1820
|
+
type: "string",
|
|
1821
|
+
default: '"#ffffff"',
|
|
1822
|
+
description: "Color of the particles",
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
name: "minSize",
|
|
1826
|
+
type: "number",
|
|
1827
|
+
default: "1",
|
|
1828
|
+
description: "Minimum particle radius in pixels",
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
name: "maxSize",
|
|
1832
|
+
type: "number",
|
|
1833
|
+
default: "3",
|
|
1834
|
+
description: "Maximum particle radius in pixels",
|
|
1835
|
+
},
|
|
1836
|
+
{ name: "speed", type: "number", default: "4", description: "Particle speed multiplier" },
|
|
1837
|
+
{
|
|
1838
|
+
name: "particleDensity",
|
|
1839
|
+
type: "number",
|
|
1840
|
+
default: "120",
|
|
1841
|
+
description: "Number of particles",
|
|
1842
|
+
},
|
|
1843
|
+
],
|
|
511
1844
|
},
|
|
512
1845
|
confetti: {
|
|
513
1846
|
name: "Confetti",
|
|
@@ -516,6 +1849,28 @@ export const registry = {
|
|
|
516
1849
|
category: "effects",
|
|
517
1850
|
status: "done",
|
|
518
1851
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/confetti" }],
|
|
1852
|
+
tags: ["confetti", "celebration", "animation", "canvas", "particles"],
|
|
1853
|
+
props: [
|
|
1854
|
+
{
|
|
1855
|
+
name: "options",
|
|
1856
|
+
type: "ConfettiOptions",
|
|
1857
|
+
default: "{}",
|
|
1858
|
+
description: "canvas-confetti options passed to each fire() call",
|
|
1859
|
+
},
|
|
1860
|
+
{
|
|
1861
|
+
name: "globalOptions",
|
|
1862
|
+
type: "ConfettiGlobalOptions",
|
|
1863
|
+
default: "{}",
|
|
1864
|
+
description: "Global canvas-confetti initialization options",
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
name: "manualStart",
|
|
1868
|
+
type: "boolean",
|
|
1869
|
+
default: "false",
|
|
1870
|
+
description: "Prevent auto-firing on mount; call fire() manually",
|
|
1871
|
+
},
|
|
1872
|
+
],
|
|
1873
|
+
slots: [{ name: "children", description: "ConfettiButton or other trigger elements" }],
|
|
519
1874
|
},
|
|
520
1875
|
ripple: {
|
|
521
1876
|
name: "Ripple",
|
|
@@ -524,6 +1879,51 @@ export const registry = {
|
|
|
524
1879
|
category: "effects",
|
|
525
1880
|
status: "done",
|
|
526
1881
|
credits: [{ source: "Magic UI", url: "https://magicui.design/docs/components/ripple" }],
|
|
1882
|
+
tags: ["animation", "ripple", "circles", "decoration", "pulse"],
|
|
1883
|
+
props: [
|
|
1884
|
+
{
|
|
1885
|
+
name: "baseCircleSize",
|
|
1886
|
+
type: "number",
|
|
1887
|
+
default: "210",
|
|
1888
|
+
description: "Diameter of the smallest (innermost) circle in pixels",
|
|
1889
|
+
},
|
|
1890
|
+
{
|
|
1891
|
+
name: "baseCircleOpacity",
|
|
1892
|
+
type: "number",
|
|
1893
|
+
default: "0.24",
|
|
1894
|
+
description: "Opacity of the innermost circle",
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
name: "spaceBetweenCircle",
|
|
1898
|
+
type: "number",
|
|
1899
|
+
default: "70",
|
|
1900
|
+
description: "Extra pixels added to each successive circle",
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
name: "circleOpacityDowngradeRatio",
|
|
1904
|
+
type: "number",
|
|
1905
|
+
default: "0.03",
|
|
1906
|
+
description: "Opacity reduction per circle outward",
|
|
1907
|
+
},
|
|
1908
|
+
{
|
|
1909
|
+
name: "circleClass",
|
|
1910
|
+
type: "string",
|
|
1911
|
+
default: '""',
|
|
1912
|
+
description: "Additional CSS classes applied to each circle",
|
|
1913
|
+
},
|
|
1914
|
+
{
|
|
1915
|
+
name: "waveSpeed",
|
|
1916
|
+
type: "number",
|
|
1917
|
+
default: "80",
|
|
1918
|
+
description: "Animation delay between circles in ms",
|
|
1919
|
+
},
|
|
1920
|
+
{
|
|
1921
|
+
name: "numberOfCircles",
|
|
1922
|
+
type: "number",
|
|
1923
|
+
default: "7",
|
|
1924
|
+
description: "Total number of concentric circles",
|
|
1925
|
+
},
|
|
1926
|
+
],
|
|
527
1927
|
},
|
|
528
1928
|
"text-generate-effect": {
|
|
529
1929
|
name: "TextGenerateEffect",
|
|
@@ -534,6 +1934,34 @@ export const registry = {
|
|
|
534
1934
|
credits: [
|
|
535
1935
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/text-generate-effect" },
|
|
536
1936
|
],
|
|
1937
|
+
tags: ["text", "animation", "typewriter", "reveal", "blur", "typography"],
|
|
1938
|
+
props: [
|
|
1939
|
+
{ name: "words", type: "string", description: "Text to reveal word by word", required: true },
|
|
1940
|
+
{
|
|
1941
|
+
name: "filter",
|
|
1942
|
+
type: "boolean",
|
|
1943
|
+
default: "true",
|
|
1944
|
+
description: "Apply blur filter during reveal animation",
|
|
1945
|
+
},
|
|
1946
|
+
{
|
|
1947
|
+
name: "duration",
|
|
1948
|
+
type: "number",
|
|
1949
|
+
default: "0.7",
|
|
1950
|
+
description: "Fade-in duration per word in seconds",
|
|
1951
|
+
},
|
|
1952
|
+
{
|
|
1953
|
+
name: "delay",
|
|
1954
|
+
type: "number",
|
|
1955
|
+
default: "0",
|
|
1956
|
+
description: "Initial delay before animation starts in ms",
|
|
1957
|
+
},
|
|
1958
|
+
{
|
|
1959
|
+
name: "stagger",
|
|
1960
|
+
type: "number",
|
|
1961
|
+
default: "200",
|
|
1962
|
+
description: "Delay between each word in ms",
|
|
1963
|
+
},
|
|
1964
|
+
],
|
|
537
1965
|
},
|
|
538
1966
|
"line-shadow-text": {
|
|
539
1967
|
name: "LineShadowText",
|
|
@@ -544,6 +1972,22 @@ export const registry = {
|
|
|
544
1972
|
credits: [
|
|
545
1973
|
{ source: "Magic UI", url: "https://magicui.design/docs/components/line-shadow-text" },
|
|
546
1974
|
],
|
|
1975
|
+
tags: ["text", "animation", "shadow", "pattern", "typography", "decoration"],
|
|
1976
|
+
props: [
|
|
1977
|
+
{ name: "text", type: "string", description: "Text content to display", required: true },
|
|
1978
|
+
{
|
|
1979
|
+
name: "shadowColor",
|
|
1980
|
+
type: "string",
|
|
1981
|
+
default: '"black"',
|
|
1982
|
+
description: "Color of the diagonal line shadow",
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
name: "as",
|
|
1986
|
+
type: '"span" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "div"',
|
|
1987
|
+
default: '"span"',
|
|
1988
|
+
description: "HTML element to render as",
|
|
1989
|
+
},
|
|
1990
|
+
],
|
|
547
1991
|
},
|
|
548
1992
|
"tracing-beam": {
|
|
549
1993
|
name: "TracingBeam",
|
|
@@ -554,6 +1998,10 @@ export const registry = {
|
|
|
554
1998
|
credits: [
|
|
555
1999
|
{ source: "Aceternity UI", url: "https://ui.aceternity.com/components/tracing-beam" },
|
|
556
2000
|
],
|
|
2001
|
+
tags: ["scroll", "animation", "svg", "beam", "progress", "sidebar"],
|
|
2002
|
+
slots: [
|
|
2003
|
+
{ name: "children", description: "Long-form content rendered alongside the tracing beam" },
|
|
2004
|
+
],
|
|
557
2005
|
},
|
|
558
2006
|
"displacement-text": {
|
|
559
2007
|
name: "DisplacementText",
|
|
@@ -562,6 +2010,25 @@ export const registry = {
|
|
|
562
2010
|
category: "text",
|
|
563
2011
|
status: "done",
|
|
564
2012
|
credits: [{ source: "VengenceUI", url: "https://vengenceui.com/docs/liquid-text" }],
|
|
2013
|
+
tags: ["text", "webgl", "3d", "displacement", "cursor", "shader", "threejs"],
|
|
2014
|
+
props: [
|
|
2015
|
+
{ name: "text", type: "string", default: '"Hover Me"', description: "Text to display" },
|
|
2016
|
+
{ name: "fontSize", type: "number", default: "200", description: "Font size in pixels" },
|
|
2017
|
+
{ name: "font", type: "string", default: '"Inter, sans-serif"', description: "Font family" },
|
|
2018
|
+
{ name: "color", type: "string", description: "Fixed text color (overrides theme colors)" },
|
|
2019
|
+
{
|
|
2020
|
+
name: "lightColor",
|
|
2021
|
+
type: "string",
|
|
2022
|
+
default: '"#000000"',
|
|
2023
|
+
description: "Text color in light mode",
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
name: "darkColor",
|
|
2027
|
+
type: "string",
|
|
2028
|
+
default: '"#ffffff"',
|
|
2029
|
+
description: "Text color in dark mode",
|
|
2030
|
+
},
|
|
2031
|
+
],
|
|
565
2032
|
},
|
|
566
2033
|
"matrix-rain": {
|
|
567
2034
|
name: "MatrixRain",
|
|
@@ -569,6 +2036,34 @@ export const registry = {
|
|
|
569
2036
|
description: "Canvas-based Matrix-style falling glyph rain with configurable color, speed, and density",
|
|
570
2037
|
category: "backgrounds",
|
|
571
2038
|
status: "done",
|
|
2039
|
+
tags: ["background", "matrix", "canvas", "animation", "glyphs", "cyberpunk"],
|
|
2040
|
+
props: [
|
|
2041
|
+
{
|
|
2042
|
+
name: "color",
|
|
2043
|
+
type: "string",
|
|
2044
|
+
default: '"#00ff41"',
|
|
2045
|
+
description: "Glyph color (the classic Matrix green)",
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
name: "speed",
|
|
2049
|
+
type: "number",
|
|
2050
|
+
default: "1.0",
|
|
2051
|
+
description: "Fall speed multiplier (< 1 slower, > 1 faster)",
|
|
2052
|
+
},
|
|
2053
|
+
{ name: "density", type: "number", default: "1.0", description: "Column density multiplier" },
|
|
2054
|
+
{
|
|
2055
|
+
name: "glyphSize",
|
|
2056
|
+
type: "number",
|
|
2057
|
+
default: "16",
|
|
2058
|
+
description: "Font size of each glyph in pixels",
|
|
2059
|
+
},
|
|
2060
|
+
{
|
|
2061
|
+
name: "fadeOpacity",
|
|
2062
|
+
type: "number",
|
|
2063
|
+
default: "0.05",
|
|
2064
|
+
description: "Opacity of the black overlay used to create trailing fade effect",
|
|
2065
|
+
},
|
|
2066
|
+
],
|
|
572
2067
|
},
|
|
573
2068
|
"terminal-text": {
|
|
574
2069
|
name: "TerminalText",
|
|
@@ -576,6 +2071,91 @@ export const registry = {
|
|
|
576
2071
|
description: "Terminal-style text streamer with per-character animation, blinking cursor, and glitch effect",
|
|
577
2072
|
category: "text",
|
|
578
2073
|
status: "done",
|
|
2074
|
+
tags: ["text", "terminal", "animation", "typewriter", "glitch", "code"],
|
|
2075
|
+
props: [
|
|
2076
|
+
{
|
|
2077
|
+
name: "lines",
|
|
2078
|
+
type: "string[]",
|
|
2079
|
+
description: "Array of lines to stream character by character",
|
|
2080
|
+
required: true,
|
|
2081
|
+
},
|
|
2082
|
+
{
|
|
2083
|
+
name: "speed",
|
|
2084
|
+
type: "number",
|
|
2085
|
+
default: "40",
|
|
2086
|
+
description: "Delay between each character in ms",
|
|
2087
|
+
},
|
|
2088
|
+
{
|
|
2089
|
+
name: "delay",
|
|
2090
|
+
type: "number",
|
|
2091
|
+
default: "0",
|
|
2092
|
+
description: "Initial delay before streaming starts in ms",
|
|
2093
|
+
},
|
|
2094
|
+
{ name: "cursor", type: "boolean", default: "true", description: "Show blinking cursor" },
|
|
2095
|
+
{
|
|
2096
|
+
name: "cursorChar",
|
|
2097
|
+
type: "string",
|
|
2098
|
+
default: '"█"',
|
|
2099
|
+
description: "Character used as the cursor",
|
|
2100
|
+
},
|
|
2101
|
+
{
|
|
2102
|
+
name: "glitch",
|
|
2103
|
+
type: "boolean",
|
|
2104
|
+
default: "false",
|
|
2105
|
+
description: "Enable random character glitch effect after streaming",
|
|
2106
|
+
},
|
|
2107
|
+
{
|
|
2108
|
+
name: "onComplete",
|
|
2109
|
+
type: "() => void",
|
|
2110
|
+
description: "Callback fired when all lines finish streaming",
|
|
2111
|
+
},
|
|
2112
|
+
],
|
|
2113
|
+
},
|
|
2114
|
+
"noise-reveal": {
|
|
2115
|
+
name: "NoiseReveal",
|
|
2116
|
+
slug: "noise-reveal",
|
|
2117
|
+
description: "WebGL image reveal with a Perlin-noise dissolve mask, contracting radial gradient, and wave displacement, inspired by a Codrops shader effect",
|
|
2118
|
+
category: "media",
|
|
2119
|
+
status: "done",
|
|
2120
|
+
credits: [
|
|
2121
|
+
{
|
|
2122
|
+
source: "Codrops",
|
|
2123
|
+
url: "https://tympanus.net/codrops/2024/12/02/how-to-code-a-shader-based-reveal-effect-with-react-three-fiber-glsl/",
|
|
2124
|
+
},
|
|
2125
|
+
{
|
|
2126
|
+
source: "colindmg/r3f-image-reveal-effect",
|
|
2127
|
+
url: "https://github.com/colindmg/r3f-image-reveal-effect",
|
|
2128
|
+
},
|
|
2129
|
+
],
|
|
2130
|
+
tags: ["media", "image", "reveal", "webgl", "shader", "threejs", "noise"],
|
|
2131
|
+
props: [
|
|
2132
|
+
{ name: "src", type: "string", description: "Image URL", required: true },
|
|
2133
|
+
{ name: "alt", type: "string", description: "Accessible label for the image" },
|
|
2134
|
+
{
|
|
2135
|
+
name: "trigger",
|
|
2136
|
+
type: '"view" | "manual"',
|
|
2137
|
+
default: '"view"',
|
|
2138
|
+
description: 'Reveal trigger: "view" = on viewport entry, "manual" = via revealed prop',
|
|
2139
|
+
},
|
|
2140
|
+
{
|
|
2141
|
+
name: "revealed",
|
|
2142
|
+
type: "boolean",
|
|
2143
|
+
default: "false",
|
|
2144
|
+
description: 'Manual reveal state (used with trigger="manual"; also allows re-hiding)',
|
|
2145
|
+
},
|
|
2146
|
+
{
|
|
2147
|
+
name: "duration",
|
|
2148
|
+
type: "number",
|
|
2149
|
+
default: "1.5",
|
|
2150
|
+
description: "Reveal animation duration in seconds",
|
|
2151
|
+
},
|
|
2152
|
+
{
|
|
2153
|
+
name: "delay",
|
|
2154
|
+
type: "number",
|
|
2155
|
+
default: "0",
|
|
2156
|
+
description: 'Delay before reveal in seconds (trigger="view")',
|
|
2157
|
+
},
|
|
2158
|
+
],
|
|
579
2159
|
},
|
|
580
2160
|
};
|
|
581
2161
|
// =============================================================================
|