Flutter Mixing Console Card with Channel Strip Level Meters

A live mixer panel for a music production app: six vertical channel meters with peak and clip zones, per channel dB readouts, mute and solo pills, and a master bus meter with a no clipping badge. A good example of building vertical bar meters in Wind with a fixed height track and a bottom aligned fill, no custom painter.

Anılcan Çakır by Anılcan Çakır 80 views 0 stars 4 weeks ago Rev 1
Flutter Mixing Console Card with Channel Strip Level Meters preview
main.dart
WDiv(
  className: 'max-w-sm w-full rounded-3xl bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-800 shadow-xl p-6',
  children: [
    WDiv(
      className: 'flex flex-row items-center justify-between w-full',
      children: [
        WDiv(
          className: 'flex flex-row items-center',
          children: [
            WDiv(
              className: 'w-11 h-11 rounded-2xl bg-violet-50 dark:bg-violet-900 flex flex-row items-center justify-center',
              child: WIcon(
                Icons.volume_up,
                className: 'text-violet-600 dark:text-violet-300 text-xl'
              ),
            ),
            WDiv(
              className: 'flex flex-col ml-3',
              children: [
                WText(
                  'Live Set Mixer',
                  className: 'text-base font-bold text-gray-900 dark:text-white'
                ),
                WText(
                  '6 channels  |  48 kHz',
                  className: 'text-xs text-gray-500 dark:text-gray-400'
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-row items-center px-3 py-1 rounded-full bg-rose-100 dark:bg-rose-800',
          children: [
            WDiv(
              className: 'w-2 h-2 rounded-full bg-rose-500 dark:bg-rose-300'
            ),
            WText(
              '02:14',
              className: 'text-xs font-semibold text-rose-700 dark:text-rose-100 ml-1.5'
            ),
          ],
        ),
      ],
    ),
    WDiv(
      className: 'flex flex-row items-end justify-between w-full mt-6',
      children: [
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-4.2',
              className: 'text-xs font-semibold text-gray-500 dark:text-gray-400'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              child: WDiv(
                className: 'w-full h-[82px] rounded-md bg-emerald-500 dark:bg-emerald-400'
              ),
            ),
            WText(
              'Kick',
              className: 'text-xs font-semibold text-gray-900 dark:text-white mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-amber-100 dark:bg-amber-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-amber-700 dark:text-amber-200'
                  ),
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-6.8',
              className: 'text-xs font-semibold text-gray-500 dark:text-gray-400'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              child: WDiv(
                className: 'w-full h-[68px] rounded-md bg-emerald-500 dark:bg-emerald-400'
              ),
            ),
            WText(
              'Bass',
              className: 'text-xs font-semibold text-gray-900 dark:text-white mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-2.6',
              className: 'text-xs font-semibold text-rose-600 dark:text-rose-400'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-full h-[14px] rounded-t-md bg-rose-500 dark:bg-rose-400'
                ),
                WDiv(
                  className: 'w-full h-[78px] rounded-b-md bg-amber-500 dark:bg-amber-400'
                ),
              ],
            ),
            WText(
              'Vox',
              className: 'text-xs font-semibold text-gray-900 dark:text-white mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-8.1',
              className: 'text-xs font-semibold text-gray-500 dark:text-gray-400'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              child: WDiv(
                className: 'w-full h-[58px] rounded-md bg-emerald-500 dark:bg-emerald-400'
              ),
            ),
            WText(
              'Gtr',
              className: 'text-xs font-semibold text-gray-900 dark:text-white mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-inf',
              className: 'text-xs font-semibold text-gray-400 dark:text-gray-500'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              child: WDiv(
                className: 'w-full h-[12px] rounded-md bg-gray-300 dark:bg-gray-600'
              ),
            ),
            WText(
              'Keys',
              className: 'text-xs font-semibold text-gray-400 dark:text-gray-500 mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-rose-100 dark:bg-rose-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-rose-700 dark:text-rose-200'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
              ],
            ),
          ],
        ),
        WDiv(
          className: 'flex flex-col items-center',
          children: [
            WText(
              '-14.0',
              className: 'text-xs font-semibold text-gray-500 dark:text-gray-400'
            ),
            WDiv(
              className: 'w-10 h-28 rounded-lg bg-gray-100 dark:bg-gray-800 flex flex-col justify-end p-1 mt-1.5',
              child: WDiv(
                className: 'w-full h-[30px] rounded-md bg-sky-500 dark:bg-sky-400'
              ),
            ),
            WText(
              'Perc',
              className: 'text-xs font-semibold text-gray-900 dark:text-white mt-2'
            ),
            WDiv(
              className: 'flex flex-row items-center gap-1 mt-1.5',
              children: [
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'M',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
                WDiv(
                  className: 'w-4 h-4 rounded bg-gray-100 dark:bg-gray-800 flex flex-row items-center justify-center',
                  child: WText(
                    'S',
                    className: 'text-[9px] font-bold text-gray-400 dark:text-gray-500'
                  ),
                ),
              ],
            ),
          ],
        ),
      ],
    ),
    WDiv(
      className: 'w-full border-t border-gray-100 dark:border-gray-800 mt-6'
    ),
    WDiv(
      className: 'flex flex-row items-center justify-between w-full mt-4',
      children: [
        WDiv(
          className: 'flex flex-col',
          children: [
            WText(
              'Master bus',
              className: 'text-xs font-semibold text-gray-500 dark:text-gray-400'
            ),
            WText(
              '-3.4 dB',
              className: 'text-2xl font-extrabold text-gray-900 dark:text-white'
            ),
          ],
        ),
        WDiv(
          className: 'px-2.5 py-1 rounded-full bg-emerald-100 dark:bg-emerald-800',
          child: WText(
            'No clipping',
            className: 'text-xs font-semibold text-emerald-700 dark:text-emerald-100'
          ),
        ),
      ],
    ),
    WDiv(
      className: 'flex flex-row items-center gap-1 w-full mt-3',
      children: [
        WDiv(
          className: 'w-[184px] h-2.5 rounded-full bg-emerald-500 dark:bg-emerald-400'
        ),
        WDiv(
          className: 'w-[74px] h-2.5 rounded-full bg-amber-500 dark:bg-amber-400'
        ),
        WDiv(
          className: 'w-[26px] h-2.5 rounded-full bg-rose-500 dark:bg-rose-400'
        ),
        WDiv(
          className: 'w-[36px] h-2.5 rounded-full bg-gray-200 dark:bg-gray-700'
        ),
      ],
    ),
    WDiv(
      className: 'flex flex-row items-center w-full mt-4',
      children: [
        WIcon(
          Icons.bolt,
          className: 'text-gray-400 dark:text-gray-500 text-sm'
        ),
        WText(
          'Latency 6.4 ms, buffer 128 samples',
          className: 'text-xs text-gray-500 dark:text-gray-400 ml-1.5'
        ),
      ],
    ),
    WDiv(
      className: 'w-full mt-5',
      child: WButton(
        className: 'w-full rounded-2xl bg-violet-600 dark:bg-violet-500 py-3',
        child: WText(
          'Open Full Console',
          className: 'text-white text-center font-semibold text-sm'
        ),
      ),
    ),
  ],
)
Stats
Views
80
Stars
0
Revisions
1
Size
12,663 chars
Created
Jul 27, 2026