openBaseExpansion<T> function

Future<T?> openBaseExpansion<T>(
  1. BuildContext context,
  2. BaseExpansion baseExpansion, {
  3. Duration? transitionDuration,
  4. bool enableBarrierBlur = true,
})

Enhanced BaseExpansion helper functions with Material 3 and Liquid Glass support Open expansion panel with modern page route and enhanced transitions

Implementation

/// Open expansion panel with modern page route and enhanced transitions
Future<T?> openBaseExpansion<T>(
  BuildContext context,
  BaseExpansion baseExpansion, {
  Duration? transitionDuration,
  bool enableBarrierBlur = true,
}) {
  final duration = transitionDuration ?? const Duration(milliseconds: 150);

  return Navigator.of(context).push<T>(
    PageRouteBuilder<T>(
      opaque: false,
      transitionDuration: duration,
      reverseTransitionDuration: duration,
      barrierDismissible: baseExpansion.barrierDismissible,
      barrierColor: enableBarrierBlur
          ? Colors.black.withOpacity(0.1)
          : Colors.transparent,
      pageBuilder: (
        BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation,
      ) {
        return FadeTransition(
          opacity: animation,
          child: baseExpansion,
        );
      },
      transitionsBuilder: (
        BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation,
        Widget child,
      ) {
        // Enhanced transition with scale and fade for modern feel
        return FadeTransition(
          opacity: animation,
          child: ScaleTransition(
            scale: Tween<double>(begin: 0.95, end: 1.0).animate(
              CurvedAnimation(
                parent: animation,
                curve: Curves.easeOutCubic,
              ),
            ),
            child: child,
          ),
        );
      },
    ),
  );
}