Update: 2026-07-11 19:38:43

This commit is contained in:
Hamza-Ayed
2026-07-11 19:38:43 +03:00
parent 9535d702d6
commit de761c1d97
@@ -150,8 +150,9 @@ class CarDetailsTypeToChoose extends StatelessWidget {
// ── Car Selection List ───────────────────────────────
SizedBox(
height: 96,
height: 136,
child: ListView.builder(
clipBehavior: Clip.none,
physics: const BouncingScrollPhysics(),
scrollDirection: Axis.horizontal,
padding: const EdgeInsets.fromLTRB(16, 2, 16, 2),
@@ -161,7 +162,7 @@ class CarDetailsTypeToChoose extends StatelessWidget {
final isSelected = controller.selectedIndex == index;
return Padding(
padding: EdgeInsetsDirectional.only(
end: index < carTypes.length - 1 ? 8 : 0),
end: index < carTypes.length - 1 ? 12 : 0),
child: _buildCarCard(
context, controller, carType, isSelected, index),
);
@@ -793,20 +794,10 @@ class _CarTypeCard extends StatelessWidget {
onTap: onTap,
child: AnimatedContainer(
duration: AppDurations.base,
curve: Curves.easeOutCubic,
width: 88,
curve: Curves.easeOutBack,
width: 116,
decoration: BoxDecoration(
gradient: isSelected
? LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
AppColor.primaryColor.withAlpha(22),
AppColor.primaryColor.withAlpha(10),
],
)
: null,
color: isSelected ? null : AppColor.secondaryColor,
color: isSelected ? AppColor.primaryColor : AppColor.secondaryColor,
borderRadius: AppRadii.all(AppRadii.lg),
border: Border.all(
color: isSelected
@@ -815,61 +806,76 @@ class _CarTypeCard extends StatelessWidget {
width: isSelected ? 2 : 1.2,
),
boxShadow: [
BoxShadow(
color: isSelected
? AppColor.primaryColor.withAlpha(50)
: Colors.black.withAlpha(12),
blurRadius: isSelected ? 10 : 4,
offset: const Offset(0, 2),
),
if (isSelected)
BoxShadow(
color: AppColor.primaryColor.withAlpha(100),
blurRadius: 16,
offset: const Offset(0, 6),
)
else
BoxShadow(
color: Colors.black.withAlpha(12),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
child: Stack(
clipBehavior: Clip.none,
children: [
// Selected indicator
if (isSelected)
Positioned(
top: 3,
right: 3,
top: 4,
right: 4,
child: Container(
width: 18,
height: 18,
width: 20,
height: 20,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
AppColor.primaryColor,
AppColor.primaryColor.withAlpha(200),
],
),
color: Colors.white,
shape: BoxShape.circle,
boxShadow: [
BoxShadow(
color: AppColor.primaryColor.withAlpha(60),
color: Colors.black.withAlpha(30),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
child: const Icon(Icons.check, size: 11, color: Colors.white),
child:
Icon(Icons.check, size: 14, color: AppColor.primaryColor),
),
),
// Card content
Padding(
padding: const EdgeInsets.all(6),
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// Car image
AnimatedScale(
scale: isSelected ? 1.1 : 1.0,
duration: AppDurations.base,
child: Image.asset(
carType.image,
height: 34,
fit: BoxFit.contain,
// Car image on soft disc
Container(
width: 52,
height: 52,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: isSelected
? Colors.white.withAlpha(30)
: AppColor.primaryColor.withAlpha(15),
),
alignment: Alignment.center,
child: AnimatedScale(
scale: isSelected ? 1.15 : 1.0,
duration: AppDurations.base,
curve: Curves.easeOutBack,
child: Image.asset(
carType.image,
height: 42,
fit: BoxFit.contain,
),
),
),
const SizedBox(height: 1),
const SizedBox(height: 6),
// Car name
FittedBox(
@@ -879,26 +885,24 @@ class _CarTypeCard extends StatelessWidget {
style: TextStyle(
fontWeight:
isSelected ? FontWeight.w800 : FontWeight.w600,
fontSize: 11,
color: isSelected
? AppColor.primaryColor
: AppColor.writeColor,
fontSize: 13,
color: isSelected ? Colors.white : AppColor.writeColor,
),
maxLines: 1,
),
),
const SizedBox(height: 1),
const SizedBox(height: 4),
// Price tag
Container(
padding:
const EdgeInsets.symmetric(horizontal: 6, vertical: 1),
const EdgeInsets.symmetric(horizontal: 10, vertical: 3),
decoration: BoxDecoration(
color: isSelected
? AppColor.primaryColor
? Colors.white
: AppColor.writeColor.withOpacity(0.05),
borderRadius: AppRadii.all(AppRadii.sm),
borderRadius: BorderRadius.circular(12),
border: isSelected
? null
: Border.all(
@@ -908,11 +912,11 @@ class _CarTypeCard extends StatelessWidget {
child: Text(
priceText,
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w800,
fontSize: 15,
fontWeight: FontWeight.bold,
color: isSelected
? Colors.white
: AppColor.writeColor.withOpacity(0.8),
? AppColor.primaryColor
: AppColor.writeColor.withOpacity(0.9),
),
),
),