vibrant static method
Vibrant colorful theme
Implementation
static EnhancedLocationTheme vibrant([BuildContext? context]) {
return EnhancedLocationTheme(
// Input styling
inputTextStyle: const TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500),
inputHintStyle: TextStyle(fontSize: 16, color: Colors.white.withValues(alpha: 0.7)),
inputPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
inputBorderRadius: BorderRadius.circular(25),
inputBorderWidth: 2,
inputBorderColor: Colors.transparent,
inputFocusedBorderColor: Colors.white,
inputErrorBorderColor: Colors.orange,
inputFillColor: Colors.deepPurple.withValues(alpha: 0.8),
inputFilled: true,
// Dropdown styling
dropdownBackgroundColor: Colors.deepPurple[700],
dropdownHoverColor: Colors.deepPurple[600],
dropdownSelectedColor: Colors.deepPurple[500],
dropdownBorderRadius: BorderRadius.circular(15),
dropdownElevation: 12,
dropdownPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
dropdownMaxHeight: 320,
// Text styling
primaryTextStyle: const TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w500),
secondaryTextStyle: TextStyle(fontSize: 14, color: Colors.white.withValues(alpha: 0.8)),
hintTextStyle: TextStyle(fontSize: 16, color: Colors.white.withValues(alpha: 0.7)),
errorTextStyle: const TextStyle(fontSize: 12, color: Colors.orange),
labelTextStyle: const TextStyle(fontSize: 14, fontWeight: FontWeight.w700, color: Colors.white),
// Icon styling
iconColor: Colors.white.withValues(alpha: 0.8),
primaryIconColor: Colors.white,
iconSize: 22,
smallIconSize: 18,
largeIconSize: 26,
// Colors
primaryColor: Colors.deepPurple,
secondaryColor: Colors.pink,
backgroundColor: LinearGradient(
colors: [Colors.deepPurple, Colors.pink],
) as Color,
surfaceColor: Colors.deepPurple[700],
errorColor: Colors.orange,
successColor: Colors.green,
dividerColor: Colors.white.withValues(alpha: 0.2),
// 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(25),
// Animation
animationDuration: const Duration(milliseconds: 300),
fastAnimationDuration: const Duration(milliseconds: 150),
slowAnimationDuration: const Duration(milliseconds: 450),
animationCurve: Curves.elasticOut,
// Interaction
debounceDelay: const Duration(milliseconds: 250),
);
}