BoxShadow lerp(BoxShadow a, BoxShadow b, double t)

Linearly interpolate between two box shadows.

If either box shadow is null, this function linearly interpolates from a a box shadow that matches the other box shadow in color but has a zero offset and a zero blurRadius.

Source

static BoxShadow lerp(BoxShadow a, BoxShadow b, double t) {
  if (a == null && b == null)
    return null;
  if (a == null)
    return b.scale(t);
  if (b == null)
    return a.scale(1.0 - t);
  return new BoxShadow(
    color: Color.lerp(a.color, b.color, t),
    offset: Offset.lerp(a.offset, b.offset, t),
    blurRadius: ui.lerpDouble(a.blurRadius, b.blurRadius, t),
    spreadRadius: ui.lerpDouble(a.spreadRadius, b.spreadRadius, t)
  );
}