2025-03-18 13:10:17 +05:30

179 lines
4.1 KiB
Dart

import 'package:flutter/material.dart';
class AppwriteIcon extends StatelessWidget {
final double size;
final Color color;
const AppwriteIcon({
super.key,
this.size = 40,
this.color = const Color(0xFFFD366E),
});
@override
Widget build(BuildContext context) {
return SizedBox(
width: size,
height: size * (105 / 112),
child: CustomPaint(
painter: _AppwriteIconPainter(color),
),
);
}
}
class _AppwriteIconPainter extends CustomPainter {
final Color color;
_AppwriteIconPainter(this.color);
@override
void paint(Canvas canvas, Size size) {
final paint = Paint()
..color = color
..style = PaintingStyle.fill;
final path1 = Path()
..moveTo(size.width * 0.992, size.height * 0.75)
..lineTo(size.width * 0.992, size.height)
..lineTo(size.width * 0.436, size.height)
..cubicTo(
size.width * 0.274,
size.height,
size.width * 0.133,
size.height * 0.9,
size.width * 0.058,
size.height * 0.75,
)
..cubicTo(
size.width * 0.047,
size.height * 0.72,
size.width * 0.037,
size.height * 0.69,
size.width * 0.029,
size.height * 0.66,
)
..cubicTo(
size.width * 0.013,
size.height * 0.62,
size.width * 0.004,
size.height * 0.58,
0,
size.height * 0.53,
)
..lineTo(0, size.height * 0.47)
..cubicTo(
0.001,
size.height * 0.46,
0.002,
size.height * 0.44,
0.003,
size.height * 0.43,
)
..cubicTo(
0.006,
size.height * 0.41,
0.01,
size.height * 0.39,
0.014,
size.height * 0.36,
)
..cubicTo(
size.width * 0.067,
size.height * 0.15,
size.width * 0.236,
0,
size.width * 0.436,
0,
)
..cubicTo(
size.width * 0.637,
0,
size.width * 0.805,
size.height * 0.15,
size.width * 0.857,
size.height * 0.36,
)
..lineTo(size.width * 0.62, size.height * 0.36)
..cubicTo(
size.width * 0.58,
size.height * 0.3,
size.width * 0.514,
size.height * 0.25,
size.width * 0.436,
size.height * 0.25,
)
..cubicTo(
size.width * 0.357,
size.height * 0.25,
size.width * 0.29,
size.height * 0.3,
size.width * 0.251,
size.height * 0.36,
)
..cubicTo(
size.width * 0.241,
size.height * 0.38,
size.width * 0.232,
size.height * 0.41,
size.width * 0.227,
size.height * 0.43,
)
..cubicTo(
size.width * 0.221,
size.height * 0.45,
size.width * 0.218,
size.height * 0.47,
size.width * 0.218,
size.height * 0.5,
)
..cubicTo(
size.width * 0.218,
size.height * 0.57,
size.width * 0.244,
size.height * 0.63,
size.width * 0.277,
size.height * 0.66,
)
..cubicTo(
size.width * 0.316,
size.height * 0.71,
size.width * 0.374,
size.height * 0.75,
size.width * 0.436,
size.height * 0.75,
)
..lineTo(size.width * 0.992, size.height * 0.75)
..close();
final path2 = Path()
..moveTo(size.width * 0.992, size.height * 0.43)
..lineTo(size.width * 0.992, size.height * 0.66)
..lineTo(size.width * 0.586, size.height * 0.66)
..cubicTo(
size.width * 0.63,
size.height * 0.63,
size.width * 0.654,
size.height * 0.57,
size.width * 0.654,
size.height * 0.5,
)
..cubicTo(
size.width * 0.654,
size.height * 0.47,
size.width * 0.651,
size.height * 0.45,
size.width * 0.646,
size.height * 0.43,
)
..lineTo(size.width * 0.992, size.height * 0.43)
..close();
canvas.drawPath(path1, paint);
canvas.drawPath(path2, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}