getTodayTextStyle method

TextStyle getTodayTextStyle({
  1. TodayTextColor color = TodayTextColor.eerieBlack,
  2. Color? rawColor,
  3. TextDecoration? decoration,
  4. TextDecorationStyle? decorationStyle,
  5. TextBaseline? textBaseline,
})

Get TextStyle from TodayTextStyle

Implementation

TextStyle getTodayTextStyle({
  TodayTextColor color = TodayTextColor.eerieBlack,
  Color? rawColor,
  TextDecoration? decoration,
  TextDecorationStyle? decorationStyle,
  TextBaseline? textBaseline,
}) {
  TextStyle effectiveTextStyle = TextStyle(
    fontFamily: 'Inter',
    fontStyle: FontStyle.normal,
    fontWeight: FontWeight.w300, // Original w400
    fontSize: 14,
    height: 20 / 14,
    leadingDistribution: TextLeadingDistribution.even,
    letterSpacing: -0.09,
    color: rawColor ?? color.color,
    decoration: decoration,
    decorationStyle: decorationStyle,
    textBaseline: textBaseline,
    package: 'today_design_system',
  );

  switch (this) {
    case TodayTextStyle.tdsFontXLargeHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 24,
          height: 32 / 24,
          letterSpacing: -0.47,
        ),
      );
      break;
    case TodayTextStyle.tdsFontXLargePlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 24,
          height: 32 / 24,
          letterSpacing: -0.47,
        ),
      );
      break;
    case TodayTextStyle.tdsFontLargeHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 20,
          height: 28 / 20,
          letterSpacing: -0.33,
        ),
      );
      break;
    case TodayTextStyle.tdsFontLargePlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 20,
          height: 28 / 20,
          letterSpacing: -0.33,
        ),
      );
      break;
    case TodayTextStyle.tdsFontMediumHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 16,
          height: 24 / 16,
          letterSpacing: -0.18,
        ),
      );
      break;
    case TodayTextStyle.tdsFontMediumPlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 16,
          height: 24 / 16,
          letterSpacing: -0.18,
        ),
      );
      break;
    case TodayTextStyle.tdsFontMedium:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontSize: 16,
          height: 24 / 16,
          letterSpacing: -0.18,
        ),
      );
      break;
    case TodayTextStyle.tdsFontRegularHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 14,
          height: 20 / 14,
          letterSpacing: -0.09,
        ),
      );
      break;
    case TodayTextStyle.tdsFontRegularPlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 14,
          height: 20 / 14,
          letterSpacing: -0.09,
        ),
      );
      break;
    case TodayTextStyle.tdsFontRegular:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontSize: 14,
          height: 20 / 14,
          letterSpacing: -0.09,
        ),
      );
      break;
    case TodayTextStyle.tdsFontSmallHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 12,
          height: 16 / 12,
          letterSpacing: 0.01,
        ),
      );
      break;
    case TodayTextStyle.tdsFontSmallPlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 12,
          height: 16 / 12,
          letterSpacing: 0.01,
        ),
      );
      break;
    case TodayTextStyle.tdsFontSmall:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontSize: 12,
          height: 16 / 12,
          letterSpacing: 0.01,
        ),
      );
      break;
    case TodayTextStyle.tdsFontMiniHeavy:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w500, // Original w600
          fontSize: 11,
          height: 12 / 11,
          letterSpacing: 0.05,
        ),
      );
      break;
    case TodayTextStyle.tdsFontMiniPlus:
      effectiveTextStyle = effectiveTextStyle.merge(
        const TextStyle(
          fontWeight: FontWeight.w400, // Original w500
          fontSize: 11,
          height: 12 / 11,
          letterSpacing: 0.05,
        ),
      );
      break;
    default:
      break;
  }

  return effectiveTextStyle;
}