{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "spell-ui",
  "homepage": "https://spell.sh",
  "author": "tom (https://spell.sh)",
  "items": [
    {
      "name": "chart",
      "type": "registry:component",
      "title": "Chart",
      "description": "Interactive line chart with a cursor-tracked tooltip card, snap-to-point hover, and built-in X-axis labels.",
      "files": [
        {
          "path": "registry/spell-ui/chart.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "blur-reveal",
      "type": "registry:component",
      "title": "Blur Reveal",
      "description": "Animated text reveal with blur effect.",
      "files": [
        {
          "path": "registry/spell-ui/blur-reveal.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "perspective-book",
      "type": "registry:component",
      "title": "Perspective Book",
      "description": "A 3D book component with hover animation and customizable appearance.",
      "files": [
        {
          "path": "registry/spell-ui/perspective-book.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "badge",
      "type": "registry:component",
      "title": "Badge",
      "description": "A badge component with multiple color variants and sizes.",
      "files": [
        {
          "path": "registry/spell-ui/badge.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["@radix-ui/react-slot", "class-variance-authority"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "color-selector",
      "type": "registry:component",
      "title": "Color Selector",
      "description": "Interactive color picker component.",
      "files": [
        {
          "path": "registry/spell-ui/color-selector.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "input"
    },
    {
      "name": "special-text",
      "type": "registry:component",
      "title": "Special Text",
      "description": "Animated text with scramble effect.",
      "files": [
        {
          "path": "registry/spell-ui/special-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "shimmer-text",
      "type": "registry:component",
      "title": "Shimmer Text",
      "description": "Text with animated shimmer highlight effect.",
      "files": [
        {
          "path": "registry/spell-ui/shimmer-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "highlighted-text",
      "type": "registry:component",
      "title": "Highlighted Text",
      "description": "Text with sliding background highlight animation using mix-blend-mode.",
      "files": [
        {
          "path": "registry/spell-ui/highlighted-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "rich-button",
      "type": "registry:component",
      "title": "Rich Button",
      "description": "A button component with rich styling and color variants.",
      "files": [
        {
          "path": "registry/spell-ui/rich-button.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["@radix-ui/react-slot"],
      "registryDependencies": [],
      "category": "button"
    },
    {
      "name": "kbd",
      "type": "registry:component",
      "title": "Keyboard Shortcuts",
      "description": "Display keyboard shortcuts with proper key symbols.",
      "files": [
        {
          "path": "registry/spell-ui/kbd.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["react-hotkeys-hook"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "label-input",
      "type": "registry:component",
      "title": "Label Input",
      "description": "Input field with floating label and password visibility toggle.",
      "files": [
        {
          "path": "registry/spell-ui/label-input.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["lucide-react"],
      "registryDependencies": [],
      "category": "input"
    },
    {
      "name": "spinner",
      "type": "registry:component",
      "title": "Spinner",
      "description": "A loading spinner component with customizable size and color.",
      "files": [
        {
          "path": "registry/spell-ui/spinner.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "feedback"
    },
    {
      "name": "bars-spinner",
      "type": "registry:component",
      "title": "Bars Spinner",
      "description": "A loading spinner with rotating bars animation.",
      "files": [
        {
          "path": "registry/spell-ui/bars-spinner.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "feedback"
    },
    {
      "name": "flow-button",
      "type": "registry:component",
      "title": "Flow Button",
      "description": "A button with animated flowing dashed border on hover.",
      "files": [
        {
          "path": "registry/spell-ui/flow-button.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "button"
    },
    {
      "name": "slide-up-text",
      "type": "registry:component",
      "title": "Slide Up Text",
      "description": "Text animation that slides up from bottom with stagger effect.",
      "files": [
        {
          "path": "registry/spell-ui/slide-up-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "copy-button",
      "type": "registry:component",
      "title": "Copy Button",
      "description": "A copy-to-clipboard button with blur transition effect.",
      "files": [
        {
          "path": "registry/spell-ui/copy-button.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["lucide-react"],
      "registryDependencies": [],
      "category": "button"
    },
    {
      "name": "text-marquee",
      "type": "registry:component",
      "title": "Text Marquee",
      "description": "Animated text marquee component with vertical scrolling.",
      "files": [
        {
          "path": "registry/spell-ui/text-marquee.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "words-stagger",
      "type": "registry:component",
      "title": "Words Stagger",
      "description": "Word-by-word text animation with blur, transform, and opacity effects.",
      "files": [
        {
          "path": "registry/spell-ui/words-stagger.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "tilt-card",
      "type": "registry:component",
      "title": "Tilt Card",
      "description": "Interactive 3D tilt card with perspective hover effect and spotlight.",
      "files": [
        {
          "path": "registry/spell-ui/tilt-card.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "interactive"
    },
    {
      "name": "marquee",
      "type": "registry:component",
      "title": "Marquee",
      "description": "Infinite scrolling marquee component with customizable speed and direction.",
      "files": [
        {
          "path": "registry/spell-ui/marquee.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "signature",
      "type": "registry:component",
      "title": "Signature",
      "description": "Animated signature component with handwriting effect using custom fonts.",
      "files": [
        {
          "path": "registry/spell-ui/signature.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion", "opentype.js", "@types/opentype.js"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "randomized-text",
      "type": "registry:component",
      "title": "Randomized Text",
      "description": "Text component with randomized character reveal animation.",
      "files": [
        {
          "path": "registry/spell-ui/randomized-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "pop-button",
      "type": "registry:component",
      "title": "Pop Button",
      "description": "A playful 3D-style button with push-down animation effect.",
      "files": [
        {
          "path": "registry/spell-ui/pop-button.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "button"
    },
    {
      "name": "tweet",
      "type": "registry:component",
      "title": "Tweet",
      "description": "Embed Twitter/X posts with custom styling.",
      "files": [
        {
          "path": "registry/spell-ui/tweet.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["react-tweet", "@icons-pack/react-simple-icons"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "spotify-card",
      "type": "registry:component",
      "title": "Spotify Card",
      "description": "Display Spotify tracks with album art and blurred background.",
      "files": [
        {
          "path": "registry/spell-ui/spotify-card.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["@icons-pack/react-simple-icons", "spotify-url-info"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "light-rays",
      "type": "registry:component",
      "title": "Light Rays",
      "description": "Animated light rays effect using WebGL shaders.",
      "files": [
        {
          "path": "registry/spell-ui/light-rays.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["three"],
      "registryDependencies": [],
      "category": "background"
    },
    {
      "name": "animated-gradient",
      "type": "registry:component",
      "title": "Animated Gradient",
      "description": "Animated gradient background with presets and customizable swirl effects using WebGL.",
      "files": [
        {
          "path": "registry/spell-ui/animated-gradient.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "background"
    },
    {
      "name": "animated-checkbox",
      "type": "registry:component",
      "title": "Animated Checkbox",
      "description": "Animated checkbox with spring transitions and strike-through text effect.",
      "files": [
        {
          "path": "registry/spell-ui/animated-checkbox.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["motion"],
      "registryDependencies": [],
      "category": "input"
    },
    {
      "name": "exploding-input",
      "type": "registry:component",
      "title": "Exploding Input",
      "description": "Input component that spawns particle effects when typing.",
      "files": [
        {
          "path": "registry/spell-ui/exploding-input.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "input"
    },
    {
      "name": "gradient-wave-text",
      "type": "registry:component",
      "title": "Gradient Wave Text",
      "description": "Apple-style animated gradient text with wave effect.",
      "files": [
        {
          "path": "registry/spell-ui/gradient-wave-text.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "animation"
    },
    {
      "name": "logos-carousel",
      "type": "registry:component",
      "title": "Logos Carousel",
      "description": "Animated carousel component that cycles through sets of logos with staggered animations.",
      "files": [
        {
          "path": "registry/spell-ui/logos-carousel.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "qr-code",
      "type": "registry:component",
      "title": "QR Code",
      "description": "QR code generator with rounded finder patterns and dot-style data modules.",
      "files": [
        {
          "path": "registry/spell-ui/qr-code.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": ["qrcode"],
      "registryDependencies": [],
      "category": "display"
    },
    {
      "name": "fallback-avatar",
      "type": "registry:component",
      "title": "Fallback Avatar",
      "description": "A unique gradient avatar generated from a name string.",
      "files": [
        {
          "path": "registry/spell-ui/fallback-avatar.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [],
      "registryDependencies": [],
      "category": "display"
    }
  ]
}
