themeData property

ThemeData get themeData

Convert TTheme to ThemeData with Correct Brightness

Implementation

ThemeData get themeData => ThemeData(
  brightness: this == TTheme.darkTheme ? Brightness.dark : Brightness.light,
  primaryColor: primary,
  scaffoldBackgroundColor: background,
  fontFamily: fontFamily,
  colorScheme: ColorScheme(
    brightness: this == TTheme.darkTheme ? Brightness.dark : Brightness.light,
    primary: primary,
    onPrimary: primaryForeground,
    secondary: secondary,
    onSecondary: secondaryForeground,
    surface: background,
    onSurface: foreground,
    error: destructive,
    onError: destructiveForeground,
  ),
  textTheme: TextTheme(
    bodyLarge: TextStyle(color: foreground),
    bodyMedium: TextStyle(color: foreground),
    bodySmall: TextStyle(color: mutedForeground),
  ),
  cardColor: card,
  dividerColor: border,
  inputDecorationTheme: InputDecorationTheme(
    fillColor: input,
    border: OutlineInputBorder(borderSide: BorderSide(color: border)),
  ),
  elevatedButtonTheme: ElevatedButtonThemeData(
    style: ButtonStyle(
      backgroundColor: WidgetStateProperty.resolveWith((states) {
        if (states.contains(WidgetState.pressed)) return primaryPressed;
        return primary;
      }),
      foregroundColor: WidgetStateProperty.all(primaryForeground),
    ),
  ),
  dialogTheme: DialogTheme(backgroundColor: popover),
);