// Author: fruit.com.cn import 'dart:ui'; import 'package:flutter/material.dart'; import '../theme/app_colors.dart'; import '../theme/app_dimens.dart'; /// 首页信息卡与浮层控件使用的浅色玻璃面板。 class GlassPanel extends StatelessWidget { const GlassPanel({ super.key, required this.child, this.radius = AppDimens.glassRadius, this.blur = 10, this.padding, this.borderColor = AppColors.glassBorder, this.gradient, }); final Widget child; final double radius; final double blur; final EdgeInsetsGeometry? padding; final Color borderColor; final Gradient? gradient; @override Widget build(BuildContext context) { final borderRadius = BorderRadius.circular(radius); final surface = DecoratedBox( decoration: BoxDecoration( borderRadius: borderRadius, border: Border.all(color: borderColor), gradient: gradient ?? const LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [Color(0xE6FFFFFF), Color(0xB3FFFDFB)], ), ), child: Padding(padding: padding ?? EdgeInsets.zero, child: child), ); return ClipRRect( borderRadius: borderRadius, child: BackdropFilter( filter: ImageFilter.blur(sigmaX: blur, sigmaY: blur), child: surface, ), ); } }