snapToMultiple function
Snap value to the nearest multiple of step, offset by base. Useful
when a design system uses an even grid (e.g. multiples of 4 px starting
at 0). step must be strictly positive.
Implementation
double snapToMultiple(double value, double step, {double base = 0}) {
if (step <= 0) {
throw ArgumentError.value(step, 'step', 'must be strictly positive');
}
return base + ((value - base) / step).roundToDouble() * step;
}