import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; class ButtonWidget extends StatelessWidget { final String text; final VoidCallback onPressed; final bool? outline; final double? width; const ButtonWidget({super.key, required this.text, required this.onPressed, this.outline, this.width}); @override Widget build(BuildContext context) { return ElevatedButton( style: outline == true ? OutlinedButton.styleFrom( foregroundColor: const Color.fromRGBO(0, 0, 0, 1), backgroundColor: Colors.transparent, side: const BorderSide(color: Color.fromRGBO(198, 133, 232, 1)), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), minimumSize: Size(MediaQuery.of(context).size.width <= 768 ? MediaQuery.of(context).size.width - 96 : 320, 44), padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16), ) : ElevatedButton.styleFrom( foregroundColor: const Color.fromRGBO(0, 0, 0, 1), // text color backgroundColor: const Color.fromRGBO(198, 133, 232, 1), side: const BorderSide(color: Color.fromRGBO(79, 51, 94, 0.4)), // border color shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), // rounded corners ), minimumSize: Size( width ?? (MediaQuery.of(context).size.width <= 768 ? MediaQuery.of(context).size.width - 96 : 320), 44), padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16), ), onPressed: onPressed, child: Text( text, style: _textStyle(outline), ), ); } TextStyle _textStyle(bool? outline) { if (outline == true) { return GoogleFonts.inter(textStyle: const TextStyle(fontSize: 14, color: Color.fromRGBO(198, 133, 232, 1))); } else { return GoogleFonts.inter(textStyle: const TextStyle(fontSize: 14, color: Color.fromRGBO(0, 0, 0, 1))); } } }