uLightTheme method

ThemeData uLightTheme(
  1. UThemeData data
)

Implementation

ThemeData uLightTheme(UThemeData data) => ThemeData(
      disabledColor: data.disabledColor,
      fontFamily: data.fontFamily,
      highlightColor: Colors.green,
      colorScheme: ColorScheme.fromSeed(
        seedColor: data.primaryColor,
        primary: data.primaryColor,
        secondary: data.secondaryColor,
        error: data.errorColor,
        surface: data.surface,
        surfaceContainer: data.surfaceContainer,
      ),
      cardTheme: CardThemeData(
        elevation: data.cardElevation,
        shadowColor: data.primaryColor.withValues(alpha: 0.2),
        color: data.cardColor,
        clipBehavior: Clip.antiAlias,
      ),
      tabBarTheme: TabBarThemeData(
        indicatorSize: TabBarIndicatorSize.tab,
        labelStyle: TextStyle(fontFamily: data.fontFamily, fontSize: 18),
        labelPadding: const EdgeInsets.symmetric(vertical: 12),
        unselectedLabelStyle: TextStyle(fontFamily: data.fontFamily, fontSize: 18),
      ),
      elevatedButtonTheme: ElevatedButtonThemeData(
        style: ButtonStyle(
          foregroundColor: const WidgetStatePropertyAll<Color>(Colors.white),
          textStyle: WidgetStatePropertyAll<TextStyle>(
            TextStyle(fontFamily: data.fontFamily, color: Colors.white, fontSize: 16),
          ),
          shape: WidgetStatePropertyAll<OutlinedBorder>(
            RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
          ),
          padding: const WidgetStatePropertyAll<EdgeInsets>(
            EdgeInsets.symmetric(vertical: 12, horizontal: 8),
          ),
          backgroundColor: WidgetStateProperty.resolveWith((
            final Set<WidgetState> states,
          ) {
            if (states.contains(WidgetState.disabled)) {
              return data.disabledColor;
            } else {
              return data.secondaryColor;
            }
          }),
        ),
      ),
      outlinedButtonTheme: OutlinedButtonThemeData(
        style: ButtonStyle(
          shape: WidgetStatePropertyAll<OutlinedBorder>(
            RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
          ),
          padding: const WidgetStatePropertyAll<EdgeInsets>(
            EdgeInsets.symmetric(vertical: 12, horizontal: 8),
          ),
        ),
      ),
      drawerTheme: DrawerThemeData(
        shape: Border.all(color: Colors.transparent, width: 0.1),
      ),
      listTileTheme: const ListTileThemeData(contentPadding: EdgeInsets.zero),
      inputDecorationTheme: InputDecorationTheme(
        border: OutlineInputBorder(
          borderRadius: BorderRadius.circular(16),
          borderSide: BorderSide(color: data.primaryColor),
        ),
        enabledBorder: OutlineInputBorder(
          borderRadius: BorderRadius.circular(16),
          borderSide: BorderSide(color: data.disabledColor.withValues(alpha: 0.5)),
        ),
        labelStyle: TextStyle(fontFamily: data.fontFamily, color: data.disabledColor),
        filled: true,
        fillColor: Colors.white,
        contentPadding: const EdgeInsets.symmetric(vertical: 16, horizontal: 12),
      ),
      scrollbarTheme: ScrollbarThemeData(
        thumbColor: WidgetStateProperty.all(data.primaryColor),
      ),
      navigationRailTheme: NavigationRailThemeData(
        unselectedLabelTextStyle: TextStyle(
          fontFamily: data.fontFamily,
          fontSize: 20,
          fontWeight: FontWeight.bold,
          color: Colors.white60,
        ),
        selectedLabelTextStyle: TextStyle(
          fontFamily: data.fontFamily,
          fontSize: 20,
          fontWeight: FontWeight.bold,
          color: Colors.white,
        ),
        selectedIconTheme: const IconThemeData(color: Colors.black),
        unselectedIconTheme: const IconThemeData(color: Colors.white60),
        backgroundColor: data.primaryColor,
        indicatorColor: Colors.white,
      ),
    );