Installation
npm install @selemondev/vue3-marqueeA beautiful marquee component for Vue 3 with TypeScript support, smooth animations, and full customization.




npm install @selemondev/vue3-marqueeimport { Marquee } from "@selemondev/vue3-marquee";
import "@selemondev/vue3-marquee/style.css"
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App);
app.component('Marquee', Marquee)
app.mount('#app')import { Marquee } from "@selemondev/vue3-marquee";
import "@selemondev/vue3-marquee/style.css"If you are using Nuxt 3, you can register it as a Nuxt plugin as shown below:
// ~/plugins/marquee.ts
import { Marquee } from "@selemondev/vue3-marquee";
import "@selemondev/vue3-marquee/style.css"
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component('Marquee', Marquee)
})

<Marquee :fade="true">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>

<Marquee :reverse="true" :fade="true">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>

<Marquee :pauseOnHover="true" :fade="true">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>

<Marquee class="h-100" direction="up" :fade="true">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>

<Marquee class="gap-12 [--duration:5s] [--gap:3rem]" innerClassName="gap-[3rem]" :fade="true">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>Disable animation when the user's device prefers reduced motion for improved accessibility.


<Marquee class="py-4 motion-reduce:overflow-auto" innerClassName="motion-reduce:animate-none motion-reduce:first:hidden">
<div>Content 1</div>
<div>Content 2</div>
<div>Content 3</div>
</Marquee>