snapToMultiple function

double snapToMultiple(
  1. double value,
  2. double step, {
  3. double base = 0,
})

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;
}