import 'package:flutter/material.dart'; import 'package:furibase/components/navbar_shape_2.dart'; class NavbarContainer extends StatelessWidget { const NavbarContainer({super.key}); @override Widget build(BuildContext context) { var screen = MediaQuery.of(context).size; return Positioned( child: Container( width: screen.width, height: screen.height, color: const Color.fromARGB(255, 38, 139, 92), child: CustomPaint(child: CustomPaint(painter: MyShape())), ), ); } } class MyShape extends CustomPainter { @override void paint(Canvas canvas, Size size) { // TODO: implement paint Paint paint = new Paint() ..color = const Color.fromARGB(255, 166, 12, 66) ..style = PaintingStyle.fill; Path path = Path(); path.moveTo(20, size.height / 2); // Start at bottom-left // shape curve kiri path.quadraticBezierTo( size.width * 0.04, size.height * 0.7, // Control point size.width * 0.09, // almost half size.height * 0.8, // End point ); path.lineTo(size.width * 0.92, size.height - 20); // Curve kanan bawah path.quadraticBezierTo( size.width * 0.96, size.height * 0.7, // Control point size.width * 0.964, size.height / 2, // End point (bottom-right) ); // curve ujung kanan atas path.quadraticBezierTo( size.width * 0.95, size.height * 0.28, // Control point size.width * 0.91, size.height * 0.23, // End point (bottom-right) ); path.lineTo(size.width / 2 + 80, size.height * 0.23); // ========== // sebelum curve tengah path.quadraticBezierTo( size.width / 2 + 30, 18, size.width / 2 + 10, 5, // End point (bottom-right) ); // ========================================== //========================================== // curve tengah sebelah kanan path.quadraticBezierTo( size.width / 2 - 20, 13, size.width / 2 + 2, size.height * 0.030, ); // sebelah kiri curve path.quadraticBezierTo( (size.width / 2) * 0.92, size.height * 0.189, size.width / 2 - 40, 18, ); // =============================================== // setelah curve tengah path.quadraticBezierTo( size.width / 2 - 30, size.height * 0.188, // Control point size.width / 2 - 80, 20, // End point (bottom-right) ); path.lineTo(size.width * 0.1, 20); path.quadraticBezierTo( 24, size.height * 0.2, // Control point 20, size.height / 2, // End point (bottom-right) ); path.close(); canvas.drawPath(path, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) { // TODO: implement shouldRepaint throw false; } }