{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "mewo",
  "homepage": "https://www.mewo-ui.com",
  "items": [
    {
      "name": "text-shimmer",
      "type": "registry:ui",
      "title": "Text Shimmer",
      "description": "A light sweep that moves across text. CSS only — no dependencies.",
      "categories": ["text"],
      "files": [{ "path": "registry/mewo/ui/text-shimmer.tsx", "type": "registry:ui" }],
      "css": {
        "@keyframes mewo-shimmer": {
          "from": { "background-position": "200% center" },
          "to": { "background-position": "0% center" }
        }
      }
    },
    {
      "name": "marquee",
      "type": "registry:ui",
      "title": "Marquee",
      "description": "An infinite horizontal scroller with a seamless loop. CSS only — no dependencies.",
      "categories": ["layout"],
      "files": [{ "path": "registry/mewo/ui/marquee.tsx", "type": "registry:ui" }],
      "css": {
        "@keyframes mewo-marquee": {
          "from": { "transform": "translateX(0)" },
          "to": { "transform": "translateX(-100%)" }
        }
      }
    },
    {
      "name": "split-text",
      "type": "registry:ui",
      "title": "Split Text",
      "description": "Characters or words stagger into view when scrolled to. Powered by GSAP and ScrollTrigger.",
      "categories": ["text"],
      "dependencies": ["gsap", "@gsap/react"],
      "files": [{ "path": "registry/mewo/ui/split-text.tsx", "type": "registry:ui" }]
    },
    {
      "name": "spotlight-card",
      "type": "registry:ui",
      "title": "Spotlight Card",
      "description": "A card with a radial glow that follows the pointer. Powered by Motion.",
      "categories": ["card"],
      "dependencies": ["motion"],
      "files": [{ "path": "registry/mewo/ui/spotlight-card.tsx", "type": "registry:ui" }]
    },
    {
      "name": "gradient-carousel",
      "type": "registry:ui",
      "title": "Gradient Carousel",
      "description": "A looping 3D card carousel you turn by wheel, drag or arrow keys, over a blurred gradient drawn in the colours of the centre image. No dependencies.",
      "categories": ["card"],
      "files": [{ "path": "registry/mewo/ui/gradient-carousel.tsx", "type": "registry:ui" }]
    },
    {
      "name": "scroll-reveal",
      "type": "registry:ui",
      "title": "Scroll Reveal",
      "description": "Fades and slides its children in when they enter the viewport. Powered by Motion.",
      "categories": ["scroll"],
      "dependencies": ["motion"],
      "files": [{ "path": "registry/mewo/ui/scroll-reveal.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"scroll-reveal\"]": {
            "opacity": "1 !important",
            "transform": "none !important"
          }
        }
      }
    },
    {
      "name": "scroll-portal",
      "type": "registry:ui",
      "title": "Scroll Portal",
      "description": "Scroll flies the camera through nested frames, each opening onto the next scene. No dependencies.",
      "categories": ["scroll"],
      "files": [{ "path": "registry/mewo/ui/scroll-portal.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"scroll-portal\"]": {
            "height": "auto !important"
          },
          "[data-slot=\"scroll-portal-stage\"]": {
            "position": "static !important",
            "height": "auto !important",
            "overflow": "visible !important"
          },
          "[data-slot=\"scroll-portal-frame\"]": {
            "position": "relative !important",
            "height": "100vh !important",
            "transform": "none !important"
          }
        }
      }
    },
    {
      "name": "tile-reveal",
      "type": "registry:ui",
      "title": "Tile Reveal",
      "description": "A pinned image grid whose tiles fly in column by column on scroll, then zoom past the edges to reveal a headline and call to action. No dependencies.",
      "categories": ["scroll"],
      "files": [{ "path": "registry/mewo/ui/tile-reveal.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"tile-reveal\"]": {
            "height": "100vh !important"
          },
          "[data-slot=\"tile-reveal-content\"]": {
            "opacity": "1 !important",
            "visibility": "visible !important"
          }
        }
      }
    },
    {
      "name": "scroll-mask",
      "type": "registry:ui",
      "title": "Scroll Mask",
      "description": "Scroll opens a mask that reveals an image six ways: iris, wipe, curtain, slats, grid or a word. No dependencies.",
      "categories": ["scroll"],
      "files": [{ "path": "registry/mewo/ui/scroll-mask.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"scroll-mask\"]": {
            "height": "100vh !important"
          },
          "[data-slot=\"scroll-mask-layer\"]": {
            "-webkit-mask-image": "none !important",
            "mask-image": "none !important"
          },
          "[data-slot=\"scroll-mask-piece\"]": {
            "opacity": "1 !important",
            "transform": "none !important"
          },
          "[data-slot=\"scroll-mask-content\"]": {
            "opacity": "1 !important"
          }
        }
      }
    },
    {
      "name": "text-scroll-highlight",
      "type": "registry:ui",
      "title": "Text Scroll Highlight",
      "description": "Text whose words light up one by one with the scroll, either as it moves up the screen or pinned in place like a subtitle. No dependencies.",
      "categories": ["scroll"],
      "files": [{ "path": "registry/mewo/ui/text-scroll-highlight.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"text-scroll-highlight-word\"]": {
            "opacity": "1 !important"
          },
          "[data-slot=\"text-scroll-highlight-pin\"]": {
            "height": "auto !important"
          },
          "[data-slot=\"text-scroll-highlight-stage\"]": {
            "position": "static !important",
            "height": "auto !important"
          }
        }
      }
    },
    {
      "name": "aurora-background",
      "type": "registry:ui",
      "title": "Aurora Background",
      "description": "A slowly drifting gradient backdrop with a fade-in for its content. CSS keyframes plus Motion.",
      "categories": ["background"],
      "dependencies": ["motion"],
      "files": [{ "path": "registry/mewo/ui/aurora-background.tsx", "type": "registry:ui" }],
      "css": {
        "@keyframes mewo-aurora": {
          "from": { "background-position": "0% 50%" },
          "to": { "background-position": "300% 50%" }
        },
        "@media (scripting: none)": {
          "[data-slot=\"aurora-content\"]": {
            "opacity": "1 !important",
            "transform": "none !important"
          }
        }
      }
    },
    {
      "name": "hero-aurora",
      "type": "registry:block",
      "title": "Hero — Aurora",
      "description": "A hero section: aurora backdrop, word-by-word headline, description and two call-to-action buttons.",
      "categories": ["sections", "hero"],
      "registryDependencies": ["button", "@mewo/aurora-background", "@mewo/split-text"],
      "files": [{ "path": "registry/mewo/blocks/hero-aurora.tsx", "type": "registry:component" }]
    },
    {
      "name": "features-spotlight",
      "type": "registry:block",
      "title": "Features — Spotlight",
      "description": "A features section: shimmering eyebrow, heading, a scroll-revealed grid of spotlight cards and a logo marquee.",
      "categories": ["sections", "features"],
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@mewo/text-shimmer", "@mewo/scroll-reveal", "@mewo/spotlight-card", "@mewo/marquee"],
      "files": [{ "path": "registry/mewo/blocks/features-spotlight.tsx", "type": "registry:component" }]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Drop-in replacement for shadcn's tabs. Adds an indicator that slides between tabs instead of jumping. Same exports, same props.",
      "categories": ["primitives"],
      "dependencies": ["motion", "@base-ui/react", "class-variance-authority"],
      "files": [{ "path": "registry/mewo/ui/tabs.tsx", "type": "registry:ui" }]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "Drop-in replacement for shadcn's collapsible, which ships with no animation at all. Adds eased height and a content fade. Same exports, same props.",
      "categories": ["primitives"],
      "dependencies": ["motion", "@base-ui/react"],
      "files": [{ "path": "registry/mewo/ui/collapsible.tsx", "type": "registry:ui" }],
      "css": {
        "@media (scripting: none)": {
          "[data-slot=\"collapsible-content-fade\"]": {
            "opacity": "1 !important"
          }
        }
      }
    }
  ]
}
