{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "motion-primitives-vue", "homepage": "https://vue.motion-primitives.com", "items": [ { "name": "accordion", "type": "registry:ui", "title": "Accordion", "description": "A collapsible content component with smooth animations for showing and hiding content.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Accordion.vue", "type": "registry:ui" }, { "path": "app/components/core/AccordionItem.vue", "type": "registry:ui" }, { "path": "app/components/core/AccordionTrigger.vue", "type": "registry:ui" }, { "path": "app/components/core/AccordionContent.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "animated-background", "type": "registry:ui", "title": "Animated Background", "description": "A component that provides animated background effects for UI elements.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/AnimatedBackground.vue", "type": "registry:ui" }, { "path": "app/components/core/AnimatedBackgroundItem.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "animated-group", "type": "registry:ui", "title": "Animated Group", "description": "A container component that applies coordinated animations to a group of child elements.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/AnimatedGroup.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "animated-number", "type": "registry:ui", "title": "Animated Number", "description": "A component that animates number changes with smooth transitions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/AnimatedNumber.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "border-trail", "type": "registry:ui", "title": "Border Trail", "description": "An effect that creates animated border trails around elements on interaction.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/BorderTrail.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "carousel", "type": "registry:ui", "title": "Carousel", "description": "A component for cycling through elements with smooth transitions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Carousel.vue", "type": "registry:ui" }, { "path": "app/components/core/CarouselContent.vue", "type": "registry:ui" }, { "path": "app/components/core/CarouselIndicator.vue", "type": "registry:ui" }, { "path": "app/components/core/CarouselItem.vue", "type": "registry:ui" }, { "path": "app/components/core/CarouselNavigation.vue", "type": "registry:ui" }, { "path": "app/components/core/composables/useCarousel.ts", "type": "registry:hook" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "cursor", "type": "registry:ui", "title": "Cursor", "description": "A custom cursor component with animated effects and interactions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Cursor.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "dialog", "type": "registry:ui", "title": "Dialog", "description": "A modal dialog component with smooth entrance and exit animations.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Dialog.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogClose.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogContent.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogDescription.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogHeader.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogTitle.vue", "type": "registry:ui" }, { "path": "app/components/core/DialogTrigger.vue", "type": "registry:ui" }, { "path": "app/components/core/composables/usePreventScroll.ts", "type": "registry:hook" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "disclosure", "type": "registry:ui", "title": "Disclosure", "description": "A component that shows and hides content with animated transitions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Disclosure.vue", "type": "registry:ui" }, { "path": "app/components/core/DisclosureContent.vue", "type": "registry:ui" }, { "path": "app/components/core/DisclosureTrigger.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "dock", "type": "registry:ui", "title": "Dock", "description": "A macOS-style dock component with scaling and movement effects.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Dock.vue", "type": "registry:ui" }, { "path": "app/components/core/DockIcon.vue", "type": "registry:ui" }, { "path": "app/components/core/DockItem.vue", "type": "registry:ui" }, { "path": "app/components/core/DockLabel.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "glow-effect", "type": "registry:ui", "title": "Glow Effect", "description": "A component that creates a glowing effect on elements based on cursor movement.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/GlowEffect.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "image-comparison", "type": "registry:ui", "title": "Image Comparison", "description": "A component for comparing two images with an interactive slider.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/ImageComparison.vue", "type": "registry:ui" }, { "path": "app/components/core/ImageComparisonImage.vue", "type": "registry:ui" }, { "path": "app/components/core/ImageComparisonSlider.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "in-view", "type": "registry:ui", "title": "In View", "description": "A component that triggers animations when elements enter the viewport.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/InView.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "infinite-slider", "type": "registry:ui", "title": "Infinite Slider", "description": "A slider component that loops infinitely through its content.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/InfiniteSlider.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "magnetic", "type": "registry:ui", "title": "Magnetic", "description": "A component that creates a magnetic attraction effect on hover.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Magnetic.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "morphing-dialog", "type": "registry:ui", "title": "Morphing Dialog", "description": "A dialog that morphs from its trigger element with smooth transitions.", "dependencies": [ "motion-v", "@vueuse/core" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/MorphingDialog.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogClose.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogContainer.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogContent.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogDescription.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogImage.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogSubtitle.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogTitle.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingDialogTrigger.vue", "type": "registry:ui" }, { "path": "app/components/core/composables/useClickOutside.ts", "type": "registry:hook" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "morphing-popover", "type": "registry:ui", "title": "Morphing Popover", "description": "A popover component that morphs from its trigger with fluid animations.", "dependencies": [ "motion-v", "@vueuse/core" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/MorphingPopover.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingPopoverContent.vue", "type": "registry:ui" }, { "path": "app/components/core/MorphingPopoverTrigger.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "progressive-blur", "type": "registry:ui", "title": "Progressive Blur", "description": "A component that applies progressive blur effects to elements.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/ProgressiveBlur.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "scroll-progress", "type": "registry:ui", "title": "Scroll Progress", "description": "A component that visualizes scroll progress with animated indicators.", "dependencies": [ "motion-v", "@vueuse/core" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/ScrollProgress.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "sliding-number", "type": "registry:ui", "title": "Sliding Number", "description": "A component that transitions between numbers with a sliding animation.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/SlidingNumber.vue", "type": "registry:ui" }, { "path": "app/components/core/SlidingNumberDigit.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "spinning-text", "type": "registry:ui", "title": "Spinning Text", "description": "A component that animates text with a spinning rotation effect.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/SpinningText.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "spotlight", "type": "registry:ui", "title": "Spotlight", "description": "A component that creates a spotlight effect following cursor movement.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Spotlight.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-effect", "type": "registry:ui", "title": "Text Effect", "description": "A component that applies animated effects to text content.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextEffect.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-loop", "type": "registry:ui", "title": "Text Loop", "description": "A component that cycles through different text phrases with animations.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextLoop.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-morph", "type": "registry:ui", "title": "Text Morph", "description": "A component that morphs between different text strings with smooth transitions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextMorph.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-roll", "type": "registry:ui", "title": "Text Roll", "description": "A component that animates text with a rolling effect.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextRoll.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-scramble", "type": "registry:ui", "title": "Text Scramble", "description": "A component that creates a scrambling text effect during transitions.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextScramble.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-shimmer", "type": "registry:ui", "title": "Text Shimmer", "description": "A component that applies a shimmering effect to text.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextShimmer.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "text-shimmer-wave", "type": "registry:ui", "title": "Text Shimmer Wave", "description": "A component that creates a wave-like shimmer effect on text.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TextShimmerWave.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "tilt", "type": "registry:ui", "title": "Tilt", "description": "A component that applies 3D tilt effects to elements based on cursor position.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/Tilt.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "toolbar-dynamic", "type": "registry:ui", "title": "Toolbar Dynamic", "description": "A toolbar component with dynamic appearance based on user interaction.", "dependencies": [ "motion-v", "@vueuse/core" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/ToolbarDynamic.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "toolbar-expandable", "type": "registry:ui", "title": "Toolbar Expandable", "description": "An expandable toolbar that reveals additional options with animations.", "dependencies": [ "motion-v", "@vueuse/core" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/ToolbarExpandable.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] }, { "name": "transition-panel", "type": "registry:ui", "title": "Transition Panel", "description": "A panel component with smooth transitions between different states.", "dependencies": [ "motion-v" ], "devDependencies": [], "registryDependencies": [], "files": [ { "path": "app/components/core/TransitionPanel.vue", "type": "registry:ui" } ], "categories": [ "ui", "motion-primitives" ] } ] }