createMyoroThemeData function

ThemeData createMyoroThemeData(
  1. MyoroAppColorSchemeBuilder? colorSchemeBuilder,
  2. MyoroAppTextThemeBuilder? textThemeBuilder,
  3. MyoroAppThemeExtensionsBuilder? themeExtensionsBuilder, {
  4. required bool isDarkMode,
})

Function to create the ThemeData for MyoroApp.

ThemeData.colorScheme & ThemeData.textTheme are only created to provide defaults for the default Flutter widgets. ThemeExtensions, MyoroColorDesignSystem, & MyoroTypographyDesignSystem should be used for creating & styling widgets.

Implementation

ThemeData createMyoroThemeData(
  MyoroAppColorSchemeBuilder? colorSchemeBuilder,
  MyoroAppTextThemeBuilder? textThemeBuilder,
  MyoroAppThemeExtensionsBuilder? themeExtensionsBuilder, {
  required bool isDarkMode,
}) {
  final myoroColorScheme = createMyoroColorScheme(isDarkMode);
  final myoroTextTheme = createMyoroTextTheme(isDarkMode);

  final colorScheme = colorSchemeBuilder?.call(myoroColorScheme) ?? myoroColorScheme;
  final textTheme = textThemeBuilder?.call(myoroTextTheme) ?? myoroTextTheme;

  return ThemeData(
    brightness: isDarkMode ? Brightness.dark : Brightness.light,
    colorScheme: colorScheme,
    textTheme: textTheme,
    sliderTheme: createMyoroSliderThemeData(colorScheme),
    tooltipTheme: createMyoroTooltipThemeData(colorScheme, textTheme),
    textSelectionTheme: createMyoroTextSelectionThemeData(colorScheme),
    extensions: [
      ...createMyoroThemeExtensions(isDarkMode, colorScheme, textTheme),
      ...?themeExtensionsBuilder?.call(isDarkMode, colorScheme, textTheme),
    ],
  );
}