Circular Animated Carousel ๐ก
A premium, gesture-driven circular carousel for Flutter. Designed for high-end showcasesโcards, luxury images, or interactive tickets. Featuring 3D Perspective, Garland Tilt, and Dynamic Focus effects.
๐ Vision
Most carousels are flat. This one has depth. As you scroll, items rise and tilt along a gentle arc, receding into 3D space with configurable perspective. It's not just a slider; it's a physical experience.
| ArcDirection.up (Smile) | ArcDirection.down (Bowl) |
|---|---|
![]() |
![]() |
| Side items rise above & tilt inward. | Side items drop below & tilt outward. |
โจ Premium Features
- ๐ญ 3D Perspective โ Items recede and "face" the center as they move, creating real physical depth.
- ๐ Garland Tilt โ Elegant cosine-based arc transitions for both position and rotation.
- ๐ฏ Dynamic Focus โ Access
focusWeightto animate scale, opacity, or custom effects as items enter focus. - โจ Glassmorphism & Glow โ Built-in support for spotlight-style opacity and focused scaling.
- ๐ฌ Cinematic Entrances โ High-end "stream-in" animations that feel alive.
- ๐ฑ Tactile Feedback โ Integrated haptic "clicks" on every snap.
- โจ๏ธ Accessibility First โ Full support for Screen Readers and Keyboard navigation.
- ๐ Responsive by Design โ Auto-scales layout proportions across all screen sizes.
๐ Getting Started
Add the dependency to your pubspec.yaml:
flutter pub add circular_animated_carousel
๐ The "Luxury" Setup
Create a high-end experience with just a few lines of code:
CircularAnimatedCarousel(
itemCount: 5,
itemWidth: 240,
itemHeight: 360,
perspective: 0.0015, // Subtle 3D depth
focusedScale: 1.2, // Focused item pops out
unfocusedOpacity: 0.5, // Side items fade into background
sideLift: 100, // Elegant arc height
circular: true, // Infinite looping
entranceDuration: Duration(milliseconds: 2400),
itemBuilder: (context, info) => MyPremiumCard(
focusWeight: info.focusWeight, // Animate internals based on focus
),
)
๐ฎ Total Control
The CircularAnimatedCarouselController gives you programmatic power:
final controller = CircularAnimatedCarouselController();
// Navigate smoothly
controller.next();
controller.previous();
controller.animateTo(3);
// Observe state
print(controller.currentIndex); // Current focused index
print(controller.currentPosition); // Live fractional position
๐ ๏ธ Configuration
| Property | Default | Description |
|---|---|---|
perspective |
0.001 |
The intensity of the 3D distortion. |
focusedScale |
1.0 |
Scale multiplier for the focused item. |
unfocusedScale |
1.0 |
Scale multiplier for side items. |
unfocusedOpacity |
1.0 |
Opacity of side items (spotlight effect). |
sideLift |
80.0 |
How high/low the arc reaches. |
arcDirection |
up |
ArcDirection.up (Smile) or down (Bowl). |
circular |
false |
Enable infinite looping. |
enableSnap |
true |
Snaps to the nearest item after drag. |
autoplay |
false |
Auto-advance timer. |
๐ Accessibility & Web
This package is optimized for all platforms:
- Keyboard: Use Left/Right arrows to navigate.
- Screen Readers: Semantic labels automatically identify "Item X of Y".
- Haptics: Light vibration on every selection change.
๐ Example
Check out the example folder for a complete Luxury Destination Showcase featuring Unsplash imagery and glassmorphism effects.
cd example && flutter run
๐ License
MIT ยฉ Johnson
Libraries
- circular_animated_carousel
- Circular, gesture-driven carousel for coupon/ticket/card showcases.

