Skip to Content
Prisma UI - React component library
ComponentsComponentsInfinite Slider

Infinite Slider

An infinite scrolling slider that smoothly loops through its children. Inspired by Motion Primitives’ Infinite Slider . Supports horizontal and vertical directions with customizable speed.

Installation

npx shadcn@latest add https://prismaui.com/components/infinite-slider.json

Import

import { InfiniteSlider } from '@/components/ui/infinite-slider';

Preview

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 1Slide 2Slide 3Slide 4Slide 5
<InfiniteSlider gap={24} speed={80}> <Image src='https://picsum.photos/120/80' alt='Slide 1' width={120} height={80} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/122/82' alt='Slide 2' width={122} height={82} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/124/80' alt='Slide 3' width={124} height={80} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/120/84' alt='Slide 4' width={120} height={84} className='h-20 w-30 rounded-lg object-cover' /> </InfiniteSlider>

Reverse Direction

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 1Slide 2Slide 3Slide 4Slide 5
<InfiniteSlider reverse> <Image src='https://picsum.photos/120/80' alt='Slide 1' width={120} height={80} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/122/82' alt='Slide 2' width={122} height={82} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/124/80' alt='Slide 3' width={124} height={80} className='h-20 w-30 rounded-lg object-cover' /> </InfiniteSlider>

Speed on Hover

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 1Slide 2Slide 3Slide 4Slide 5
<InfiniteSlider speed={100} speedOnHover={30}> <Image src='https://picsum.photos/120/80' alt='Slide 1' width={120} height={80} className='h-20 w-30 rounded-lg object-cover' /> <Image src='https://picsum.photos/122/82' alt='Slide 2' width={122} height={82} className='h-20 w-30 rounded-lg object-cover' /> </InfiniteSlider>

Vertical

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 1Slide 2Slide 3Slide 4Slide 5
<InfiniteSlider direction='vertical' className='h-64'> <Image src='https://picsum.photos/80/120' alt='Slide 1' width={80} height={120} className='h-20 w-40 rounded-lg object-cover' /> <Image src='https://picsum.photos/82/122' alt='Slide 2' width={82} height={122} className='h-20 w-40 rounded-lg object-cover' /> <Image src='https://picsum.photos/80/124' alt='Slide 3' width={80} height={124} className='h-20 w-40 rounded-lg object-cover' /> </InfiniteSlider>

Props

PropTypeDefaultDescription
childrenReact.ReactNodeSlider content.
gapnumber16Gap between items in pixels.
speednumber100Speed in pixels per second.
speedOnHovernumberSpeed when hovered.
direction'horizontal' | 'vertical''horizontal'Scroll direction.
reversebooleanfalseReverse direction.
classNamestringAdditional CSS classes.
Last updated on