Implementation
ShadTextTheme apply({
String? family,
List<String>? fontFamilyFallback,
String? package,
double fontSizeFactor = 1.0,
double fontSizeDelta = 0.0,
Color? displayColor,
Color? bodyColor,
Color? decorationColor,
TextDecoration? decoration,
TextDecorationStyle? decorationStyle,
}) {
final effectiveFamily = family ?? this.family;
return ShadTextTheme.custom(
canMerge: canMerge,
family: effectiveFamily,
h1Large: h1Large.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
h1: h1.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
h2: h2.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
h3: h3.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
h4: h4.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: displayColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
p: p.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
blockquote: blockquote.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
table: table.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
list: list.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
lead: lead.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
large: large.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
color: bodyColor,
),
small: small.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
color: bodyColor,
),
muted: muted.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
googleFontBuilder: googleFontBuilder,
custom: {
for (final entry in custom.entries)
entry.key: entry.value.apply(
fontFamily: effectiveFamily,
fontFamilyFallback: fontFamilyFallback,
package: package,
fontSizeFactor: fontSizeFactor,
fontSizeDelta: fontSizeDelta,
color: bodyColor,
decoration: decoration,
decorationColor: decorationColor,
decorationStyle: decorationStyle,
),
},
);
}