chrono_countdown 0.1.1 copy "chrono_countdown: ^0.1.1" to clipboard
chrono_countdown: ^0.1.1 copied to clipboard

A Flutter countdown timer widget with smooth animations, customizable duration, styles, and effects. Perfect for flash sales, events, quizzes, and more.

example/lib/main.dart

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

void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Chrono Countdown Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

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

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late final ChronoCountdownController _controller;

  @override
  void initState() {
    super.initState();
    _controller = ChronoCountdownController.fromDuration(
      initDuration: const Duration(
        days: 0,
        hours: 99,
        minutes: 0,
        seconds: 5,
      ),
    );
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Chrono Countdown Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ChronoCountdownWidget(
              initDuration: const Duration(
                days: 0,
                hours: 99,
                minutes: 0,
                seconds: 5,
              ),
              boxTimeBuilder: (child) => Container(
                height: 40,
                constraints: const BoxConstraints(minWidth: 40),
                padding: const EdgeInsets.symmetric(horizontal: 4),
                alignment: Alignment.center,
                decoration: BoxDecoration(
                  color: Colors.red,
                  borderRadius: BorderRadius.circular(8),
                ),
                child: child,
              ),
              separatorBuilder: () => const Padding(
                padding: EdgeInsets.symmetric(horizontal: 4),
                child: Text(
                  ':',
                  style: TextStyle(
                    fontSize: 24,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              ),
            ),
            const SizedBox(height: 32),
            ChronoCountdownWidget(
              controller: _controller,
              textStyle: const TextStyle(
                color: Colors.white,
                fontSize: 16,
                fontWeight: FontWeight.w500,
              ),
              chronoTimeType: ChronoTimeType.day,
              boxTimeBuilder: (child) => Container(
                height: 40,
                constraints: const BoxConstraints(minWidth: 40),
                padding: const EdgeInsets.symmetric(horizontal: 4),
                alignment: Alignment.center,
                decoration: BoxDecoration(
                  color: Colors.red,
                  borderRadius: BorderRadius.circular(8),
                ),
                child: child,
              ),
              separatorBuilder: () => const Padding(
                padding: EdgeInsets.symmetric(horizontal: 4),
                child: Text(
                  ':',
                  style: TextStyle(
                    fontSize: 24,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              ),
            ),
            const SizedBox(height: 32),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                ElevatedButton(
                  onPressed: _controller.resume,
                  child: const Text('Resume'),
                ),
                ElevatedButton(
                  onPressed: _controller.pause,
                  child: const Text('Pause'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
2
likes
145
points
54
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter countdown timer widget with smooth animations, customizable duration, styles, and effects. Perfect for flash sales, events, quizzes, and more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on chrono_countdown