Flutter Progress Stepper Wizard with Plan Selection

A multi-step wizard header with a connected step rail (completed, active, and upcoming states) over a plan selection step and a continue button, all composed from Wind utility classes.

Anılcan Çakır by Anılcan Çakır 42 views 0 stars 1 week ago Rev 1
Flutter Progress Stepper Wizard with Plan Selection preview
main.dart
WDiv(
  className: 'max-w-sm w-full mx-auto p-6 rounded-3xl bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-800 shadow-xl',
  children: [
    WDiv(
      className: 'flex flex-row items-center w-full mb-6',
      children: [
        WDiv(
          className: 'w-9 h-9 rounded-full bg-indigo-600 dark:bg-indigo-500 flex flex-row items-center justify-center',
          child: WIcon(
            Icons.check,
            className: 'text-white text-base'
          ),
        ),
        WDiv(
          className: 'flex-1 h-1 rounded-full bg-indigo-600 dark:bg-indigo-500 mx-2',
          children: []
        ),
        WDiv(
          className: 'w-9 h-9 rounded-full bg-indigo-600 dark:bg-indigo-500 flex flex-row items-center justify-center',
          child: WIcon(
            Icons.check,
            className: 'text-white text-base'
          ),
        ),
        WDiv(
          className: 'flex-1 h-1 rounded-full bg-indigo-600 dark:bg-indigo-500 mx-2',
          children: []
        ),
        WDiv(
          className: 'w-9 h-9 rounded-full bg-indigo-600 dark:bg-indigo-500 flex flex-row items-center justify-center',
          child: WText(
            '3',
            className: 'text-white text-sm font-bold'
          ),
        ),
        WDiv(
          className: 'flex-1 h-1 rounded-full bg-gray-200 dark:bg-gray-700 mx-2',
          children: []
        ),
        WDiv(
          className: 'w-9 h-9 rounded-full bg-gray-200 dark:bg-gray-800 flex flex-row items-center justify-center',
          child: WText(
            '4',
            className: 'text-gray-400 dark:text-gray-500 text-sm font-bold'
          ),
        ),
      ],
    ),
    WText(
      'Step 3 of 4',
      className: 'text-indigo-600 dark:text-indigo-400 text-xs font-bold uppercase mb-1'
    ),
    WText(
      'Choose your plan',
      className: 'text-gray-900 dark:text-white text-xl font-bold mb-4'
    ),
    WDiv(
      className: 'flex flex-row items-center justify-between w-full p-4 rounded-2xl border-2 border-indigo-500 dark:border-indigo-400 bg-indigo-50 dark:bg-indigo-950 mb-3',
      children: [
        WDiv(
          className: 'flex flex-col',
          children: [
            WText(
              'Pro',
              className: 'text-gray-900 dark:text-white text-sm font-bold'
            ),
            WText(
              '$12 per month',
              className: 'text-gray-500 dark:text-gray-400 text-xs'
            ),
          ],
        ),
        WIcon(
          Icons.check,
          className: 'text-indigo-600 dark:text-indigo-400 text-xl'
        ),
      ],
    ),
    WDiv(
      className: 'flex flex-row items-center justify-between w-full p-4 rounded-2xl border border-gray-200 dark:border-gray-700 mb-6',
      children: [
        WDiv(
          className: 'flex flex-col',
          children: [
            WText(
              'Team',
              className: 'text-gray-900 dark:text-white text-sm font-bold'
            ),
            WText(
              '$29 per month',
              className: 'text-gray-500 dark:text-gray-400 text-xs'
            ),
          ],
        ),
        WDiv(
          className: 'w-5 h-5 rounded-full border-2 border-gray-300 dark:border-gray-600',
          children: []
        ),
      ],
    ),
    WButton(
      className: 'w-full py-3 rounded-2xl bg-indigo-600 dark:bg-indigo-500',
      child: WDiv(
        className: 'flex flex-row items-center justify-center w-full',
        children: [
          WText(
            'Continue',
            className: 'text-white text-sm font-semibold mr-2'
          ),
          WIcon(
            Icons.arrow_forward,
            className: 'text-white text-base'
          ),
        ],
      ),
    ),
  ],
)
Stats
Views
42
Stars
0
Revisions
1
Size
3,765 chars
Created
Jun 28, 2026