
I built my first Flutter package: flutter_timer_button — a timed/progress button with an animated fill indicator
Hey ,
Just published my first package on pub.dev and wanted to share: **flutter_timer_button**.
Most "disable button + countdown" widgets just gray the button out and show a number. This one also animates a fill indicator across the button so you can *see* the progress or time elapsed, not just read it — useful for OTP resend cooldowns, rate-limited actions, or sync/upload/download progress.
Highlights:
- `TimerButton.countdown(...)` — classic OTP-resend pattern, disables + shows "Resend in Ns" until it completes
- `TimerButton.progress(...)` — drive it manually via `TimerButtonController.setProgress()` from any async callback (network, stream, isolate)
- `TimerButtonStyle.filled/outlined/dark` presets, or fully custom via `copyWith`
- Custom label builders, leading/trailing icons, configurable behavior flags (autoStart, disableWhileRunning, etc.)
pub.dev: https://pub.dev/packages/flutter_timer_button
GitHub: https://github.com/BilalFali/flutter_timer_button
It's a 0.1.1 release, so feedback/issues/PRs very welcome — especially on the API shape, since it's easier to fix now than after wider adoption.