Linearly interpolate between two border sides.
Source
static BorderSide lerp(BorderSide a, BorderSide b, double t) { assert(a != null); assert(b != null); if (t == 0.0) return a; if (t == 1.0) return b; if (a.style == b.style) { return new BorderSide( color: Color.lerp(a.color, b.color, t), width: ui.lerpDouble(a.width, b.width, t), style: a.style // == b.style ); } Color colorA, colorB; switch (a.style) { case BorderStyle.solid: colorA = a.color; break; case BorderStyle.none: colorA = a.color.withAlpha(0x00); break; } switch (b.style) { case BorderStyle.solid: colorB = b.color; break; case BorderStyle.none: colorB = b.color.withAlpha(0x00); break; } return new BorderSide( color: Color.lerp(colorA, colorB, t), width: ui.lerpDouble(a.width, b.width, t), style: BorderStyle.solid ); }