Avara UI

Carousel

A collection of highly interactive carousel components for image galleries, hero sections, and fluid presentations.
Four independent components live on this page — four in carousel.tsx (ImageCarousel, HeroCarousel, CustomCarousel, RadialCarousel) and the FluidGlassSlider, which installs on its own.

Carousels

RadialCarousel arranges cards in a full 360-degree 3D radial wheel radiating in all four directions around a central hub with smooth drag momentum. The hub at the exact centre is a play/pause button for autoplay (autoPlay sets whether it starts playing), and cards further from the top fade toward the page background so the wheel works in light and dark themes.

Passitems
as { title, category, rating, img }[] — cards radiate in 360 degrees around the center.
stepAngle
controls the rotation angle increment between cards (default is 360 / items.length).

Installation

New project? Follow the installation guide to set up Tailwind CSS, shadcn, the cn helper and lucide-react, register the @algorize-ui registry once, then copy your styles from the Themes page.

npx shadcn@latest add @algorize-ui/carousel

components/custom/carousel.tsx is written into your project. Copy any snippet from a Usage tab above and it runs.

Nothing beyond the shared setup — Carousel needs only the cn helper and lucide-react, which the installation guide already put in place.

All five carousels (RadialCarousel, FluidGlassSlider, ImageCarousel, HeroCarousel, CustomCarousel) ship together in a single self-contained carousel.tsx file when installing carousel. You can import components directly or pass variant="radial" | "glass" | "image" | "hero" | "thumbnails" into the default Carousel component.

Fluid glass slider

FluidGlassSlider is a liquid glass distortion slider featuring dynamic cursor tracking, glassmorphism overlays, and smooth progress tracking.

PassclassName
to customize container dimensions, borders, and shadows.

ImageCarousel handles arrows, dots, swipe and autoplay for you.

Passimages
as a flat array of URL strings or Next.js StaticImageData objects.
autoPlay
is off by default; on, it advances every autoPlayInterval ms (3000).
showArrows
and showDots are both on by default — set either to false to hide it.

HeroCarousel overlays copy on a full-bleed image — click any image card to set it as the background.

Passslides
as { img, title, des }[] — des is the supporting line under the title.

Thumbnail rail

CustomCarousel adds a clickable thumbnail strip.

imageButtonPosition"bottom"
is the default — the rail sits under the main image.
items
is the slide array this variant reads, rather than images.

Side thumbnails

Move the rail withimageButtonPosition"left"
— or "right" — for a gallery-style layout.

Features

Discover the Carousel's powerful features, including touch-swipe support, autoplay functionality, and accessible navigation controls.

Customizable

Easily adapt the component's styling and behavior to fit your application's unique design system.

Accessible

Built with accessibility in mind, ensuring all users can interact with your application effectively.

Responsive

Fully responsive design that looks and works great across desktop, tablet, and mobile devices.

Performant

Optimized for maximum performance with minimal re-renders and efficient state management.

Best Practices & Guidelines

Usage Guidelines

Follow standard design principles when implementing this component. Ensure proper contrast, spacing, and context within your layout.

Props Reference

PropTypeDefaultDescription
variant"radial" | "glass" | "image" | "hero" | "thumbnails""image"The layout variant to render.
imagesImgSrc[][]Array of image URLs or StaticImageData objects (for "image" variant).
slidesany[][]Array of slide objects (for "glass" or "hero" variants).
itemsany[][]Array of item objects (for "radial" or "thumbnails" variants).
classNamestring-Custom CSS styling classes for the outer wrapper.

RadialCarousel

PropTypeDefaultDescription
itemsRadialCarouselItem[][]Array of cards with { title, category, rating, price?, img } radiating in 360 degrees.
autoPlaybooleanfalseIf true, continuously rotates the 3D wheel.
autoPlayIntervalnumber3500Interval (in ms) between auto rotations.
stepAnglenumber360 / items.lengthRotation angle step per card in degrees.
classNamestring-Outer container styling.

FluidGlassSlider

PropTypeDefaultDescription
slidesFluidGlassSlide[]DEFAULT_SLIDESArray of glass slides with { id, image, title, subtitle }.
classNamestring-Container dimensions, borders, and shadows.

ImageCarousel

PropTypeDefaultDescription
imagesImgSrc[][]Array of string URLs or Next.js StaticImageData objects.
autoPlaybooleanfalseIf true, automatically cycles through images.
autoPlayIntervalnumber3000Time (in ms) before automatically switching slides.
showArrowsbooleantrueWhether to show previous/next navigation buttons.
showDotsbooleantrueWhether to show bottom navigation dot indicators.
transitionDurationnumber500Transition animation duration in milliseconds.
imageWidthnumber1200Default image width in pixels.
imageHeightnumber540Default image height in pixels.

HeroCarousel

PropTypeDefaultDescription
slidesHeroSlide[][]Array of full-bleed hero slides with { img, title, des }.
autoPlaybooleanfalseIf true, auto-advances the background hero slides.
autoPlayIntervalnumber3000Time (in ms) before advancing to the next hero slide.

CustomCarousel (Thumbnails)

PropTypeDefaultDescription
itemsCustomItem[][]Array of thumbnail slides with { img, title, des }.
imageButtonPosition"bottom" | "left" | "right""bottom"Placement of the thumbnail selector strip.
autoPlaybooleanfalseIf true, auto-advances through thumbnail items.
autoPlayIntervalnumber3000Time (in ms) between slide changes.