AdvancedCard constructor
const
AdvancedCard({
- Key? key,
- double? width,
- double? height,
- bool fullWidth = false,
- bool fullHeight = false,
- Color? backgroundColor,
- double? borderRadius,
- BorderRadiusGeometry? customBorderRadius,
- EdgeInsetsGeometry? padding,
- EdgeInsetsGeometry? margin,
- double? borderWidth,
- Color? borderColor,
- bool hasShadow = true,
- Color? shadowColor,
- double? shadowBlur,
- double? shadowSpread,
- Offset? shadowOffSet,
- List<
BoxShadow> ? customShadows, - VoidCallback? onTap,
- VoidCallback? onLongPress,
- bool enableHover = true,
- dynamic cardImage,
- ImagePosition imagePosition = ImagePosition.top,
- ImageRatio imageRatio = ImageRatio.half,
- double? customImageWidth,
- double? customImageHeight,
- double? imageBorderRadius,
- BoxFit imageFit = BoxFit.cover,
- bool showLikeIcon = false,
- OverlayPosition likeIconPosition = OverlayPosition.topRight,
- IconData likeIcon = Icons.favorite,
- Color? likeIconColor,
- double likeIconSize = 24.0,
- bool isLiked = false,
- VoidCallback? onLikeTap,
- bool showBookmarkIcon = false,
- OverlayPosition bookmarkIconPosition = OverlayPosition.topLeft,
- IconData bookmarkIcon = Icons.bookmark,
- Color? bookmarkIconColor,
- double bookmarkIconSize = 24.0,
- bool isBookmarked = false,
- VoidCallback? onBookmarkTap,
- List<
StatusChip> ? statusChips, - String? title,
- double? titleFontSize,
- FontWeight? titleFontWeight,
- Color? titleColor,
- String? titleFontFamily,
- ContentAlignment titleAlignment = ContentAlignment.left,
- int? titleMaxLines,
- TextOverflow? titleOverflow,
- String? description,
- double? descriptionFontSize,
- FontWeight? descriptionFontWeight,
- Color? descriptionColor,
- String? descriptionFontFamily,
- ContentAlignment descriptionAlignment = ContentAlignment.left,
- int? descriptionMaxLines,
- TextOverflow? descriptionOverflow,
- double? rating,
- int maxRating = 5,
- double ratingStarSize = 16.0,
- Color? ratingFilledColor,
- Color? ratingEmptyColor,
- bool showRatingNumber = true,
- String? customRatingText,
- ValueChanged<
double> ? onRatingChanged, - List<
String> ? chips, - ContentChipPosition chipPosition = ContentChipPosition.afterTitle,
- Color? chipBackgroundColor,
- Color? chipTextColor,
- double? chipFontSize,
- FontWeight? chipFontWeight,
- double? chipBorderRadius,
- VoidCallback? onChipTap,
- List<
ContentChip> ? customChips, - List<
MetricItem> ? metrics, - int metricsColumns = 3,
- double metricsSpacing = 16.0,
- bool showMetricsDividers = false,
- Color? metricsBackgroundColor,
- List<
IconTextPair> ? iconTextPairs, - String? price,
- double? priceFontSize,
- FontWeight? priceFontWeight,
- Color? priceColor,
- ContentAlignment priceAlignment = ContentAlignment.left,
- double contentSpacing = 8.0,
- String? buttonText,
- IconData? buttonIcon,
- bool buttonIconOnRight = false,
- CardButtonStyle buttonStyle = CardButtonStyle.elevated,
- ButtonPosition buttonPosition = ButtonPosition.fullWidth,
- Color? buttonBackgroundColor,
- Color? buttonTextColor,
- Color? buttonBorderColor,
- double buttonBorderWidth = 1.5,
- double? buttonFontSize,
- FontWeight? buttonFontWeight,
- EdgeInsetsGeometry? buttonPadding,
- double? buttonBorderRadius,
- double? buttonWidth,
- double? buttonHeight,
- double buttonIconSize = 20.0,
- double buttonIconTextSpacing = 8.0,
- double buttonElevation = 2.0,
- Color? buttonHoverColor,
- bool buttonIsLoading = false,
- bool buttonIsDisabled = false,
- VoidCallback? onButtonPressed,
- CardButton? secondaryButton,
- List<
CardButton> ? buttons, - double buttonSpacing = 12.0,
- Axis buttonDirection = Axis.horizontal,
- MainAxisAlignment buttonAlignment = MainAxisAlignment.center,
- Widget? child,
Implementation
const AdvancedCard({
super.key,
this.width,
this.height,
this.fullWidth = false,
this.fullHeight = false,
this.backgroundColor,
this.borderRadius,
this.customBorderRadius,
this.padding,
this.margin,
this.borderWidth,
this.borderColor,
this.hasShadow = true,
this.shadowColor,
this.shadowBlur,
this.shadowSpread,
this.shadowOffSet,
this.customShadows,
this.onTap,
this.onLongPress,
this.enableHover = true,
this.cardImage,
this.imagePosition = ImagePosition.top,
this.imageRatio = ImageRatio.half,
this.customImageWidth,
this.customImageHeight,
this.imageBorderRadius,
this.imageFit = BoxFit.cover,
this.showLikeIcon = false,
this.likeIconPosition = OverlayPosition.topRight,
this.likeIcon = Icons.favorite,
this.likeIconColor,
this.likeIconSize = 24.0,
this.isLiked = false,
this.onLikeTap,
this.showBookmarkIcon = false,
this.bookmarkIconPosition = OverlayPosition.topLeft,
this.bookmarkIcon = Icons.bookmark,
this.bookmarkIconColor,
this.bookmarkIconSize = 24.0,
this.isBookmarked = false,
this.onBookmarkTap,
this.statusChips,
this.title,
this.titleFontSize,
this.titleFontWeight,
this.titleColor,
this.titleFontFamily,
this.titleAlignment = ContentAlignment.left,
this.titleMaxLines,
this.titleOverflow,
this.description,
this.descriptionFontSize,
this.descriptionFontWeight,
this.descriptionColor,
this.descriptionFontFamily,
this.descriptionAlignment = ContentAlignment.left,
this.descriptionMaxLines,
this.descriptionOverflow,
this.rating,
this.maxRating = 5,
this.ratingStarSize = 16.0,
this.ratingFilledColor,
this.ratingEmptyColor,
this.showRatingNumber = true,
this.customRatingText,
this.onRatingChanged,
this.chips,
this.chipPosition = ContentChipPosition.afterTitle,
this.chipBackgroundColor,
this.chipTextColor,
this.chipFontSize,
this.chipFontWeight,
this.chipBorderRadius,
this.onChipTap,
this.customChips,
this.metrics,
this.metricsColumns = 3,
this.metricsSpacing = 16.0,
this.showMetricsDividers = false,
this.metricsBackgroundColor,
this.iconTextPairs,
this.price,
this.priceFontSize,
this.priceFontWeight,
this.priceColor,
this.priceAlignment = ContentAlignment.left,
this.contentSpacing = 8.0,
this.buttonText,
this.buttonIcon,
this.buttonIconOnRight = false,
this.buttonStyle = CardButtonStyle.elevated,
this.buttonPosition = ButtonPosition.fullWidth,
this.buttonBackgroundColor,
this.buttonTextColor,
this.buttonBorderColor,
this.buttonBorderWidth = 1.5,
this.buttonFontSize,
this.buttonFontWeight,
this.buttonPadding,
this.buttonBorderRadius,
this.buttonWidth,
this.buttonHeight,
this.buttonIconSize = 20.0,
this.buttonIconTextSpacing = 8.0,
this.buttonElevation = 2.0,
this.buttonHoverColor,
this.buttonIsLoading = false,
this.buttonIsDisabled = false,
this.onButtonPressed,
this.secondaryButton,
this.buttons,
this.buttonSpacing = 12.0,
this.buttonDirection = Axis.horizontal,
this.buttonAlignment = MainAxisAlignment.center,
this.child
});