import 'package:flutter/material.dart'; class CustomShapeClipper extends CustomClipper { @override Path getClip(Size size) { final Path path = Path(); path.lineTo(0.0, size.height); var firstEndPoint = Offset(size.width * .5, size.height / 2); var firstControlpoint = Offset(size.width * 0.25, size.height * 0.95 + 30); path.quadraticBezierTo(firstControlpoint.dx, firstControlpoint.dy, firstEndPoint.dx, firstEndPoint.dy); var secondEndPoint = Offset(size.width, size.height * 0.10); var secondControlPoint = Offset(size.width * .75, size.height * .10 - 20); path.quadraticBezierTo(secondControlPoint.dx, secondControlPoint.dy, secondEndPoint.dx, secondEndPoint.dy); path.lineTo(size.width, 0.0); path.close(); return path; } @override bool shouldReclip(CustomClipper oldClipper) => true; }