👋 This is a community-driven shadcn/ui resource. For the official documentation, visit ui.shadcn.com
Apple Cards Carousel
Apple-style scrollable cards carousel with smooth animations and modal overlays. Perfect for React applications requiring elegant content presentation with Next.js integration and TypeScript support.
Powered by
Installation
npx shadcn@latest add https://www.shadcn.io/registry/apple-cards-carousel.jsonnpx shadcn@latest add https://www.shadcn.io/registry/apple-cards-carousel.jsonpnpm dlx shadcn@latest add https://www.shadcn.io/registry/apple-cards-carousel.jsonbunx shadcn@latest add https://www.shadcn.io/registry/apple-cards-carousel.jsonFeatures
- Smooth horizontal scrolling with momentum-based navigation and scroll indicators
- Modal card expansion with full-screen overlay and backdrop blur effects using Framer Motion
- Responsive design with adaptive card sizing and mobile-optimized touch interactions
- Layout animations with optional shared element transitions between states
- Keyboard navigation with Escape key support and focus management
- TypeScript support with comprehensive type definitions and prop interfaces
- shadcn/ui integration using consistent design tokens and styling patterns
Examples
Interactive Layout Animations
Demonstrates smooth layout transitions between card states with enhanced animations.
Use Cases
This free open source React component works well for:
- Portfolio galleries - Showcase projects with expandable detail views built with Next.js
- Product catalogs - Display items with rich content overlays using TypeScript
- Blog previews - Feature articles with full-screen reading experience
- Team showcases - Present team members with detailed profiles and Tailwind CSS styling
- Case studies - Highlight work samples with comprehensive project details
API Reference
Carousel
| Prop | Type | Default | Description |
|---|---|---|---|
items | JSX.Element[] | required | Array of Card components to display in the carousel |
initialScroll | number | 0 | Initial scroll position for the carousel |
Card
| Prop | Type | Default | Description |
|---|---|---|---|
card | Card | required | Card data object with src, title, category, and content |
index | number | required | Card index for scroll positioning and animations |
layout | boolean | false | Enable layout animations for smooth state transitions |
Card Data Object
| Property | Type | Description |
|---|---|---|
src | string | Image URL for the card background |
title | string | Main heading text displayed on the card |
category | string | Category label shown above the title |
content | React.ReactNode | Full content displayed in the modal overlay |
BlurImage
| Prop | Type | Default | Description |
|---|---|---|---|
src | string | required | Image source URL |
alt | string | "Background of a beautiful view" | Alternative text for accessibility |
className | string | undefined | Additional CSS classes for styling |
fill | boolean | false | Whether image should fill its container |
width | number | undefined | Image width in pixels |
height | number | undefined | Image height in pixels |
Implementation Notes
- Component requires
@tabler/icons-reactandmotionlibraries for full functionality - Cards automatically handle modal state management and scroll positioning
- Uses
useOnClickOutsidehook for modal dismissal - ensure hook is available in project - Responsive breakpoints adjust card sizes and navigation behavior
- Modal overlays disable body scrolling and provide keyboard navigation
- Layout animations require
layout={true}prop for optimal performance - Compatible with both light and dark themes through CSS custom properties
Animated Tooltip
Dynamic avatar group with spring-animated tooltips on hover. Perfect for React applications requiring team displays with Next.js integration and TypeScript support.
Apple Hello Effect
Handwriting animation component for React and Next.js applications. Built with Motion, TypeScript support, and Tailwind CSS styling featuring Apple-inspired text animations with multilingual support and customizable timing.