glassmorphic static method
Glass morphism theme
Implementation
static EnhancedLocationTheme glassmorphic([BuildContext? context]) {
return EnhancedLocationTheme(
// Input styling
inputTextStyle: const TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w400),
inputHintStyle: TextStyle(fontSize: 16, color: Colors.white.withValues(alpha: 0.6)),
inputPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
inputBorderRadius: BorderRadius.circular(20),
inputBorderWidth: 1,
inputBorderColor: Colors.white.withValues(alpha: 0.2),
inputFocusedBorderColor: Colors.white.withValues(alpha: 0.4),
inputErrorBorderColor: Colors.red.withValues(alpha: 0.6),
inputFillColor: Colors.white.withValues(alpha: 0.1),
inputFilled: true,
// Dropdown styling
dropdownBackgroundColor: Colors.white.withValues(alpha: 0.15),
dropdownHoverColor: Colors.white.withValues(alpha: 0.1),
dropdownSelectedColor: Colors.white.withValues(alpha: 0.2),
dropdownBorderRadius: BorderRadius.circular(15),
dropdownElevation: 0,
dropdownPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
dropdownMaxHeight: 300,
// Text styling
primaryTextStyle: const TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w400),
secondaryTextStyle: TextStyle(fontSize: 14, color: Colors.white.withValues(alpha: 0.7)),
hintTextStyle: TextStyle(fontSize: 16, color: Colors.white.withValues(alpha: 0.6)),
errorTextStyle: TextStyle(fontSize: 12, color: Colors.red.withValues(alpha: 0.8)),
labelTextStyle: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500, color: Colors.white),
// Icon styling
iconColor: Colors.white.withValues(alpha: 0.7),
primaryIconColor: Colors.white,
iconSize: 20,
smallIconSize: 16,
largeIconSize: 24,
// Colors
primaryColor: Colors.white,
backgroundColor: Colors.transparent,
surfaceColor: Colors.white.withValues(alpha: 0.1),
errorColor: Colors.red.withValues(alpha: 0.8),
dividerColor: Colors.white.withValues(alpha: 0.1),
// Spacing
defaultPadding: const EdgeInsets.all(20),
compactPadding: const EdgeInsets.all(12),
expansivePadding: const EdgeInsets.all(28),
defaultSpacing: 20,
compactSpacing: 12,
expansiveSpacing: 28,
defaultBorderRadius: BorderRadius.circular(20),
// Animation
animationDuration: const Duration(milliseconds: 250),
animationCurve: Curves.easeInOutCubic,
// Interaction
debounceDelay: const Duration(milliseconds: 300),
);
}