game/lib/widgets/common/custom_icon.dart

52 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
class CustomIcon extends StatelessWidget {
final String iconPath;
final double? size;
final Color? iconColor;
final double opacity;
const CustomIcon({
super.key,
required this.iconPath,
this.size = 64,
this.iconColor,
this.opacity = 1.0,
});
@override
Widget build(BuildContext context) {
return Opacity(
opacity: opacity,
child: SizedBox(
width: size ?? 64,
height: size ?? 64,
child: Stack(
alignment: Alignment.center,
children: [
// Background Border (Always 000 for Battle/Default)
SizedBox.expand(
child: Image.asset(
'assets/images/icons/borders/border_000.png',
fit: BoxFit.contain,
filterQuality: FilterQuality.high,
),
),
// Inner Icon
FractionallySizedBox(
widthFactor: 0.6,
heightFactor: 0.6,
child: Image.asset(
iconPath,
fit: BoxFit.contain,
filterQuality: FilterQuality.high,
color: iconColor,
),
),
],
),
),
);
}
}