asGlass method

ClipRRect asGlass({
  1. double blurX = 10.0,
  2. double blurY = 10.0,
  3. Color tintColor = Colors.white,
  4. bool frosted = true,
  5. BorderRadius clipBorderRadius = BorderRadius.zero,
  6. Clip clipBehaviour = Clip.antiAlias,
  7. TileMode tileMode = TileMode.clamp,
  8. CustomClipper<RRect>? clipper,
})

Implementation

ClipRRect asGlass({
  double blurX = 10.0,
  double blurY = 10.0,
  Color tintColor = Colors.white,
  bool frosted = true,
  BorderRadius clipBorderRadius = BorderRadius.zero,
  Clip clipBehaviour = Clip.antiAlias,
  TileMode tileMode = TileMode.clamp,
  CustomClipper<RRect>? clipper,
}) {
  return ClipRRect(
    clipper: clipper,
    clipBehavior: clipBehaviour,
    borderRadius: clipBorderRadius,
    child: BackdropFilter(
      filter: ImageFilter.blur(
        sigmaX: blurX,
        sigmaY: blurY,
        tileMode: tileMode,
      ),
      child: Container(
        decoration: BoxDecoration(
          gradient: (tintColor != Colors.transparent)
              ? LinearGradient(
                  begin: Alignment.topLeft,
                  end: Alignment.bottomRight,
                  colors: [
                    tintColor.withAlpha(25),
                    tintColor.withAlpha(20),
                  ],
                )
              : null,
          image: frosted
              ? const DecorationImage(
                  image: AssetImage('images/noise.png', package: 'nsg_controls'),
                  fit: BoxFit.cover,
                )
              : null,
        ),
        child: this,
      ),
    ),
  );
}