ThemeData lerp(ThemeData begin, ThemeData end, double t)

Linearly interpolate between two themes.

Source

static ThemeData lerp(ThemeData begin, ThemeData end, double t) {
  return new ThemeData.raw(
    brightness: t < 0.5 ? begin.brightness : end.brightness,
    primaryColor: Color.lerp(begin.primaryColor, end.primaryColor, t),
    primaryColorBrightness: t < 0.5 ? begin.primaryColorBrightness : end.primaryColorBrightness,
    canvasColor: Color.lerp(begin.canvasColor, end.canvasColor, t),
    scaffoldBackgroundColor: Color.lerp(begin.scaffoldBackgroundColor, end.scaffoldBackgroundColor, t),
    cardColor: Color.lerp(begin.cardColor, end.cardColor, t),
    dividerColor: Color.lerp(begin.dividerColor, end.dividerColor, t),
    highlightColor: Color.lerp(begin.highlightColor, end.highlightColor, t),
    splashColor: Color.lerp(begin.splashColor, end.splashColor, t),
    selectedRowColor: Color.lerp(begin.selectedRowColor, end.selectedRowColor, t),
    unselectedWidgetColor: Color.lerp(begin.unselectedWidgetColor, end.unselectedWidgetColor, t),
    disabledColor: Color.lerp(begin.disabledColor, end.disabledColor, t),
    buttonColor: Color.lerp(begin.buttonColor, end.buttonColor, t),
    secondaryHeaderColor: Color.lerp(begin.secondaryHeaderColor, end.secondaryHeaderColor, t),
    textSelectionColor: Color.lerp(begin.textSelectionColor, end.textSelectionColor, t),
    textSelectionHandleColor: Color.lerp(begin.textSelectionHandleColor, end.textSelectionHandleColor, t),
    backgroundColor: Color.lerp(begin.backgroundColor, end.backgroundColor, t),
    accentColor: Color.lerp(begin.accentColor, end.accentColor, t),
    accentColorBrightness: t < 0.5 ? begin.accentColorBrightness : end.accentColorBrightness,
    indicatorColor: Color.lerp(begin.indicatorColor, end.indicatorColor, t),
    hintColor: Color.lerp(begin.hintColor, end.hintColor, t),
    errorColor: Color.lerp(begin.errorColor, end.errorColor, t),
    textTheme: TextTheme.lerp(begin.textTheme, end.textTheme, t),
    primaryTextTheme: TextTheme.lerp(begin.primaryTextTheme, end.primaryTextTheme, t),
    accentTextTheme: TextTheme.lerp(begin.accentTextTheme, end.accentTextTheme, t),
    iconTheme: IconThemeData.lerp(begin.iconTheme, end.iconTheme, t),
    primaryIconTheme: IconThemeData.lerp(begin.primaryIconTheme, end.primaryIconTheme, t),
    accentIconTheme: IconThemeData.lerp(begin.accentIconTheme, end.accentIconTheme, t),
    platform: t < 0.5 ? begin.platform : end.platform
  );
}