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.

Anılcan Çakır by Anılcan Çakır 67 views 0 stars 2 weeks ago Rev 1
Flutter Ride Fare Receipt Card with Fare Breakdown preview
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