material static method

EnhancedLocationTheme material([
  1. BuildContext? context
])

Default Material Design theme

Implementation

static EnhancedLocationTheme material([BuildContext? context]) {
  final theme = context != null ? Theme.of(context) : ThemeData();

  return EnhancedLocationTheme(
    // Input styling
    inputTextStyle: theme.textTheme.bodyLarge,
    inputHintStyle: theme.textTheme.bodyLarge?.copyWith(color: Colors.grey[600]),
    inputPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
    inputBorderRadius: BorderRadius.circular(4),
    inputBorderWidth: 1,
    inputBorderColor: Colors.grey[400],
    inputFocusedBorderColor: theme.primaryColor,
    inputErrorBorderColor: theme.colorScheme.error,
    inputFillColor: theme.cardColor,
    inputFilled: false,

    // Dropdown styling
    dropdownBackgroundColor: theme.cardColor,
    dropdownHoverColor: theme.primaryColor.withValues(alpha: 0.08),
    dropdownSelectedColor: theme.primaryColor.withValues(alpha: 0.12),
    dropdownBorderRadius: BorderRadius.circular(4),
    dropdownElevation: 8,
    dropdownPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
    dropdownMaxHeight: 300,

    // Text styling
    primaryTextStyle: theme.textTheme.bodyLarge,
    secondaryTextStyle: theme.textTheme.bodyMedium?.copyWith(color: Colors.grey[600]),
    hintTextStyle: theme.textTheme.bodyMedium?.copyWith(color: Colors.grey[600]),
    errorTextStyle: theme.textTheme.bodySmall?.copyWith(color: theme.colorScheme.error),
    labelTextStyle: theme.textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.w600),

    // Icon styling
    iconColor: Colors.grey[600],
    primaryIconColor: theme.primaryColor,
    iconSize: 20,
    smallIconSize: 16,
    largeIconSize: 24,

    // Colors
    primaryColor: theme.primaryColor,
    secondaryColor: theme.colorScheme.secondary,
    backgroundColor: theme.scaffoldBackgroundColor,
    surfaceColor: theme.cardColor,
    errorColor: theme.colorScheme.error,
    dividerColor: Colors.grey[300],

    // Spacing
    defaultPadding: const EdgeInsets.all(16),
    compactPadding: const EdgeInsets.all(8),
    expansivePadding: const EdgeInsets.all(24),
    defaultSpacing: 16,
    compactSpacing: 8,
    expansiveSpacing: 24,
    defaultBorderRadius: BorderRadius.circular(4),

    // Animation
    animationDuration: const Duration(milliseconds: 200),
    fastAnimationDuration: const Duration(milliseconds: 100),
    slowAnimationDuration: const Duration(milliseconds: 300),
    animationCurve: Curves.easeInOut,

    // Interaction
    debounceDelay: const Duration(milliseconds: 300),
    fastDebounceDelay: const Duration(milliseconds: 150),
    slowDebounceDelay: const Duration(milliseconds: 500),
  );
}