{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "animbits",
  "homepage": "https://animbits.dev",
  "items": [
    {
      "name": "hooks-use-hover-lift",
      "type": "registry:lib",
      "title": "Use Hover Lift",
      "description": "The use-hover-lift hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-hover-lift.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-hover-glow",
      "type": "registry:lib",
      "title": "Use Hover Glow",
      "description": "The use-hover-glow hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-hover-glow.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-press",
      "type": "registry:lib",
      "title": "Use Press",
      "description": "The use-press hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-press.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-fade-in",
      "type": "registry:lib",
      "title": "Use Fade In",
      "description": "The use-fade-in hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-fade-in.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-scale-in",
      "type": "registry:lib",
      "title": "Use Scale In",
      "description": "The use-scale-in hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-scale-in.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-slide-in",
      "type": "registry:lib",
      "title": "Use Slide In",
      "description": "The use-slide-in hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-slide-in.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-pulse",
      "type": "registry:lib",
      "title": "Use Pulse",
      "description": "The use-pulse hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-pulse.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-bounce",
      "type": "registry:lib",
      "title": "Use Bounce",
      "description": "The use-bounce hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-bounce.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-shimmer",
      "type": "registry:lib",
      "title": "Use Shimmer",
      "description": "The use-shimmer hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-shimmer.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-scramble",
      "type": "registry:lib",
      "title": "Use Scramble",
      "description": "The use-scramble hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-scramble.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-word-carousel",
      "type": "registry:lib",
      "title": "Use Word Carousel",
      "description": "The use-word-carousel hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-word-carousel.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-magnetic",
      "type": "registry:lib",
      "title": "Use Magnetic",
      "description": "The use-magnetic hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-magnetic.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-parallax-tilt",
      "type": "registry:lib",
      "title": "Use Parallax Tilt",
      "description": "The use-parallax-tilt hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-parallax-tilt.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-use-stroke-draw",
      "type": "registry:lib",
      "title": "Use Stroke Draw",
      "description": "The use-stroke-draw hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/use-stroke-draw.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "hooks-index",
      "type": "registry:lib",
      "title": "Index",
      "description": "The index hook.",
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "lib/index.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-pulse",
      "type": "registry:component",
      "title": "Pulse Icon",
      "description": "Continuous pulsing animation for icons",
      "tags": [
        "icon",
        "continuous",
        "pulse",
        "loop"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/pulse.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-bounce",
      "type": "registry:component",
      "title": "Bounce Icon",
      "description": "One-shot bounce animation for icons with configurable triggers",
      "tags": [
        "icon",
        "one-shot",
        "bounce",
        "interactive"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/bounce.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-bounce-continuous",
      "type": "registry:component",
      "title": "Bounce Continuous",
      "description": "Continuous bouncing animation for icons",
      "tags": [
        "icon",
        "continuous",
        "bounce",
        "loop"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/bounce-continuous.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-spin",
      "type": "registry:component",
      "title": "Spin Icon",
      "description": "Continuous rotation animation for icons",
      "tags": [
        "icon",
        "continuous",
        "spin",
        "rotate",
        "loop"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/spin.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "icons-wiggle",
      "type": "registry:component",
      "title": "Wiggle Icon",
      "description": "One-shot wiggle animation (rotate left-right) for icons",
      "tags": [
        "icon",
        "one-shot",
        "wiggle",
        "interactive"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/wiggle.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-shake",
      "type": "registry:component",
      "title": "Shake Icon",
      "description": "One-shot shake animation (horizontal shake) for icons",
      "tags": [
        "icon",
        "one-shot",
        "shake",
        "interactive"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/shake.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-heartbeat",
      "type": "registry:component",
      "title": "Heartbeat Icon",
      "description": "Continuous heartbeat rhythm animation for icons",
      "tags": [
        "icon",
        "continuous",
        "heartbeat",
        "pulse",
        "loop"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/heartbeat.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-fade-in",
      "type": "registry:component",
      "title": "Fade In Icon",
      "description": "Entrance animation with fade effect for icons",
      "tags": [
        "icon",
        "entrance",
        "fade"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/fade-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-scale-in",
      "type": "registry:component",
      "title": "Scale In Icon",
      "description": "Entrance animation with scale effect for icons",
      "tags": [
        "icon",
        "entrance",
        "scale"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/scale-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-pop",
      "type": "registry:component",
      "title": "Pop Icon",
      "description": "One-shot pop effect (scale from 0 to 1) for icons",
      "tags": [
        "icon",
        "one-shot",
        "pop",
        "scale"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/pop.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-rotate",
      "type": "registry:component",
      "title": "Rotate Icon",
      "description": "One-shot 360° rotation animation for icons",
      "tags": [
        "icon",
        "one-shot",
        "rotate",
        "interactive"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/rotate.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "icons-stroke-draw",
      "type": "registry:component",
      "title": "Stroke Draw Icon",
      "description": "SVG path stroke drawing animation for icons",
      "tags": [
        "icon",
        "stroke",
        "draw",
        "svg",
        "entrance"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/stroke-draw.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-stroke-draw.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "specials-reaction-dock",
      "type": "registry:component",
      "title": "Reaction Dock",
      "description": "A smooth, scaling dock of reaction emojis with magnification effect",
      "tags": [
        "specials",
        "dock",
        "reaction",
        "magnification",
        "animation"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/reaction-dock.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-reaction-dock-demo",
      "type": "registry:component",
      "title": "Reaction Dock Demo",
      "description": "Demo for the Reaction Dock component",
      "tags": [
        "specials",
        "demo"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/reaction-dock-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-animated-toast",
      "type": "registry:component",
      "title": "Animated Toast",
      "description": "Detailed toast notification with slide-in animation, icon, and auto-dismiss progress bar",
      "tags": [
        "specials",
        "toast",
        "notification",
        "micro-interaction",
        "alert"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/animated-toast.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/new-york/animations/specials/toast-trigger.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "spotlight-card",
      "type": "registry:ui",
      "description": "An interactive card with a spotlight effect.",
      "dependencies": [
        "motion",
        "lucide-react",
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/spotlight-card.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/new-york/animations/specials/spotlight-card-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "reaction-button",
      "type": "registry:ui",
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/reaction-button.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "specials-border-beam",
      "type": "registry:component",
      "title": "Border Beam",
      "description": "An animated gradient border effect that travels around a container",
      "tags": [
        "specials",
        "border",
        "beam",
        "gradient",
        "animation"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/border-beam.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-border-beam-demo",
      "type": "registry:component",
      "title": "Border Beam Demo",
      "description": "Demo for the Border Beam component",
      "tags": [
        "specials",
        "demo"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/border-beam-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "buttons-press",
      "type": "registry:component",
      "title": "Press Button",
      "description": "Button with press-down effect on tap",
      "tags": [
        "button",
        "interactive",
        "press",
        "tap"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/press.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-press.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-glow",
      "type": "registry:component",
      "title": "Glow Button",
      "description": "Button with glow effect on hover",
      "tags": [
        "button",
        "interactive",
        "glow",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/glow.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-hover-glow.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-lift",
      "type": "registry:component",
      "title": "Lift Button",
      "description": "Button that lifts up on hover",
      "tags": [
        "button",
        "interactive",
        "lift",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/lift.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-hover-lift.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-shine",
      "type": "registry:component",
      "title": "Shine Button",
      "description": "Button with shine sweep effect on hover",
      "tags": [
        "button",
        "interactive",
        "shine",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/shine.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "buttons-fade-in",
      "type": "registry:component",
      "title": "Fade In Button",
      "description": "Button with fade-in entrance animation",
      "tags": [
        "button",
        "entrance",
        "fade"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/fade-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-slide-in",
      "type": "registry:component",
      "title": "Slide In Button",
      "description": "Button with slide-in entrance animation",
      "tags": [
        "button",
        "entrance",
        "slide"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/slide-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/animation-presets.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-ripple",
      "type": "registry:component",
      "title": "Ripple Button",
      "description": "Button with touch-aware ripple effect on click",
      "tags": [
        "button",
        "interactive",
        "ripple",
        "click"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/ripple.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "buttons-magnetic",
      "type": "registry:component",
      "title": "Magnetic Button",
      "description": "Button with cursor-following magnetic attraction effect",
      "tags": [
        "button",
        "interactive",
        "magnetic",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/magnetic.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-magnetic.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "buttons-border-gradient",
      "type": "registry:component",
      "title": "Border Gradient Button",
      "description": "Button with animated gradient border",
      "tags": [
        "button",
        "gradient",
        "border",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/buttons/border-gradient.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cards-hover-lift",
      "type": "registry:component",
      "title": "Hover Lift Card",
      "description": "Card that lifts with shadow on hover",
      "tags": [
        "card",
        "interactive",
        "lift",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/hover-lift.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-hover-lift.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "cards-hover-glow",
      "type": "registry:component",
      "title": "Hover Glow Card",
      "description": "Card with glow effect on hover",
      "tags": [
        "card",
        "interactive",
        "glow",
        "hover"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/hover-glow.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-hover-glow.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "cards-fade-in",
      "type": "registry:component",
      "title": "Fade In Card",
      "description": "Card with fade-in animation on mount",
      "tags": [
        "card",
        "entrance",
        "fade"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/fade-in.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cards-scale-in",
      "type": "registry:component",
      "title": "Scale In Card",
      "description": "Card with scale-in animation on mount",
      "tags": [
        "card",
        "entrance",
        "scale"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/scale-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-scale-in.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "cards-slide-in",
      "type": "registry:component",
      "title": "Slide In Card",
      "description": "Card that slides in from any direction on mount",
      "tags": [
        "card",
        "entrance",
        "slide"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/slide-in.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-slide-in.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "cards-flip",
      "type": "registry:component",
      "title": "Flip Card",
      "description": "Card with 3D flip animation on hover",
      "tags": [
        "card",
        "interactive",
        "flip",
        "hover",
        "3d"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/flip.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cards-tilt",
      "type": "registry:component",
      "title": "Tilt Card",
      "description": "Card with mouse-tracking tilt effect",
      "tags": [
        "card",
        "interactive",
        "tilt",
        "hover",
        "3d"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/tilt.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cards-parallax-tilt",
      "type": "registry:component",
      "title": "Parallax Tilt Card",
      "description": "Card with 3D parallax tilt effect and depth",
      "tags": [
        "card",
        "interactive",
        "parallax",
        "tilt",
        "hover",
        "3d"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/parallax-tilt.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-parallax-tilt.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "cards-background-zoom",
      "type": "registry:component",
      "title": "Background Zoom Card",
      "description": "Card with background image zoom on hover",
      "tags": [
        "card",
        "interactive",
        "zoom",
        "hover",
        "background"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/background-zoom.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-fade-in",
      "type": "registry:component",
      "title": "Fade In Text",
      "description": "Text that fades in word by word or character by character",
      "tags": [
        "text",
        "entrance",
        "fade",
        "stagger"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/fade-in.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-slide-up",
      "type": "registry:component",
      "title": "Slide Up Text",
      "description": "Text that slides up word by word or character by character",
      "tags": [
        "text",
        "entrance",
        "slide",
        "stagger"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/slide-up.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-typewriter",
      "type": "registry:component",
      "title": "Typewriter Text",
      "description": "Text with typewriter effect and optional blinking cursor",
      "tags": [
        "text",
        "typewriter",
        "animation"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/typewriter.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-gradient",
      "type": "registry:component",
      "title": "Gradient Text",
      "description": "Text with animated gradient effect",
      "tags": [
        "text",
        "gradient",
        "continuous",
        "loop"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/gradient.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-blur-in",
      "type": "registry:component",
      "title": "Blur In Text",
      "description": "Text that blurs in word by word or character by character",
      "tags": [
        "text",
        "entrance",
        "blur",
        "stagger"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/blur-in.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-dia",
      "type": "registry:component",
      "title": "Dia Text",
      "description": "Scroll-driven text reveal with precision blur and spring physics",
      "tags": [
        "text",
        "scroll",
        "blur",
        "reveal",
        "spring"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/dia-text.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-shimmer",
      "type": "registry:component",
      "title": "Shimmer Text",
      "description": "Text with gradient shimmer sweep animation",
      "tags": [
        "text",
        "shimmer",
        "gradient",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/shimmer.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-shimmer.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "text-scramble",
      "type": "registry:component",
      "title": "Scramble Text",
      "description": "Hacker-style text scramble decode animation",
      "tags": [
        "text",
        "scramble",
        "decode",
        "entrance"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/scramble.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-scramble.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "text-word-carousel",
      "type": "registry:component",
      "title": "Word Carousel Text",
      "description": "Rotating word carousel animation",
      "tags": [
        "text",
        "carousel",
        "rotate",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/word-carousel.tsx",
          "type": "registry:component"
        },
        {
          "path": "lib/use-word-carousel.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "text-split-reveal",
      "type": "registry:component",
      "title": "Split Reveal Text",
      "description": "Text reveals with vertical split effect",
      "tags": [
        "text",
        "split",
        "reveal",
        "entrance"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/split-reveal.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-svg-text-draw",
      "type": "registry:component",
      "title": "SVG Text Draw",
      "description": "SVG path drawing animation that reveals text letter by letter with stroke animation",
      "tags": [
        "text",
        "svg",
        "draw",
        "writing",
        "entrance",
        "stroke"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/svg-text-draw.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-spinner",
      "type": "registry:component",
      "title": "Spinner Loader",
      "description": "Circular spinning loader",
      "tags": [
        "loader",
        "spinner",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/spinner.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-dots",
      "type": "registry:component",
      "title": "Dots Loader",
      "description": "Bouncing dots loader",
      "tags": [
        "loader",
        "dots",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/dots.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-bars",
      "type": "registry:component",
      "title": "Bars Loader",
      "description": "Animated height bars loader",
      "tags": [
        "loader",
        "bars",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/bars.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-pulse",
      "type": "registry:component",
      "title": "Pulse Loader",
      "description": "Pulsing circle loader",
      "tags": [
        "loader",
        "pulse",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/pulse.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-skeleton",
      "type": "registry:component",
      "title": "Skeleton Loader",
      "description": "Shimmer skeleton loader for content placeholders",
      "tags": [
        "loader",
        "skeleton",
        "shimmer",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/skeleton.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-orbit",
      "type": "registry:component",
      "title": "Orbit Loader",
      "description": "Spinning particles in orbit animation",
      "tags": [
        "loader",
        "orbit",
        "particles",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/orbit.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-gooey-blobs",
      "type": "registry:component",
      "title": "Gooey Blobs Loader",
      "description": "Organic merging blobs animation",
      "tags": [
        "loader",
        "gooey",
        "blobs",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/gooey-blobs.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-morphing",
      "type": "registry:component",
      "title": "Morphing Loader",
      "description": "Shape-shifting morphing animation",
      "tags": [
        "loader",
        "morphing",
        "shapes",
        "loading",
        "continuous"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/morphing.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "lists-slide-in",
      "type": "registry:component",
      "title": "Slide In List",
      "description": "List with staggered slide-in animation for items",
      "tags": [
        "list",
        "entrance",
        "slide",
        "stagger"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/lists/slide-in.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "lists-stagger-fade",
      "type": "registry:component",
      "title": "Stagger Fade List",
      "description": "List with staggered fade-in animation for items",
      "tags": [
        "list",
        "entrance",
        "fade",
        "stagger"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/lists/stagger-fade.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "icons-morph",
      "type": "registry:component",
      "title": "Morph Icon",
      "description": "An icon that morphs between different states (e.g., play → pause).",
      "tags": [
        "icon",
        "morph",
        "svg",
        "interactive"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/icons/morph.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cards-grayscale",
      "type": "registry:component",
      "title": "Grayscale Card",
      "description": "A card with grayscale to color transition effect on hover.",
      "tags": [
        "card",
        "interactive",
        "grayscale",
        "hover",
        "image"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/cards/grayscale.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "loaders-liquid-progress",
      "type": "registry:component",
      "title": "Liquid Progress Loader",
      "description": "A liquid-style progress bar that fills vertically.",
      "tags": [
        "loader",
        "progress",
        "liquid",
        "loading"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/loaders/liquid-progress.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "pages-page-transition-fade",
      "type": "registry:component",
      "title": "Page Transition Fade",
      "description": "Page transition component with fade effect using View Transitions API.",
      "tags": [
        "page",
        "transition",
        "fade",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/pages/page-transition-fade.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "pages-page-transition-link",
      "type": "registry:component",
      "title": "Page Transition Link",
      "description": "Navigation link component with View Transitions API support.",
      "tags": [
        "link",
        "navigation",
        "transition",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/pages/page-transition-link.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "pages-page-transition-slide",
      "type": "registry:component",
      "title": "Page Transition Slide",
      "description": "Page transition component with slide effect using View Transitions API.",
      "tags": [
        "page",
        "transition",
        "slide",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/pages/page-transition-slide.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-shared-modal",
      "type": "registry:component",
      "title": "Shared Modal",
      "description": "A trigger that morphs into a modal with multiple animation styles.",
      "tags": [
        "transition",
        "modal",
        "layout",
        "shared-element"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/shared-modal.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-expanding-card",
      "type": "registry:component",
      "title": "Expanding Card",
      "description": "Smoothly expand a card into a detail view with multiple animation styles.",
      "tags": [
        "transition",
        "card",
        "layout",
        "expand"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/expanding-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-tab-switcher",
      "type": "registry:component",
      "title": "Tab Switcher",
      "description": "Animated tab navigation with multiple visual styles.",
      "tags": [
        "transition",
        "tabs",
        "navigation",
        "layout"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/tab-switcher.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-view-toggle",
      "type": "registry:component",
      "title": "View Toggle",
      "description": "Smoothly rearrange items with multiple animation styles when switching views.",
      "tags": [
        "transition",
        "view",
        "layout",
        "grid",
        "list"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/list-grid.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-zoom-hollow",
      "type": "registry:component",
      "title": "Zoom Hollow Text",
      "description": "A beautiful text transition that zooms in with a hollow outline effect.",
      "tags": [
        "transition",
        "text",
        "zoom",
        "hollow",
        "animation"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/zoom-hollow.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "transitions-theme-toggle-circular",
      "type": "registry:component",
      "title": "Theme Toggle Circular",
      "description": "Circular ripple animation for theme toggle using View Transitions API.",
      "tags": [
        "transition",
        "theme",
        "toggle",
        "circular",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/theme-toggle-circular.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        ":root": {
          "--transition-speed": "0.5s",
          "--transition-blur": "0px",
          "--x": "50%",
          "--y": "50%"
        },
        "::view-transition-group(root)": {
          "animation": "none",
          "isolation": "isolate",
          "overflow": "hidden"
        },
        "::view-transition-image-pair(root)": {
          "isolation": "isolate",
          "overflow": "hidden"
        },
        "::view-transition-old(root), ::view-transition-new(root)": {
          "filter": "blur(var(--transition-blur))",
          "overflow": "hidden",
          "backface-visibility": "hidden",
          "contain": "paint"
        },
        "[data-theme-transition=\"to-dark\"]::view-transition-old(root)": {
          "animation": "none",
          "z-index": "-1",
          "mix-blend-mode": "normal"
        },
        "[data-theme-transition=\"to-dark\"]::view-transition-new(root)": {
          "animation": "circle var(--transition-speed) ease-in-out",
          "will-change": "clip-path",
          "mix-blend-mode": "normal",
          "z-index": "1",
          "transform": "translateZ(0)"
        },
        "[data-theme-transition=\"to-light\"]::view-transition-old(root)": {
          "animation": "circle-reverse var(--transition-speed) ease-in-out",
          "will-change": "clip-path",
          "z-index": "1",
          "transform": "translateZ(0)"
        },
        "[data-theme-transition=\"to-light\"]::view-transition-new(root)": {
          "animation": "none",
          "mix-blend-mode": "normal",
          "z-index": "-1"
        },
        "@keyframes circle": {
          "from": {
            "clip-path": "circle(0% at var(--x) var(--y))"
          },
          "to": {
            "clip-path": "circle(150% at var(--x) var(--y))"
          }
        },
        "@keyframes circle-reverse": {
          "from": {
            "clip-path": "circle(150% at var(--x) var(--y))"
          },
          "to": {
            "clip-path": "circle(0% at var(--x) var(--y))"
          }
        },
        "@media (prefers-reduced-motion: reduce)": {
          "::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*)": {
            "animation": "none !important"
          }
        }
      }
    },
    {
      "name": "transitions-theme-toggle-slide-bottom",
      "type": "registry:component",
      "title": "Theme Toggle Slide Bottom",
      "description": "Bottom to top slide animation for theme toggle using View Transitions API.",
      "tags": [
        "transition",
        "theme",
        "toggle",
        "slide",
        "bottom",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/theme-toggle-slide-bottom.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        ":root": {
          "--transition-speed": "0.5s",
          "--transition-blur": "0px"
        },
        ".theme-slide-bottom::view-transition-old(root)": {
          "animation": "slide-out-bottom var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        ".theme-slide-bottom::view-transition-new(root)": {
          "animation": "slide-in-bottom var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        "@keyframes slide-out-bottom": {
          "to": {
            "transform": "translateY(100%)"
          }
        },
        "@keyframes slide-in-bottom": {
          "from": {
            "transform": "translateY(100%)"
          }
        },
        "@media (prefers-reduced-motion: reduce)": {
          ".theme-slide-bottom::view-transition-group(*), .theme-slide-bottom::view-transition-old(*), .theme-slide-bottom::view-transition-new(*)": {
            "animation": "none !important"
          }
        }
      }
    },
    {
      "name": "transitions-theme-toggle-slide-left",
      "type": "registry:component",
      "title": "Theme Toggle Slide Left",
      "description": "Left to right slide animation for theme toggle using View Transitions API.",
      "tags": [
        "transition",
        "theme",
        "toggle",
        "slide",
        "left",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/theme-toggle-slide-left.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        ":root": {
          "--transition-speed": "0.5s",
          "--transition-blur": "0px"
        },
        ".theme-slide-left::view-transition-old(root)": {
          "animation": "slide-out-left var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        ".theme-slide-left::view-transition-new(root)": {
          "animation": "slide-in-left var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        "@keyframes slide-out-left": {
          "to": {
            "transform": "translateX(-100%)"
          }
        },
        "@keyframes slide-in-left": {
          "from": {
            "transform": "translateX(-100%)"
          }
        },
        "@media (prefers-reduced-motion: reduce)": {
          ".theme-slide-left::view-transition-group(*), .theme-slide-left::view-transition-old(*), .theme-slide-left::view-transition-new(*)": {
            "animation": "none !important"
          }
        }
      }
    },
    {
      "name": "transitions-theme-toggle-slide-right",
      "type": "registry:component",
      "title": "Theme Toggle Slide Right",
      "description": "Right to left slide animation for theme toggle using View Transitions API.",
      "tags": [
        "transition",
        "theme",
        "toggle",
        "slide",
        "right",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/theme-toggle-slide-right.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        ":root": {
          "--transition-speed": "0.5s",
          "--transition-blur": "0px"
        },
        ".theme-slide-right::view-transition-old(root)": {
          "animation": "slide-out-right var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        ".theme-slide-right::view-transition-new(root)": {
          "animation": "slide-in-right var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        "@keyframes slide-out-right": {
          "to": {
            "transform": "translateX(100%)"
          }
        },
        "@keyframes slide-in-right": {
          "from": {
            "transform": "translateX(100%)"
          }
        },
        "@media (prefers-reduced-motion: reduce)": {
          ".theme-slide-right::view-transition-group(*), .theme-slide-right::view-transition-old(*), .theme-slide-right::view-transition-new(*)": {
            "animation": "none !important"
          }
        }
      }
    },
    {
      "name": "transitions-theme-toggle-slide-top",
      "type": "registry:component",
      "title": "Theme Toggle Slide Top",
      "description": "Top to bottom slide animation for theme toggle using View Transitions API.",
      "tags": [
        "transition",
        "theme",
        "toggle",
        "slide",
        "top",
        "view-transitions"
      ],
      "dependencies": [],
      "files": [
        {
          "path": "registry/new-york/animations/transitions/theme-toggle-slide-top.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        ":root": {
          "--transition-speed": "0.5s",
          "--transition-blur": "0px"
        },
        ".theme-slide-top::view-transition-old(root)": {
          "animation": "slide-out-top var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        ".theme-slide-top::view-transition-new(root)": {
          "animation": "slide-in-top var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1)",
          "filter": "blur(var(--transition-blur))"
        },
        "@keyframes slide-out-top": {
          "to": {
            "transform": "translateY(-100%)"
          }
        },
        "@keyframes slide-in-top": {
          "from": {
            "transform": "translateY(-100%)"
          }
        },
        "@media (prefers-reduced-motion: reduce)": {
          ".theme-slide-top::view-transition-group(*), .theme-slide-top::view-transition-old(*), .theme-slide-top::view-transition-new(*)": {
            "animation": "none !important"
          }
        }
      }
    },
    {
      "name": "text-highlight",
      "type": "registry:component",
      "title": "Text Highlight",
      "description": "A smooth, hand-drawn marker highlight animation for text.",
      "tags": [
        "text",
        "highlight",
        "marker",
        "animation"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/text-highlight.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "text-highlight-demo",
      "type": "registry:component",
      "title": "Text Highlight Demo",
      "description": "Demo for the Text Highlight component.",
      "tags": [
        "text",
        "demo"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/text/text-highlight-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-swipeable-stack",
      "type": "registry:component",
      "title": "Swipeable Stack",
      "description": "A deck of interactive cards with swipe gestures",
      "tags": [
        "specials",
        "stack",
        "cards",
        "swipe",
        "animation"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/swipeable-stack.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-swipeable-stack-demo",
      "type": "registry:component",
      "title": "Swipeable Stack Demo",
      "description": "Demo for the Swipeable Stack component",
      "tags": [
        "specials",
        "demo"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/swipeable-stack-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-magnetic-drawer",
      "type": "registry:component",
      "title": "Magnetic Drawer",
      "description": "A physics-based drawer with magnetic snap points",
      "tags": [
        "specials",
        "drawer",
        "modal",
        "physics",
        "animation"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/magnetic-drawer.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-magnetic-drawer-demo",
      "type": "registry:component",
      "title": "Magnetic Drawer Demo",
      "description": "Demo for the Magnetic Drawer component",
      "tags": [
        "specials",
        "demo"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/magnetic-drawer-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-spotlight-card",
      "type": "registry:component",
      "title": "Spotlight Card",
      "description": "Interactive card with mouse-tracking spotlight effect",
      "tags": [
        "specials",
        "card",
        "spotlight",
        "hover",
        "animation"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/spotlight-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-spotlight-card-demo",
      "type": "registry:component",
      "title": "Spotlight Card Demo",
      "description": "Demo for the Spotlight Card component",
      "tags": [
        "specials",
        "demo"
      ],
      "dependencies": [
        "motion",
        "lucide-react"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/spotlight-card-demo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "image-text",
      "type": "registry:component",
      "title": "Image Text",
      "description": "Text with a dynamic, animated image mask background.",
      "tags": [
        "specials",
        "text",
        "image",
        "mask",
        "animation"
      ],
      "dependencies": [
        "motion"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/image-text.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "specials-linear-carousel",
      "type": "registry:component",
      "title": "Linear Carousel",
      "description": "A stunning, smooth-scrolling 3D carousel inspired by Linear.",
      "tags": [
        "specials",
        "carousel",
        "animation",
        "linear"
      ],
      "dependencies": [
        "motion",
        "lucide-react",
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/new-york/animations/specials/linear-carousel.tsx",
          "type": "registry:component"
        }
      ]
    }
  ]
}