Flutter Streaming Movie Card with Rating and Genre Tags

A cinematic detail card for a streaming or movie app: a gradient poster with a centered play affordance, rating and 4K HDR badges, genre tags, a two-line synopsis, and stacked Play and Add to My List actions. Built with Wind utility classes and full dark-mode pairing.

Anılcan Çakır by Anılcan Çakır 11 views 0 stars 5 days ago Rev 1
Flutter Streaming Movie Card with Rating and Genre Tags preview
main.dart
WDiv(
  className: 'flex flex-col w-full max-w-sm rounded-3xl overflow-hidden bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-800 shadow-xl',
  children: [
    WDiv(
      className: 'relative h-44 bg-gradient-to-br from-indigo-500 to-fuchsia-600 dark:from-indigo-600 dark:to-fuchsia-700',
      children: [
        WDiv(
          className: 'absolute inset-0 flex flex-row items-center justify-center',
          child: WDiv(
            className: 'flex flex-row items-center justify-center w-16 h-16 rounded-full bg-white/25 dark:bg-white/25 border border-white/50 dark:border-white/50',
            child: WIcon(
              Icons.play_arrow,
              className: 'text-3xl text-white dark:text-white'
            ),
          ),
        ),
        WDiv(
          className: 'absolute top-4 left-4 flex flex-row items-center gap-1 px-2 py-1 rounded-lg bg-black/40 dark:bg-black/40',
          children: [
            WIcon(
              Icons.star,
              className: 'text-sm text-amber-300 dark:text-amber-300'
            ),
            WText(
              '8.9',
              className: 'text-xs font-semibold text-white dark:text-white'
            ),
          ],
        ),
        WDiv(
          className: 'absolute top-4 right-4 px-2 py-1 rounded-lg bg-white/20 dark:bg-white/20',
          child: WText(
            '4K HDR',
            className: 'text-xs font-bold tracking-wide text-white dark:text-white'
          ),
        ),
      ],
    ),
    WDiv(
      className: 'flex flex-col gap-3 p-5',
      children: [
        WText(
          'Echoes of Tomorrow',
          className: 'text-xl font-bold text-gray-900 dark:text-white'
        ),
        WText(
          '2024   .   Sci-Fi Thriller   .   2h 18m',
          className: 'text-sm text-gray-500 dark:text-gray-400'
        ),
        WDiv(
          className: 'flex flex-row flex-wrap gap-2',
          children: [
            WDiv(
              className: 'px-3 py-1 rounded-full bg-indigo-50 dark:bg-indigo-500/15',
              child: WText(
                'Sci-Fi',
                className: 'text-xs font-medium text-indigo-700 dark:text-indigo-300'
              ),
            ),
            WDiv(
              className: 'px-3 py-1 rounded-full bg-indigo-50 dark:bg-indigo-500/15',
              child: WText(
                'Thriller',
                className: 'text-xs font-medium text-indigo-700 dark:text-indigo-300'
              ),
            ),
            WDiv(
              className: 'px-3 py-1 rounded-full bg-indigo-50 dark:bg-indigo-500/15',
              child: WText(
                'Drama',
                className: 'text-xs font-medium text-indigo-700 dark:text-indigo-300'
              ),
            ),
          ],
        ),
        WText(
          'A physicist intercepts a message from her future self, and racing to decode it unravels the line between memory and prophecy.',
          className: 'text-sm leading-relaxed text-gray-600 dark:text-gray-400 line-clamp-2',
        ),
        WButton(
          className: 'flex flex-row items-center justify-center gap-2 w-full py-3 rounded-xl bg-indigo-600 dark:bg-indigo-500 shadow-lg',
          child: WDiv(
            className: 'flex flex-row items-center justify-center gap-2',
            children: [
              WIcon(
                Icons.play_arrow,
                className: 'text-lg text-white dark:text-white'
              ),
              WText(
                'Play Now',
                className: 'text-sm font-semibold text-white dark:text-white'
              ),
            ],
          ),
        ),
        WButton(
          className: 'flex flex-row items-center justify-center gap-2 w-full py-3 rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800',
          child: WDiv(
            className: 'flex flex-row items-center justify-center gap-2',
            children: [
              WIcon(
                Icons.add,
                className: 'text-lg text-gray-700 dark:text-gray-200'
              ),
              WText(
                'Add to My List',
                className: 'text-sm font-semibold text-gray-700 dark:text-gray-200'
              ),
            ],
          ),
        ),
      ],
    ),
  ],
)
Stats
Views
11
Stars
0
Revisions
1
Size
4,297 chars
Created
Jun 19, 2026