import 'package:flutter/material.dart'; class CustomMaterialButton extends StatelessWidget { final Widget label; final bool isFilled; final bool isExpanded; final Function()? onPressed; const CustomMaterialButton({ Key? key, required this.label, this.isFilled = true, this.isExpanded = false, required this.onPressed, }) : super(key: key); @override Widget build(BuildContext context) { return TextButton( style: ButtonStyle( padding: MaterialStateProperty.all( isExpanded ? const EdgeInsets.symmetric(horizontal: 24, vertical: 12) : const EdgeInsets.symmetric(horizontal: 20, vertical: 12), ), shape: MaterialStateProperty.all( StadiumBorder( side: isFilled ? BorderSide.none : BorderSide( width: 1, color: Theme.of(context).colorScheme.primary, ), ), ), backgroundColor: MaterialStateProperty.all( isFilled ? Theme.of(context).colorScheme.primary : Colors.transparent, ), foregroundColor: MaterialStateProperty.all( isFilled ? Theme.of(context).colorScheme.surface : Theme.of(context).colorScheme.primary, ), ), onPressed: onPressed, child: label, ); } }