themeData function

ThemeData themeData(
  1. BuildContext context,
  2. String fontFamily
)

Implementation

ThemeData themeData(BuildContext context, String fontFamily) {
  return ThemeData(
    fontFamily: fontFamily,
    scaffoldBackgroundColor: MyColors.xFFFFFFFF,
    textTheme: TextTheme(
      // Text 기본 스타일
      bodyMedium: MyTextStyle.size12.w500.xFF000000,
      // Text Field 기본 스타일
      bodyLarge: MyTextStyle.size12.w500.xFF000000,
    ),
    inputDecorationTheme: InputDecorationTheme(
      hintStyle: MyTextStyle.size12.w500.xFFA3A3A3,
      errorStyle: MyTextStyle.size12.w500.xFFFF5252,
      helperStyle: MyTextStyle.size12.w500.xFFA3A3A3,
      isDense: true,
      // 높이 40기준
      contentPadding: const EdgeInsets.symmetric(vertical: 14.5, horizontal: 16),
      fillColor: MyColors.xFFF7F7F7,
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        backgroundColor: MyColors.xFF000000,
        foregroundColor: MyColors.xFFFFFFFF,
        disabledForegroundColor: MyColors.xFFFFFFFF,
        textStyle: MyTextStyle.size14.w500.copyWith(fontFamily: fontFamily),
        // 높이 40기준
        padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 24),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(5),
        ),
      ),
    ),
    outlinedButtonTheme: OutlinedButtonThemeData(
      style: OutlinedButton.styleFrom(
        foregroundColor: MyColors.xFF000000,
        textStyle: MyTextStyle.size14.w500.copyWith(fontFamily: fontFamily),
        side: const BorderSide(width: 1.0, color: MyColors.xFFE2E8F0),
        // 높이 40기준
        padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 24),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(5),
        ),
      ),
    ),
    textButtonTheme: TextButtonThemeData(
      style: TextButton.styleFrom(
        foregroundColor: MyColors.xFF000000,
        textStyle: MyTextStyle.size14.w500.copyWith(fontFamily: fontFamily),
        // 높이 40기준
        padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 24),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(5),
        ),
      ),
    ),
    iconTheme: const IconThemeData(size: 18),
    tooltipTheme: TooltipThemeData(
      verticalOffset: 25,
      textStyle: MyTextStyle.size12.w500.xFFFFFFFF,
      decoration: const ShapeDecoration(
        color: Colors.black,
        shape: ToolTipCustomShape(),
      ),
    ),
    dialogTheme: const DialogTheme(elevation: 0),
    scrollbarTheme: ScrollbarThemeData(
      thumbVisibility: MaterialStateProperty.all<bool>(true),
    ),
    timePickerTheme: TimePickerThemeData(
      backgroundColor: MyColors.xFFFFFFFF,
      elevation: 0,
      dayPeriodColor:
          MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? MyColors.xFF92A6FF : MyColors.xFFFFFFFF),
      dayPeriodTextColor:
          MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? MyColors.xFFFFFFFF : MyColors.xFF000000),
      hourMinuteColor:
          MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? MyColors.xFF6682FF : MyColors.xFF92A6FF),
      hourMinuteTextColor:
          MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? MyColors.xFFFFFFFF : MyColors.xFFFFFFFF),
    ),
  );
}