Skip to main content

tournament_bracket_kit 1.0.2 copy "tournament_bracket_kit: ^1.0.2" to clipboard
tournament_bracket_kit: ^1.0.2 copied to clipboard

Interactive tournament brackets for flutter with customizable match cards.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:tournament_bracket_kit/tournament_bracket_kit.dart';

void main() => runApp(const BracketExampleApp());

class BracketExampleApp extends StatelessWidget {
  const BracketExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Tournament Bracket Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: const Color(0xFF2D7A5A),
          brightness: Brightness.light,
        ),
      ),
      home: const BracketDemoPage(),
    );
  }
}

class BracketDemoPage extends StatefulWidget {
  const BracketDemoPage({super.key});

  @override
  State<BracketDemoPage> createState() => _BracketDemoPageState();
}

class _BracketDemoPageState extends State<BracketDemoPage> {
  BracketVariant _variant = BracketVariant.linear;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('tournament_bracket_kit'),
        actions: [
          PopupMenuButton<BracketVariant>(
            initialValue: _variant,
            tooltip: 'Bracket layout',
            icon: const Icon(Icons.account_tree_outlined),
            onSelected: (value) => setState(() => _variant = value),
            itemBuilder: (context) => const [
              PopupMenuItem(
                value: BracketVariant.linear,
                child: Text('Linear (left to right)'),
              ),
              PopupMenuItem(
                value: BracketVariant.mirrored,
                child: Text('Mirrored (final in center)'),
              ),
            ],
          ),
        ],
      ),
      body: SafeArea(
        child: TournamentBracket(
          rounds: dummyBracketRounds(),
          variant: _variant,
          onMatchTap: (match) {
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(
                content: Text(
                  '${match.home?.name ?? 'TBD'} vs ${match.away?.name ?? 'TBD'}',
                ),
              ),
            );
          },
        ),
      ),
    );
  }
}
4
likes
160
points
273
downloads

Documentation

API reference

Publisher

verified publishersangamadhikari.com

Weekly Downloads

Interactive tournament brackets for flutter with customizable match cards.

Repository (GitHub)
View/report issues

Topics

#flutter #tournament #bracket #sports #ui

License

MIT (license)

Dependencies

flutter

More

Packages that depend on tournament_bracket_kit