animated_number_flow 0.1.0
animated_number_flow: ^0.1.0 copied to clipboard
A per-digit animated number ticker for Flutter. Only the digits that change roll, up for increases and down for decreases, with locale-free formatting.
animated_number_flow #
A per-digit animated number ticker for Flutter - only the digits that change move, and they roll up when the value increases, down when it decreases. Locale-free formatting, configurable animation, prefix/suffix friendly.

Features #
- Per-digit roll: only the characters that actually changed move.
- Direction-aware: digits roll up on increase, down on decrease.
- Locale-free thousands grouping and fixed decimal places out of the box.
- Bring-your-own
formatfor currency, percentages, units, prefixes or suffixes. - Configurable
durationandcurve; standardTextStyleandcolor. - Right-aligned slots: a growing number inserts a new leading character instead of re-rolling the existing leading digit.
Getting started #
Add the dependency:
dependencies:
animated_number_flow: ^0.1.0
Import it:
import 'package:animated_number_flow/animated_number_flow.dart';
Usage #
NumberFlow(
value: score,
format: NumberFlowDefaults.thousandsLong(),
)
Every value change animates only the digits that actually changed.
Price with two decimal places #
NumberFlow(
value: price,
format: NumberFlowDefaults.thousands(decimalPlaces: 2),
textStyle: Theme.of(context).textTheme.displaySmall,
)
Custom format #
NumberFlow(
value: balance,
format: (v) => '\$' + NumberFlowDefaults.thousands(decimalPlaces: 2)(v),
)
Custom animation #
NumberFlow(
value: score,
duration: const Duration(milliseconds: 600),
curve: Curves.easeOutCubic,
)
Formatting helpers #
NumberFlowDefaults provides thousands(...), thousandsLong(...), plainDouble and
plainLong. The pure functions formatWithThousands(...) and groupThousands(...) are exported
too, so you can reuse them without the widget.
A note on growing numbers #
Slots are keyed by their distance from the right edge of the string. When a number grows (for
example 99 to 100), the existing trailing digits stay put and a fresh leading character rolls
in on the left, rather than the leading digit visibly changing. This differs intentionally from a
strict left-index ticker.
Other platforms #
The same number ticker is available for other platforms:
- Compose Multiplatform (original): number-flow
- React Native: react-native-number-flow
License #
Licensed under the Apache License, Version 2.0. See LICENSE.
