TextStyle apply({Color color, String fontFamily, double fontSizeFactor: 1.0, double fontSizeDelta: 0.0, int fontWeightDelta: 0, double letterSpacingFactor: 1.0, double letterSpacingDelta: 0.0, double wordSpacingFactor: 1.0, double wordSpacingDelta: 0.0, double heightFactor: 1.0, double heightDelta: 0.0 })

Creates a copy of this text style but with the numeric fields multiplied by the given factors and then incremented by the given deltas.

For example, style.apply(fontSizeFactor: 2.0, fontSizeDelta: 1.0) would return a TextStyle whose fontSize is style.fontSize * 2.0 + 1.0.

For the fontWeight, the delta is applied to the FontWeight enum index values, so that for instance style.apply(fontWeightDelta: -2) when applied to a style whose fontWeight is FontWeight.w500 will return a TextStyle with a FontWeight.w300.

The arguments must not be null.

If the underlying values are null, then the corresponding factors and/or deltas must not be specified.

The non-numeric fields can be controlled using the corresponding arguments.

Source

TextStyle apply({
  Color color,
  String fontFamily,
  double fontSizeFactor: 1.0,
  double fontSizeDelta: 0.0,
  int fontWeightDelta: 0,
  double letterSpacingFactor: 1.0,
  double letterSpacingDelta: 0.0,
  double wordSpacingFactor: 1.0,
  double wordSpacingDelta: 0.0,
  double heightFactor: 1.0,
  double heightDelta: 0.0,
}) {
  assert(fontSizeFactor != null);
  assert(fontSizeDelta != null);
  assert(fontSize != null || (fontSizeFactor == 1.0 && fontSizeDelta == 0.0));
  assert(fontWeightDelta != null);
  assert(fontWeight != null || fontWeightDelta == 0.0);
  assert(letterSpacingFactor != null);
  assert(letterSpacingDelta != null);
  assert(letterSpacing != null || (letterSpacingFactor == 1.0 && letterSpacingDelta == 0.0));
  assert(wordSpacingFactor != null);
  assert(wordSpacingDelta != null);
  assert(wordSpacing != null || (wordSpacingFactor == 1.0 && wordSpacingDelta == 0.0));
  assert(heightFactor != null);
  assert(heightDelta != null);
  assert(heightFactor != null || (heightFactor == 1.0 && heightDelta == 0.0));
  return new TextStyle(
    inherit: inherit,
    color: color ?? this.color,
    fontFamily: fontFamily ?? this.fontFamily,
    fontSize: fontSize == null ? null : fontSize * fontSizeFactor + fontSizeDelta,
    fontWeight: fontWeight == null ? null : FontWeight.values[(fontWeight.index + fontWeightDelta).clamp(0, FontWeight.values.length - 1)],
    fontStyle: fontStyle,
    letterSpacing: letterSpacing == null ? null : letterSpacing * letterSpacingFactor + letterSpacingDelta,
    wordSpacing: wordSpacing == null ? null : wordSpacing * wordSpacingFactor + wordSpacingDelta,
    textBaseline: textBaseline,
    height: height == null ? null : height * heightFactor + heightDelta,
    decoration: decoration,
    decorationColor: decorationColor,
    decorationStyle: decorationStyle,
  );
}