import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; class CollectionContainer extends StatelessWidget { final String? label; final String? imagesrc; final String? imageSvg; final double? width; final double? height; final VoidCallback onTapAc; final Color? textColor; final double? iconw; final double? iconh; final double? lblSize; final bool? circle; final Color? colorContiner; final bool? small; const CollectionContainer({ Key? key, this.label, this.imagesrc, this.imageSvg, this.width, this.height, required this.onTapAc, this.textColor, this.iconh, this.iconw, this.lblSize, this.circle, this.colorContiner, this.small, }) : super(key: key); @override Widget build(BuildContext context) { return GestureDetector( onTap: onTapAc, child: Container( // padding: EdgeInsets.only(top: 20), width: width ?? 130, height: height ?? 170, decoration: BoxDecoration( color: const Color.fromARGB(0, 83, 246, 8), borderRadius: BorderRadius.circular(10), ), child: Card( // shape: RoundedRectangleBorder( // borderRadius: BorderRadius.circular(10.0), // ), elevation: 5, color: colorContiner ?? Color.fromRGBO(76, 77, 164, 1.0), child: Stack( children: [ Padding( padding: const EdgeInsets.all(8.0), child: Center( child: Padding( padding: (small ?? false) ? const EdgeInsets.only(bottom: 5.0) : const EdgeInsets.only(bottom: 30.0), child: imageSvg != null && imageSvg!.isNotEmpty ? Container( decoration: (circle ?? false) ? BoxDecoration( color: const Color.fromARGB( 224, 0, 0, 0, ), borderRadius: BorderRadius.circular(50), ) : null, child: Padding( padding: (small ?? false) ? const EdgeInsets.all(1.0) : const EdgeInsets.all(8.0), child: SvgPicture.asset( imageSvg!, width: iconw ?? 40, height: iconh ?? 40, colorFilter: const ColorFilter.mode( Color.fromARGB(255, 242, 242, 242), BlendMode.srcIn, ), ), ), ) : imagesrc != null && imagesrc!.isNotEmpty ? Image.asset(imagesrc!, fit: BoxFit.cover) : const SizedBox( // width: 60, // height: 60, child: Center( child: Icon( Icons.image_not_supported, color: Colors.white, ), ), ), ), ), ), Positioned( bottom: (small ?? false) ? 0 : 10, left: 0, right: 0, child: Text( label ?? '', textAlign: TextAlign.center, style: TextStyle( fontSize: lblSize ?? 14, fontWeight: FontWeight.bold, color: textColor ?? Colors.black, ), ), ), ], ), ), ), ); } }