Infinite Card Marquee
A component for displaying cards in a continuous scrolling carousel. Powers the testimonial-row-01 block at /blocks/testimonial-row-01.
Our team specializes in building responsive and accessible web applications using the latest technologies.
We create native-like mobile experiences that work seamlessly across both iOS and Android platforms.
Our backend services are built to scale, with robust APIs and efficient database designs.
We implement automated testing and deployment pipelines to ensure consistent and reliable software delivery.
Our design team creates intuitive and visually appealing interfaces with a focus on user experience.
Our team specializes in building responsive and accessible web applications using the latest technologies.
We create native-like mobile experiences that work seamlessly across both iOS and Android platforms.
Our backend services are built to scale, with robust APIs and efficient database designs.
We implement automated testing and deployment pipelines to ensure consistent and reliable software delivery.
Our design team creates intuitive and visually appealing interfaces with a focus on user experience.
1"use client";23import { Badge } from "@/components/ui/badge";4import { CardItem, InfiniteCardMarquee } from "@/registry/ui";56export const horizontalCards: CardItem[] = [7 {8 id: 1,9 title: "Web Development",10 description: "Modern frontend solutions",11 content: (12 <div className="p-2">13 <p className="text-sm">14 Our team specializes in building responsive and accessible web15 applications using the latest technologies.16 </p>17 </div>18 ),19 footer: (20 <div className="flex w-full justify-between">21 <Badge variant="outline">React</Badge>22 <Badge variant="outline">Next.js</Badge>23 </div>24 ),25 },26 {27 id: 2,28 title: "Mobile Apps",29 description: "Cross-platform development",30 content: (31 <div className="p-2">32 <p className="text-sm">33 We create native-like mobile experiences that work seamlessly across34 both iOS and Android platforms.35 </p>36 </div>37 ),38 footer: (39 <div className="flex w-full justify-between">40 <Badge variant="outline">React Native</Badge>41 <Badge variant="outline">Flutter</Badge>42 </div>43 ),44 },45 {46 id: 3,47 title: "Backend Services",48 description: "Scalable API solutions",49 content: (50 <div className="p-2">51 <p className="text-sm">52 Our backend services are built to scale, with robust APIs and53 efficient database designs.54 </p>55 </div>56 ),57 footer: (58 <div className="flex w-full justify-between">59 <Badge variant="outline">Node.js</Badge>60 <Badge variant="outline">Python</Badge>61 </div>62 ),63 },64 {65 id: 4,66 title: "DevOps",67 description: "CI/CD and deployment",68 content: (69 <div className="p-2">70 <p className="text-sm">71 We implement automated testing and deployment pipelines to ensure72 consistent and reliable software delivery.73 </p>74 </div>75 ),76 footer: (77 <div className="flex w-full justify-between">78 <Badge variant="outline">Docker</Badge>79 <Badge variant="outline">Kubernetes</Badge>80 </div>81 ),82 },83 {84 id: 5,85 title: "UI/UX Design",86 description: "User-centered interfaces",87 content: (88 <div className="p-2">89 <p className="text-sm">90 Our design team creates intuitive and visually appealing interfaces91 with a focus on user experience.92 </p>93 </div>94 ),95 footer: (96 <div className="flex w-full justify-between">97 <Badge variant="outline">Figma</Badge>98 <Badge variant="outline">Adobe XD</Badge>99 </div>100 ),101 },102];103104export function InfiniteCardMarqueeHorizontalExample() {105 return (106 <InfiniteCardMarquee107 cards={horizontalCards}108 axis="horizontal"109 speed="normal"110 cardWidth={300}111 gap={16}112 className="flex h-[400px] items-center"113 />114 );115}
Our team specializes in building responsive and accessible web applications using the latest technologies.
We create native-like mobile experiences that work seamlessly across both iOS and Android platforms.
Our backend services are built to scale, with robust APIs and efficient database designs.
We implement automated testing and deployment pipelines to ensure consistent and reliable software delivery.
Our team specializes in building responsive and accessible web applications using the latest technologies.
We create native-like mobile experiences that work seamlessly across both iOS and Android platforms.
Our backend services are built to scale, with robust APIs and efficient database designs.
We implement automated testing and deployment pipelines to ensure consistent and reliable software delivery.
1"use client";23import { Badge } from "@/components/ui/badge";4import { CardItem, InfiniteCardMarquee } from "@/registry/ui";56export const verticalCards: CardItem[] = [7 {8 id: 1,9 title: "Web Development",10 description: "Modern frontend solutions",11 content: (12 <div className="p-2">13 <p className="text-sm">14 Our team specializes in building responsive and accessible web15 applications using the latest technologies.16 </p>17 </div>18 ),19 footer: (20 <div className="flex w-full justify-between">21 <Badge variant="outline">React</Badge>22 <Badge variant="outline">Next.js</Badge>23 </div>24 ),25 },26 {27 id: 2,28 title: "Mobile Apps",29 description: "Cross-platform development",30 content: (31 <div className="p-2">32 <p className="text-sm">33 We create native-like mobile experiences that work seamlessly across34 both iOS and Android platforms.35 </p>36 </div>37 ),38 footer: (39 <div className="flex w-full justify-between">40 <Badge variant="outline">React Native</Badge>41 <Badge variant="outline">Flutter</Badge>42 </div>43 ),44 },45 {46 id: 3,47 title: "Backend Services",48 description: "Scalable API solutions",49 content: (50 <div className="p-2">51 <p className="text-sm">52 Our backend services are built to scale, with robust APIs and53 efficient database designs.54 </p>55 </div>56 ),57 footer: (58 <div className="flex w-full justify-between">59 <Badge variant="outline">Node.js</Badge>60 <Badge variant="outline">Python</Badge>61 </div>62 ),63 },64 {65 id: 4,66 title: "DevOps",67 description: "CI/CD and deployment",68 content: (69 <div className="p-2">70 <p className="text-sm">71 We implement automated testing and deployment pipelines to ensure72 consistent and reliable software delivery.73 </p>74 </div>75 ),76 footer: (77 <div className="flex w-full justify-between">78 <Badge variant="outline">Docker</Badge>79 <Badge variant="outline">Kubernetes</Badge>80 </div>81 ),82 },83 {84 id: 5,85 title: "UI/UX Design",86 description: "User-centered interfaces",87 content: (88 <div className="p-2">89 <p className="text-sm">90 Our design team creates intuitive and visually appealing interfaces91 with a focus on user experience.92 </p>93 </div>94 ),95 footer: (96 <div className="flex w-full justify-between">97 <Badge variant="outline">Figma</Badge>98 <Badge variant="outline">Adobe XD</Badge>99 </div>100 ),101 },102];103104export function InfiniteCardMarqueeVerticalExample() {105 return (106 <div className="mx-auto w-full max-w-xs">107 <InfiniteCardMarquee108 cards={verticalCards.slice(0, 4)}109 axis="vertical"110 speed="fast"111 cardWidth={280}112 cardHeight={260}113 gap={12}114 className="h-[400px]"115 viewportClassName="h-full"116 />117 </div>118 );119}
"The team at Tibbs Tech delivered beyond our expectations. Their attention to detail and commitment to quality is unmatched in the industry."
John Doe
CTO, TechCorp
"Tibbs Tech provided innovative solutions that helped us stay ahead of our competition. Their strategic approach to problem-solving is refreshing."
Jane Smith
CEO, InnovateTech
"The support team at Tibbs Tech is always available and quick to respond. They've saved us from critical situations multiple times."
Robert Johnson
IT Director, Enterprise Co.
"The team at Tibbs Tech delivered beyond our expectations. Their attention to detail and commitment to quality is unmatched in the industry."
John Doe
CTO, TechCorp
"Tibbs Tech provided innovative solutions that helped us stay ahead of our competition. Their strategic approach to problem-solving is refreshing."
Jane Smith
CEO, InnovateTech
"The support team at Tibbs Tech is always available and quick to respond. They've saved us from critical situations multiple times."
Robert Johnson
IT Director, Enterprise Co.
"Tibbs Tech provided innovative solutions that helped us stay ahead of our competition. Their strategic approach to problem-solving is refreshing."
Jane Smith
CEO, InnovateTech
"The support team at Tibbs Tech is always available and quick to respond. They've saved us from critical situations multiple times."
Robert Johnson
IT Director, Enterprise Co.
"The team at Tibbs Tech delivered beyond our expectations. Their attention to detail and commitment to quality is unmatched in the industry."
John Doe
CTO, TechCorp
"Tibbs Tech provided innovative solutions that helped us stay ahead of our competition. Their strategic approach to problem-solving is refreshing."
Jane Smith
CEO, InnovateTech
"The support team at Tibbs Tech is always available and quick to respond. They've saved us from critical situations multiple times."
Robert Johnson
IT Director, Enterprise Co.
"The team at Tibbs Tech delivered beyond our expectations. Their attention to detail and commitment to quality is unmatched in the industry."
John Doe
CTO, TechCorp
1"use client";23import { Badge } from "@/components/ui/badge";4import { CardItem, InfiniteCardMarquee } from "@/registry/ui";56export const rowsCards: CardItem[] = [7 {8 id: 1,9 title: "Exceptional Quality",10 description: "Tibbs Tech transformed our business operations.",11 content: (12 <div className="space-y-2 p-2">13 <p className="text-sm">14 "The team at Tibbs Tech delivered beyond our expectations. Their15 attention to detail and commitment to quality is unmatched in the16 industry."17 </p>18 <div className="flex items-center gap-2 pt-2">19 <div className="flex h-8 w-8 items-center justify-center rounded-full bg-primary/20 font-semibold text-primary">20 JD21 </div>22 <div>23 <p className="text-sm font-medium">John Doe</p>24 <p className="text-xs text-muted-foreground">CTO, TechCorp</p>25 </div>26 </div>27 </div>28 ),29 footer: (30 <div className="flex w-full justify-between">31 <Badge variant="outline">Software Development</Badge>32 <span className="text-xs text-muted-foreground">⭐⭐⭐⭐⭐</span>33 </div>34 ),35 },36 {37 id: 2,38 title: "Innovative Solutions",39 description: "Cutting-edge technology implementation",40 content: (41 <div className="space-y-2 p-2">42 <p className="text-sm">43 "Tibbs Tech provided innovative solutions that helped us stay44 ahead of our competition. Their strategic approach to problem-solving45 is refreshing."46 </p>47 <div className="flex items-center gap-2 pt-2">48 <div className="flex h-8 w-8 items-center justify-center rounded-full bg-primary/20 font-semibold text-primary">49 JS50 </div>51 <div>52 <p className="text-sm font-medium">Jane Smith</p>53 <p className="text-xs text-muted-foreground">CEO, InnovateTech</p>54 </div>55 </div>56 </div>57 ),58 footer: (59 <div className="flex w-full justify-between">60 <Badge variant="outline">AI Integration</Badge>61 <span className="text-xs text-muted-foreground">⭐⭐⭐⭐⭐</span>62 </div>63 ),64 },65 {66 id: 3,67 title: "Reliable Support",68 description: "24/7 customer assistance",69 content: (70 <div className="space-y-2 p-2">71 <p className="text-sm">72 "The support team at Tibbs Tech is always available and quick to73 respond. They've saved us from critical situations multiple74 times."75 </p>76 <div className="flex items-center gap-2 pt-2">77 <div className="flex h-8 w-8 items-center justify-center rounded-full bg-primary/20 font-semibold text-primary">78 RJ79 </div>80 <div>81 <p className="text-sm font-medium">Robert Johnson</p>82 <p className="text-xs text-muted-foreground">83 IT Director, Enterprise Co.84 </p>85 </div>86 </div>87 </div>88 ),89 footer: (90 <div className="flex w-full justify-between">91 <Badge variant="outline">Technical Support</Badge>92 <span className="text-xs text-muted-foreground">⭐⭐⭐⭐⭐</span>93 </div>94 ),95 },96];9798export function InfiniteCardMarqueeRowsExample() {99 return (100 <InfiniteCardMarquee101 cards={rowsCards}102 rows={2}103 rowReverse={[false, true]}104 cardWidth={280}105 cardHeight={340}106 gap={16}107 rowGap={8}108 />109 );110}
Installation & source
Install via the shadcn CLI or copy the registry files manually.
npx shadcn@latest add @tt-ui/infinite-card-marquee
Props
| Name | Type | Default | Description |
|---|---|---|---|
| cards | CardItem[] | Required | Items to render in the loop |
| axis | "horizontal" | "vertical" | "horizontal" | Scroll along the x or y axis |
| reverse | boolean | false | Opposite scroll (right/up instead of left/down) |
| speed | "slow" | "normal" | "fast" | "normal" | Animation speed preset |
| pauseOnHover | boolean | true | Pause while the pointer is over the viewport |
| cardWidth | number | string | 300 | Card width (number = px) |
| cardHeight | number | string | "auto" | Card height; auto uses a fixed default for layout stability |
| gap | number | 16 | Gap between cards in px |
| rows | number | 1 | Stack multiple horizontal marquee rows (horizontal axis only) |
| rowReverse | boolean | boolean[] | - | Per-row scroll direction; array entries override `reverse` for that row |
| rowGap | number | 12 | Vertical spacing between rows in px when rows > 1 |
| className | string | - | Outer wrapper; use this to set preview/container height |
| itemClassName | string | - | Every Card root (merged with each item className) |
| rowClassName | string | - | Each row viewport |
| viewportClassName | string | - | Extra classes for the scrolling viewport |