Flutter Ride Fare Receipt Card with Fare Breakdown
A ride-hailing fare receipt built with Wind: a completed-trip header, a driver row with star rating, pickup and dropoff stops, an itemized fare breakdown for base, distance, time, booking fee, and tip, a bold total, and the payment method. Dark-mode ready.
main.dart
WDiv(
className: 'mx-auto w-full max-w-sm flex flex-col gap-5 rounded-3xl p-6 bg-white border border-gray-200 shadow-xl dark:bg-gray-900 dark:border-gray-800',
children: [
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WDiv(
className: 'flex flex-col gap-1',
children: [
WText(
'Trip Receipt',
className: 'text-lg font-bold text-gray-900 dark:text-white'
),
WText(
'Mar 14, 2025 at 8:24 PM',
className: 'text-xs text-gray-500 dark:text-gray-400'
),
],
),
WDiv(
className: 'flex flex-row items-center gap-1 rounded-full px-3 py-1 bg-emerald-50 dark:bg-emerald-950',
children: [
WIcon(
Icons.check,
className: 'text-sm text-emerald-600 dark:text-emerald-400'
),
WText(
'Completed',
className: 'text-xs font-semibold text-emerald-600 dark:text-emerald-400'
),
],
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full rounded-2xl p-3 bg-gray-50 dark:bg-gray-800',
children: [
WDiv(
className: 'flex flex-row items-center gap-3',
children: [
WDiv(
className: 'flex flex-row items-center justify-center w-11 h-11 rounded-full bg-indigo-100 dark:bg-indigo-900',
children: [
WText(
'DM',
className: 'text-sm font-bold text-indigo-600 dark:text-indigo-300'
),
],
),
WDiv(
className: 'flex flex-col',
children: [
WText(
'Daniel Meyer',
className: 'text-sm font-semibold text-gray-900 dark:text-white'
),
WText(
'Toyota Prius · 7XYZ123',
className: 'text-xs text-gray-500 dark:text-gray-400'
),
],
),
],
),
WDiv(
className: 'flex flex-row items-center gap-1 rounded-full px-2.5 py-1 bg-white dark:bg-gray-900',
children: [
WIcon(
Icons.star,
className: 'text-sm text-amber-400 dark:text-amber-400'
),
WText(
'4.9',
className: 'text-xs font-bold text-gray-900 dark:text-white'
),
],
),
],
),
WDiv(
className: 'flex flex-col gap-3 w-full',
children: [
WDiv(
className: 'flex flex-row items-start gap-3',
children: [
WDiv(
className: 'w-2.5 h-2.5 mt-1 rounded-full bg-emerald-500 dark:bg-emerald-400'
),
WDiv(
className: 'flex flex-col',
children: [
WText(
'PICKUP',
className: 'text-xs tracking-wide text-gray-400 dark:text-gray-500'
),
WText(
'Market St & 5th',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
],
),
WDiv(
className: 'flex flex-row items-start gap-3',
children: [
WDiv(
className: 'w-2.5 h-2.5 mt-1 rounded-full bg-rose-500 dark:bg-rose-400'
),
WDiv(
className: 'flex flex-col',
children: [
WText(
'DROPOFF',
className: 'text-xs tracking-wide text-gray-400 dark:text-gray-500'
),
WText(
'SFO International, Terminal 2',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
],
),
],
),
WDiv(
className: 'w-full border-t border-gray-100 dark:border-gray-800',
children: [],
),
WDiv(
className: 'flex flex-col gap-2 w-full',
children: [
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WText(
'Base fare',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
WText(
'$8.00',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WText(
'Distance (14.2 mi)',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
WText(
'$14.20',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WText(
'Time (24 min)',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
WText(
'$6.40',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WText(
'Booking fee',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
WText(
'$2.50',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full',
children: [
WText(
'Tip',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
WText(
'$7.50',
className: 'text-sm font-medium text-gray-900 dark:text-white'
),
],
),
],
),
WDiv(
className: 'flex flex-row items-center justify-between w-full border-t border-gray-100 pt-3 dark:border-gray-800',
children: [
WText(
'Total',
className: 'text-base font-bold text-gray-900 dark:text-white'
),
WText(
'$38.60',
className: 'text-xl font-black text-gray-900 dark:text-white'
),
],
),
WDiv(
className: 'flex flex-row items-center gap-2 w-full',
children: [
WDiv(
className: 'flex flex-row items-center justify-center px-2 py-1 rounded-md bg-indigo-600 dark:bg-indigo-500',
children: [
WText(
'VISA',
className: 'text-xs font-black tracking-wide text-white dark:text-white'
),
],
),
WText(
'•••• 4242',
className: 'text-sm text-gray-500 dark:text-gray-400'
),
],
),
],
)
Stats
- Views
- 67
- Stars
- 0
- Revisions
- 1
- Size
- 7,228 chars
- Created
- Jul 10, 2026