āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/nolly-studio/cult-ui/components/loading-carousel ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
<ComponentPreview name="loading-carousel-demo" className="[&_.preview>[data-orientation=vertical]]:sm:max-w-[70%]" />
npx shadcn@latest add https://cult-ui.com/r/loading-carousel.json
</TabsContent>
<TabsContent value="manual">
<Steps>
<Step>Install the required dependencies:</Step>
npm install embla-carousel-autoplay framer-motion lucide-react
<Step>Install the carousel component:</Step>
npx shadcn@latest add carousel
<Step>Copy and paste the following code into your project.</Step>
<ComponentSource name="loading-carousel" /><Step>Update the import paths to match your project setup.</Step>
</Steps> </TabsContent> </CodeTabs>export default function LoadingCarouselDemo() {
return <LoadingCarousel />
}
| Prop | Type | Default | Description |
| ------------------ | ------------------------------- | ------------- | ---------------------------------------- |
| tips | Tip[] | defaultTips | Array of tips to display in the carousel |
| autoplayInterval | number | 4000 | Time in milliseconds between slides |
| showNavigation | boolean | false | Show previous/next navigation buttons |
| showIndicators | boolean | true | Show slide indicator dots |
| showProgress | boolean | true | Show progress bar for current slide |
| aspectRatio | "video" \| "square" \| "wide" | "video" | Aspect ratio of the carousel |
| textPosition | "top" \| "bottom" | "bottom" | Position of the tip text |
| onTipChange | (index: number) => void | - | Callback function when tip changes |
| backgroundTips | boolean | false | Show tips on the image background |
| backgroundGradient | boolean | false | Show gradient overlay on background |
| shuffleTips | boolean | false | Randomly shuffle the order of tips |
<LoadingCarousel />
<LoadingCarousel autoplayInterval={2000} showNavigation={true} />
<LoadingCarousel
aspectRatio="square"
backgroundTips={true}
backgroundGradient={true}
/>
<LoadingCarousel aspectRatio="wide" textPosition="top" showIndicators={false} />
<LoadingCarousel
shuffleTips={true}
autoplayInterval={3000}
showProgress={false}
/>
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā