{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "messy-ui", "homepage": "https://messyui.dev", "items": [ { "name": "animated-counter", "type": "registry:component", "title": "Animated Counter", "description": "A number counter with odometer-style digit rotation animation using GSAP. Perfect for statistics, metrics, and dashboard displays.", "dependencies": ["gsap"], "files": [ { "path": "registry/new-york/animated-counter/animated-counter.tsx", "type": "registry:component" } ] }, { "name": "animated-menu", "type": "registry:component", "title": "Animated Menu", "description": "A slide-out navigation menu with staggered link entrances, a curved accent panel, and motion-driven transitions.", "dependencies": ["motion"], "files": [ { "path": "registry/new-york/animated-menu/animated-menu.tsx", "type": "registry:component" }, { "path": "registry/new-york/animated-menu/menu-box.tsx", "type": "registry:component" }, { "path": "registry/new-york/animated-menu/link.tsx", "type": "registry:component" }, { "path": "registry/new-york/animated-menu/curve.tsx", "type": "registry:component" } ] }, { "name": "hold-button", "type": "registry:component", "title": "Hold Button", "description": "A confirmation button that fills up while being held, perfect for destructive or irreversible actions.", "dependencies": ["clsx", "tailwind-merge"], "files": [ { "path": "registry/new-york/hold-button/hold-button.tsx", "type": "registry:component" }, { "path": "registry/new-york/hold-button/utils.ts", "type": "registry:lib" } ], "css": { "@keyframes shimmer": { "0%": { "background-position": "200% 0" }, "100%": { "background-position": "-200% 0" } }, ".animate-shimmer": { "animation": "shimmer 1s infinite linear", "background-size": "200% 100%" } } }, { "name": "theme-toggle", "type": "registry:component", "title": "Theme Toggle", "description": "A theme toggle button with clip-path view transition animation for smooth dark/light mode switching.", "dependencies": ["next-themes", "clsx", "tailwind-merge"], "files": [ { "path": "registry/new-york/theme-toggle/theme-toggle.tsx", "type": "registry:component" }, { "path": "registry/new-york/theme-toggle/theme-toggle.css", "type": "registry:style" }, { "path": "registry/new-york/theme-toggle/utils.ts", "type": "registry:lib" } ], "css": { "::view-transition-old(root), ::view-transition-new(root)": { "animation": "none", "mix-blend-mode": "normal" } } }, { "name": "cta-button", "type": "registry:component", "title": "CTA Button", "description": "An animated call-to-action button with a traveling arrow and expanding background effect. Uses mix-blend-mode for automatic light/dark theme support.", "dependencies": ["motion", "lucide-react", "clsx", "tailwind-merge"], "files": [ { "path": "registry/new-york/cta-button/cta-button.tsx", "type": "registry:component" }, { "path": "registry/new-york/cta-button/utils.ts", "type": "registry:lib" } ] }, { "name": "separator", "type": "registry:component", "title": "Separator", "description": "An interactive separator with a wobbling string animation. The line bends toward the mouse cursor and oscillates with a satisfying spring effect when released.", "dependencies": ["gsap"], "files": [ { "path": "registry/new-york/separator/separator.tsx", "type": "registry:component" } ] }, { "name": "tabs", "type": "registry:component", "title": "Tabs", "description": "Shadcn-compatible tabs component with smooth animations and context awareness, built on Base UI.", "dependencies": ["@base-ui/react"], "files": [ { "path": "registry/new-york/tabs/tabs.tsx", "type": "registry:component" } ] }, { "name": "bloom-color-picker", "type": "registry:component", "title": "Bloom Color Picker", "description": "A beautiful flower-petal color picker with radial hue selection, saturation and brightness arcs.", "dependencies": ["motion"], "files": [ { "path": "registry/new-york/bloom-color-picker/bloom-color-picker.tsx", "type": "registry:component" } ] } ] }