A Fully customizable animated cards widget that has feature of 3D animation and much more. This widget works on both Android & iOS.


Add following dependency in pubspec.yaml file. And add this import to your file.

flutter_animated_cards: ^0.0.1

import 'package:flutter_animated_cards/flutter_animated_cards.dart';

Quick Start

// Add AnimatedCards to the widget tree

child: FlutterAnimatedCards(
          list: _cardList,
          model: _cardModel,
        ),                ‚Äč

Card Model

class CardModel {
   final String title;                  /// required
   final String imagePath;            /// required  i.e "assets/images/image.png"
   final String description;        /// (Optional)
   final Color color;             /// (Optional) add this parameter if you want to have different color on each card
   final List<Color> colorList; /// (Optional) add this parameter if you want to apply different gradient on each card

FlutterAnimatedCards made through model class

If you add Color parameter in your model class and assign each list item a new different color then your widget look like this.

Cards with ModelColorCards with Model Gradient
           title: 'Colors, Vibrant',
           description:'Gardening is how I relax. It\'s another form of creating and playing with colors.',
           color: Color(0xfff9d9e2),  // add color of your choice, add different colors in every list item
           imagePath: "assets/images/colors.png"),

          title: 'Budapest, Hungary',
          description:'Meet the CardModel with rich history and indescribable culture',
          colorList: [Color(0xFF4CAF50),  // add gradient of your choice, add different gradient in every list item
          imagePath: "assets/images/city_image.png"),

FlutterAnimatedCards without passing any color in model class

This is another way to give colors or gradient to your card. Now you need to add 'cardWithSingleColor' or 'cardWithGradientColors' as shown below

Cards with Single ColorCards with Single Gradient
   child: FlutterAnimatedCards(
          list: _cardList,
          model: _cardModel,
          cardWithSingleColor: Color(0xfff9d9e2),  // you are not asked to add this parameter, but you can this if you want to display your cards with any other single color. By default cards will appear as it is shown in Screenshot 

   child: FlutterAnimatedCards(
          list: _cardList,
          model: _cardModel,
          cardWithGradientColors: [Color(0xffacb6e5),  // this parameter is needs to be added to add gradient, there is no default gradient available in lib

Custom Usage

There are several options that allow for more control:

modelThis is the required parameter. You need to pass a model class somehow similar to the one shown in example, you can add more arguments in your class but 'name', 'description', 'image' is necessary
listThis is also the required parameter. You need to pass a list of your model class, this list can not be null or empty
cardHeightset card height according to your requirement.
cardWidthset card width according to your requirement.
isRotatingCardsby default it's 'true', you can set it 'false' if you don't want to add 3D rotation in your cards.
cardWithSingleColorif you want to give all your cards one single color, use this property. You can also give each card a different color through model class
cardWithGradientColorsit takes List as a parameter, this property allows you to apply the same gradient on all of your cards. You can also give each card a different gradient through model class
moreTextby default I have set it to 'LEARN MORE', but you can change it to any text according to your choice.
onMoreBtnPressedthis is a click event, currently it performs nothing you can use it according to your choice.


Faiza Farooqui