18 Widget
build(BuildContext context) {
23 borderRadius: BorderRadius.circular(16.r),
26 decoration: BoxDecoration(
27 borderRadius: BorderRadius.circular(16.r),
28 color: Theme.of(context).colorScheme.surface,
31 mainAxisSize: MainAxisSize.min,
32 crossAxisAlignment: CrossAxisAlignment.start,
37 decoration: BoxDecoration(
38 color: iconColor.withValues(alpha: 0.11),
39 borderRadius: BorderRadius.circular(16.r),
42 FluentIcons.folder_16_regular,
53 overflow: TextOverflow.ellipsis,
54 style: Theme.of(context).textTheme.titleSmall?.copyWith(
55 fontWeight: FontWeight.bold,
63 alignment: Alignment.centerRight,
65 '${(course.progress! * 100).toInt()}%',
66 style: Theme.of(context)
69 ?.copyWith(
color: iconColor),
75 LinearProgressIndicator(
77 backgroundColor: iconColor.withValues(alpha: 0.11),
79 valueColor: AlwaysStoppedAnimation<Color>(iconColor),
87 FluentIcons.clock_16_regular,
93 '${course.durationMinutes} min',
94 style: Theme.of(context).textTheme.bodySmall,
106 hexColor = hexColor.replaceAll(
'#',
'');
107 if (hexColor.length == 6) hexColor =
'FF$hexColor';
108 return Color(
int.parse(hexColor, radix: 16));
110 return Theme.of(context).colorScheme.primary;
style Column(crossAxisAlignment:CrossAxisAlignment.end, children:[Container(padding:EdgeInsets.symmetric(horizontal:8.w, vertical:4.h), decoration:BoxDecoration(color:ColorPalette.tiffanyBlue.withValues(alpha:0.1), borderRadius:BorderRadius.circular(12),), child:Text(collection.type ?? '', style:Theme.of(context).textTheme.bodySmall?.copyWith(color:ColorPalette.tiffanyBlue, fontWeight:FontWeight.bold,),),),],)