Spinning testimonials
100xui/spinning-testimonialsFreeBlock
A sleek, reusable testimonial carousel that smoothly spins through any number of testimonials. Designed to be fully responsive, it automatically converts its direct children into carousel slides, making it perfect for highlighting customer feedback in a compact, eye-catching way.
Live preview
live · rendered by the registry
Rendered by 100xui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://100xui.com/r/spinning-testimonials.jsonSource
1import { cn } from "@/lib/utils";2import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar";34const TestimonialCard = ({5 className,6 ...rest7}: React.ComponentProps<"div">) => (8 <div9 className={cn(10 "bg-card text-card-foreground border-border/50 flex flex-col justify-between gap-10 rounded-4xl border px-5 py-4 shadow-md lg:px-7 lg:py-6",11 className12 )}13 {...rest}14 />15);1617const TestimonialContent = ({18 className,19 ...rest20}: React.ComponentProps<"div">) => (21 <div className={cn("text-lg font-medium lg:text-2xl", className)} {...rest} />22);2324const TestimonialAuthor = ({25 className,26 ...rest27}: React.ComponentProps<"div">) => (28 <div29 className={cn(30 "grid grid-cols-[auto_1fr] grid-rows-[auto_auto] gap-x-3 lg:gap-x-4",31 className32 )}33 {...rest}34 />35);3637const TestimonialAvatar = ({38 className,39 ...rest40}: React.ComponentProps<typeof Avatar>) => (41 <Avatar42 className={cn("col-start-1 row-span-2 row-start-1 my-auto", className)}43 {...rest}44 />45);4647const TestimonialAvatarImage = (48 props: React.ComponentProps<typeof AvatarImage>49) => <AvatarImage {...props} />;5051const TestimonialAvatarFallback = (52 props: React.ComponentProps<typeof AvatarFallback>53) => <AvatarFallback {...props} />;5455const TestimonialName = ({56 className,57 ...rest58}: React.ComponentProps<"div">) => (59 <div60 className={cn(61 "col-start-2 row-start-1 text-sm font-medium lg:text-base",62 className63 )}64 {...rest}65 />66);6768const TestimonialPosition = ({69 className,70 ...rest71}: React.ComponentProps<"div">) => (72 <div73 className={cn(74 "text-muted-foreground col-start-2 row-start-2 text-xs lg:text-sm",75 className76 )}77 {...rest}78 />79);8081export {82 TestimonialCard,83 TestimonialContent,84 TestimonialAuthor,85 TestimonialAvatar,86 TestimonialName,87 TestimonialPosition,88 TestimonialAvatarFallback,89 TestimonialAvatarImage,90};
What it pulls in
npm packages
Other registry items
Files it writes
More from 100xui
All 14 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Apple galleryapple-gallery | 100xui | Blocks | Free | 1 dep | |
| Chat bento cardchat-bento-card | 100xui | Blocks | Free | 1 dep | |
| demosdemos | 100xui | Blocks | Free | no deps · 12 files | |
| In-page navbarin-page-navbar | 100xui | Blocks | Free | 1 dep · 2 files | |
| internalsinternals | 100xui | Blocks | Free | no deps · 4 files | |
| iPhone 3D mockupiphone-3d-mockup | 100xui | Blocks | Free | no deps | |
| Menu wheelmenu-wheel | 100xui | Blocks | Free | 1 dep | |
| Morph modalmorph-modal | 100xui | Blocks | Free | 1 dep |
