getTextStyle method
Implementation
TextStyle? getTextStyle(Map? spec) {
if (spec == null || spec.isEmpty) {
return null;
}
TextStyle? textStyle;
final baseStyle = spec["base"] ?? "";
switch (baseStyle) {
case "headlineLarge":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.headlineLarge;
break;
case "headlineMedium":
textStyle =
Theme.of(Lowder.widgets.appContext).textTheme.headlineMedium;
break;
case "headlineSmall":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.headlineSmall;
break;
case "titleLarge":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.titleLarge;
break;
case "titleMedium":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.titleMedium;
break;
case "titleSmall":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.titleSmall;
break;
case "labelLarge":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.labelLarge;
break;
case "labelMedium":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.labelMedium;
break;
case "labelSmall":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.labelSmall;
break;
case "bodyLarge":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.bodyLarge;
break;
case "bodyMedium":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.bodyMedium;
break;
case "bodySmall":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.bodySmall;
break;
case "displayLarge":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.displayLarge;
break;
case "displayMedium":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.displayMedium;
break;
case "displaySmall":
textStyle = Theme.of(Lowder.widgets.appContext).textTheme.displaySmall;
break;
}
textStyle ??= TextStyle();
return textStyle.copyWith(
fontFamily: spec["fontFamily"],
fontSize: tryParseDouble(spec["fontSize"]),
fontWeight: getFontWeight(spec["fontWeight"]),
fontStyle: getFontStyle(spec["fontStyle"]),
height: tryParseDouble(spec["height"]),
wordSpacing: tryParseDouble(spec["wordSpacing"]),
letterSpacing: tryParseDouble(spec["letterSpacing"]),
overflow: Lowder.properties.build("TextOverflow", spec["overflow"]),
color: tryParseColor(spec["color"]),
backgroundColor: tryParseColor(spec["backgroundColor"]),
decoration: getTextDecoration(spec["decoration"]),
);
}