pharmacy_mobile/lib/widgets/button_widget.dart
2025-02-17 11:07:56 +08:00

52 lines
2.1 KiB
Dart

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;
const ButtonWidget({super.key, required this.text, required this.onPressed, this.outline});
@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), // background color
side: const BorderSide(color: Color.fromRGBO(79, 51, 94, 1)), // border color
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20), // rounded corners
),
minimumSize: Size(MediaQuery.of(context).size.width <= 768 ? MediaQuery.of(context).size.width - 96 : 320,
44), // minimum size
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.outfit(textStyle: const TextStyle(fontSize: 14, color: Color.fromRGBO(198, 133, 232, 1)));
} else {
return GoogleFonts.outfit(textStyle: const TextStyle(fontSize: 14, color: Color.fromRGBO(0, 0, 0, 1)));
}
}
}