themeData function
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),
),
);
}