import 'package:flutter/material.dart'; import 'package:yimaru_app/ui/common/ui_helpers.dart'; class CustomColumnButton extends StatelessWidget { final Color color; final String label; final IconData icon; final GestureTapCallback? onTap; const CustomColumnButton( {super.key, this.onTap, required this.icon, required this.label, required this.color}); @override Widget build(BuildContext context) => _buildColumnWrapper(); Widget _buildColumnWrapper() => GestureDetector( onTap: onTap, child: _buildColumn(), ); Widget _buildColumn() => Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.end, children: _buildColumnChildren(), ); List _buildColumnChildren() => [_buildIconWrapper(), _buildLabel()]; Widget _buildIconWrapper() => Container( padding: const EdgeInsets.all(5), decoration: BoxDecoration( shape: BoxShape.circle, color: color.withOpacity(0.1), border: Border.all(color: color.withOpacity(0.75))), child: _buildIcon(), ); Widget _buildLabel() => Text( label, style: style14LG400.copyWith(color: color), ); Widget _buildIcon() => Icon( icon, size: 14, color: color, ); }