- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Marquee
Vue marquee for continuously scrolling text or content, useful for tickers and highlight strips.
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/marquee.json
npx shadcn-vue@latest add https://vuzeno.com/r/marquee.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/marquee.json
pnpm dlx shadcn-vue@latest add https://vuzeno.com/r/marquee.json
Usage
<script setup lang="ts">
import { Marquee } from "@/components/ui/marquee";
</script>
<template>
<Marquee.Root>
<!-- … -->
</Marquee.Root>
</template>
Composition
Marquee.Root
├── Marquee.Edge
├── Marquee.Viewport
│ └── Marquee.Content
│ └── Marquee.Item
├── Marquee.Context
└── Marquee.RootProvider
Examples
Auto Fill
Use the autoFill prop to automatically duplicate content to fill the viewport. The spacing prop controls the gap between duplicated content instances:
Reverse
Set the reverse prop to reverse the scroll direction:
Vertical
Set side="bottom" (or side="top") to create a vertical marquee:
Speed
Control the animation speed using the speed prop, which accepts values in pixels per second:
Pause on Interaction
Enable pauseOnInteraction to pause the marquee when users hover or focus on it, improving accessibility:
Programmatic Control
Use the useMarquee hook with Marquee.RootProvider to access the marquee API and control playback programmatically:
If you're using the
Marquee.RootProvidercomponent, you don't need to use theMarquee.Rootcomponent.
Loops
Set the loopCount prop to run the marquee a specific number of times. Use onLoopComplete to track each loop iteration and onComplete to know when all loops finish:
Edges
Add Marquee.Edge components to create fade effects at the start and end of the scrolling area:
API
See Ark UI Marquee docs for full props and examples.