intyx_curved_carousel

A Flutter widget for horizontal scrolling with a 3D curved carousel effect. Items scale and rotate based on scroll position, creating a perspective carousel.

Demo

Features

  • 3D perspective: Items near the center are at rest; items toward the edges rotate and scale for a carousel feel.
  • Configurable: Control item size, spacing, padding, and how many items are considered "in view" for centering.
  • Optional ScrollController: Use your own ScrollController or let the widget manage one.

Installation

Add to your pubspec.yaml:

dependencies:
  intyx_curved_carousel: ^1.0.0

Then run:

flutter pub get

Usage

import 'package:intyx_curved_carousel/intyx_curved_carousel.dart';

CurvedHorizontalScroll(
  itemCount: 10,
  itemBuilder: (context, index) => Container(
    decoration: BoxDecoration(
      color: Colors.blue,
      borderRadius: BorderRadius.circular(12),
    ),
    child: Center(child: Text('Item $index')),
  ),
  itemWidth: 120,
  itemHeight: 180,
  itemSpacing: 16,
  viewportItemCount: 2, // optional; used for auto padding
  padding: null,        // optional; null = auto center
  controller: null,     // optional; your ScrollController
)

Parameters

Parameter Type Default Description
itemCount int required Total number of items.
itemBuilder Widget Function(BuildContext, int) required Builds the widget for each index.
itemWidth double required Width of each item.
itemHeight double required Height of each item (and of the scroll view).
itemSpacing double 16.0 Horizontal space between items.
padding EdgeInsets? null Padding around the list. If null, computed to center viewportItemCount items.
viewportItemCount int 2 Number of items considered visible for auto padding.
controller ScrollController? null Optional scroll controller.

Example

See the example/ folder for a runnable app.

License

BSD 3-Clause — see LICENSE file.